diff --git a/.gitignore b/.gitignore index 5f6fd19b..e460f981 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .DS_Store *.DS_Store **.DS_Store +build # npm node_modules @@ -16,3 +17,4 @@ styles.css es/ lib/ coverage/ +website/_build/_doc/sampleDoc.json diff --git a/package.json b/package.json index fe75bf25..803195ef 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,17 @@ "url": "https://github.com/Autodesk/react-base-table.git" }, "scripts": { + "prestart": "npm run build:typescript", "start": "cd website && npm start", "deploy": "cd website && npm run deploy", - "lint": "eslint ./src/**/*.js", + "lint": "tslint -t verbose --config tslint.json --project tsconfig.json", "clean": "rimraf lib es styles.css", "build:js": "cross-env NODE_ENV=production babel src -d lib --ignore '**/*.spec.js','__snapshots__' --copy-files --source-maps", "build:es": "cross-env BABEL_ENV=es NODE_ENV=production babel src -d es --ignore '**/*.spec.js','__snapshots__' --copy-files --source-maps", "build:css": "node-sass src/_BaseTable.scss ./styles.css --output-style expanded", "build": "npm run build:js && npm run build:es && npm run build:css", + "build:typescript": "tsc", + "postinstall": "npm run build:typescript", "format": "prettier --write 'src/**/*.{js,scss}'", "prebuild": "npm run clean", "precommit": "lint-staged", @@ -38,17 +41,23 @@ ], "packages/**/*.js": [ "prettier --write", - "eslint -c .eslintrc", + "tslint -t verbose --config tslint.json --project tsconfig.json", "git add" ] }, "dependencies": { "@babel/runtime": "^7.0.0", + "@types/classnames": "^2.2.9", + "@types/memoize-one": "^4.1.1", + "@types/react": "^16.9.2", + "@types/react-test-renderer": "^16.9.0", + "@types/react-virtualized-auto-sizer": "^1.0.0", + "@types/react-window": "^1.8.1", "classnames": "^2.2.5", "memoize-one": "^5.0.0", - "prop-types": "^15.7.0", "react-virtualized-auto-sizer": "^1.0.2", - "react-window": "^1.8.2" + "react-window": "^1.8.2", + "typescript": "^3.5.3" }, "peerDependencies": { "react": "^16.0.0", @@ -62,11 +71,12 @@ "@babel/plugin-transform-runtime": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/preset-react": "^7.0.0", + "@types/jest": "^24.0.18", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^9.0.0", - "babel-jest": "^23.4.2", "babel-plugin-syntax-trailing-function-commas": "^6.22.0", "cross-env": "^5.2.0", + "tslint": "^5.19.0", "eslint": "^5.6.0", "eslint-config-prettier": "^3.0.1", "eslint-config-react-app": "^3.0.8", @@ -76,7 +86,7 @@ "eslint-plugin-prettier": "^2.6.2", "eslint-plugin-react": "^7.11.1", "husky": "^0.14.3", - "jest": "^23.5.0", + "jest": "^23.6.0", "lerna": "^3.2.1", "lint-staged": "^7.2.2", "node-sass": "^4.9.3", @@ -84,18 +94,20 @@ "react": "^16.4.2", "react-dom": "^16.4.2", "react-test-renderer": "^16.4.2", - "rimraf": "^2.6.2" + "rimraf": "^2.6.2", + "ts-jest": "^24.0.2" }, "jest": { "roots": [ "/src" ], - "testRegex": ".*.spec\\.js$", + "testRegex": ".*.spec\\.tsx?$", "transform": { - "^.+\\.jsx?$": "babel-jest" + "^.+\\.tsx?$": "ts-jest" }, "transformIgnorePatterns": [ "/node_modules/" - ] + ], + "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"] } } diff --git a/src/AutoResizer.js b/src/AutoResizer.tsx similarity index 77% rename from src/AutoResizer.js rename to src/AutoResizer.tsx index 9a627b2d..a0cc56c0 100644 --- a/src/AutoResizer.js +++ b/src/AutoResizer.tsx @@ -1,11 +1,10 @@ import React from 'react'; -import PropTypes from 'prop-types'; import AutoSizer from 'react-virtualized-auto-sizer'; /** * Decorator component that automatically adjusts the width and height of a single child */ -const AutoResizer = ({ className, width, height, children, onResize }) => { +const AutoResizer: React.FunctionComponent = ({ className, width, height, children, onResize }) => { const disableWidth = typeof width === 'number'; const disableHeight = typeof height === 'number'; @@ -19,7 +18,7 @@ const AutoResizer = ({ className, width, height, children, onResize }) => { return ( - {size => + {(size) => children({ width: disableWidth ? width : size.width, height: disableHeight ? height : size.height, @@ -29,29 +28,33 @@ const AutoResizer = ({ className, width, height, children, onResize }) => { ); }; -AutoResizer.propTypes = { +interface ChildrenArgs { + width: number; + height: number; +} +export interface AutoResizerProps { /** * Class name for the component */ - className: PropTypes.string, + className?: string; /** * the width of the component, will be the container's width if not set */ - width: PropTypes.number, + width?: number; /** * the height of the component, will be the container's width if not set */ - height: PropTypes.number, + height?: number; /** * A callback function to render the children component * The handler is of the shape of `({ width, height }) => node` */ - children: PropTypes.func.isRequired, + children: (args: ChildrenArgs) => React.ReactNode; /** * A callback function when the size of the table container changed if the width and height are not set * The handler is of the shape of `({ width, height }) => *` */ - onResize: PropTypes.func, -}; + onResize?: (args: ChildrenArgs) => void; +} export default AutoResizer; diff --git a/src/BaseTable.spec.js b/src/BaseTable.spec.tsx similarity index 73% rename from src/BaseTable.spec.js rename to src/BaseTable.spec.tsx index 30cf66fc..e0274c35 100644 --- a/src/BaseTable.spec.js +++ b/src/BaseTable.spec.tsx @@ -1,9 +1,10 @@ import React from 'react'; import renderer from 'react-test-renderer'; -import BaseTable from './BaseTable'; +import BaseTable, { IBaseTableProps } from './BaseTable'; -const RENDERER = () => null; +type TRenderer = () => null; +const RENDERER: TRenderer = () => null; const columns = [ { @@ -33,16 +34,31 @@ const data = [ }, ]; -const Table = props => ; +type DefaultPropsKeys = keyof typeof BaseTable.defaultProps; +interface TableProps extends Partial {} +interface MinusDefaultKeys extends Partial, DefaultPropsKeys>> {} -describe('Table', function() { +const Table: React.FunctionComponent = ({ + width, + height, + ...restProps +}) => ; + +Table.defaultProps = { + width: 100, + height: 100, + data, + columns, +}; + +describe('Table', () => { test('renders correctly', () => { const tree = renderer.create().toJSON(); expect(tree).toMatchSnapshot(); }); test('table can receive className', () => { - const tree = renderer.create(
).toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); @@ -55,9 +71,9 @@ describe('Table', function() { const tree = renderer .create(
- - -
+ + + , ) .toJSON(); expect(tree).toMatchSnapshot(); @@ -69,7 +85,7 @@ describe('Table', function() { }); test('table can specific a different rowKey', () => { - const tree = renderer.create().toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); @@ -129,27 +145,27 @@ describe('Table', function() { }); test('table can receive headerClassName', () => { - const tree = renderer.create(
).toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); test('table can receive rowClassName', () => { - const tree = renderer.create(
).toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); test('table can receive expandColumnKey', () => { - const tree = renderer.create(
).toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); test('table can receive defaultExpandedRowKeys', () => { - const tree = renderer.create(
).toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); test('table can receive expandedRowKeys', () => { - const tree = renderer.create(
).toJSON(); + const tree = renderer.create(
).toJSON(); expect(tree).toMatchSnapshot(); }); }); diff --git a/src/BaseTable.js b/src/BaseTable.tsx similarity index 65% rename from src/BaseTable.js rename to src/BaseTable.tsx index 07af278c..16063436 100644 --- a/src/BaseTable.js +++ b/src/BaseTable.tsx @@ -1,35 +1,35 @@ -import React from 'react'; -import PropTypes from 'prop-types'; import cn from 'classnames'; import memoize from 'memoize-one'; - -import GridTable from './GridTable'; -import TableHeaderRow from './TableHeaderRow'; -import TableRow from './TableRow'; -import TableHeaderCell from './TableHeaderCell'; -import TableCell from './TableCell'; -import Column, { Alignment, FrozenDirection } from './Column'; -import SortOrder from './SortOrder'; -import ExpandIcon from './ExpandIcon'; -import SortIndicator from './SortIndicator'; -import ColumnResizer from './ColumnResizer'; +import React from 'react'; +import { Align, GridChildComponentProps } from 'react-window'; +import Column, { Alignment, FrozenDirection, IColumnProps } from './Column'; import ColumnManager from './ColumnManager'; - +import ColumnResizer from './ColumnResizer'; +import ExpandIcon, { IExpandIconProps } from './ExpandIcon'; +import GridTable, { IHeaderRendererParam } from './GridTable'; +import SortIndicator, { TSortIndicator } from './SortIndicator'; +import SortOrder from './SortOrder'; +import TableCell, { TTableCell } from './TableCell'; +import TableHeaderCell, { ITableHeaderCellProps, TTableHeaderCell } from './TableHeaderCell'; +import TableHeaderRow, { ITableHeaderRowProps } from './TableHeaderRow'; +import TableRow, { ITableRowProps, THandlerCollection } from './TableRow'; import { - renderElement, - normalizeColumns, - getScrollbarSize as defaultGetScrollbarSize, - isObjectEqual, callOrReturn, - hasChildren, - flattenOnKeys, cloneArray, + flattenOnKeys, + getScrollbarSize as defaultGetScrollbarSize, getValue, - throttle, + hasChildren, + isObjectEqual, noop, + normalizeColumns, + renderElement, + throttle, } from './utils'; -const getContainerStyle = (width, maxWidth, height) => ({ +import { IColumnEssential, IRowEssential, RowDataType } from './Column'; + +const getContainerStyle = (width: number, maxWidth: number, height: number) => ({ width, maxWidth, height, @@ -45,11 +45,64 @@ const DEFAULT_COMPONENTS = { const RESIZE_THROTTLE_WAIT = 50; +type RendererArgsReduced = Omit< + GridChildComponentProps & { rowData?: any; columns?: IColumnProps[] }, + 'columnIndex' | 'data' | 'rowIndex' +>; +export interface RendererArgs extends RendererArgsReduced { + rowIndex?: number; +} /** * React table component */ -class BaseTable extends React.PureComponent { - constructor(props) { +class BaseTable extends React.PureComponent< + IBaseTableProps, + IBaseTableState +> { + public static Column = Column; + public static PlaceholderKey = ColumnManager.PlaceholderKey; + public static defaultProps = { + classPrefix: 'BaseTable', + rowKey: 'id', + data: [] as any[], + frozenData: [] as any[], + fixed: false, + headerHeight: 50, + rowHeight: 50, + footerHeight: 0, + defaultExpandedRowKeys: [] as string[], + sortBy: {}, + useIsScrolling: false, + overscanRowCount: 1, + onEndReachedThreshold: 500, + getScrollbarSize: defaultGetScrollbarSize, + + onScroll: noop, + onRowsRendered: noop, + onScrollbarPresenceChange: noop, + onRowExpand: noop, + onExpandedRowsChange: noop, + onColumnSort: noop, + onColumnResize: noop, + }; + private columnManager: ColumnManager; + private _scrollbarPresenceChanged = false; + private _scroll = { scrollLeft: 0, scrollTop: 0 }; + private _scrollHeight = 0; + private _lastScannedRowIndex = -1; + private _hasDataChangedSinceEndReached = true; + private _data: any[]; + private _depthMap: { [key: string]: number } = {}; + private _horizontalScrollbarSize = 0; + private _verticalScrollbarSize = 0; + private table: GridTable; + private leftTable: GridTable; + private rightTable: GridTable; + private tableNode: HTMLDivElement; + private _flattenOnKeys: (tree: any[], keys: string[], dataKey: string) => any[]; + + private _getLeftTableContainerStyle = memoize(getContainerStyle); + constructor(props: IBaseTableProps) { super(props); const { columns, children, expandedRowKeys, defaultExpandedRowKeys } = props; @@ -62,65 +115,32 @@ class BaseTable extends React.PureComponent { }; this.columnManager = new ColumnManager(columns || normalizeColumns(children), props.fixed); - this._setContainerRef = this._setContainerRef.bind(this); - this._setMainTableRef = this._setMainTableRef.bind(this); - this._setLeftTableRef = this._setLeftTableRef.bind(this); - this._setRightTableRef = this._setRightTableRef.bind(this); - - this.renderExpandIcon = this.renderExpandIcon.bind(this); - this.renderRow = this.renderRow.bind(this); - this.renderRowCell = this.renderRowCell.bind(this); - this.renderHeader = this.renderHeader.bind(this); - this.renderHeaderCell = this.renderHeaderCell.bind(this); - - this._handleScroll = this._handleScroll.bind(this); - this._handleVerticalScroll = this._handleVerticalScroll.bind(this); - this._handleRowsRendered = this._handleRowsRendered.bind(this); - this._handleRowHover = this._handleRowHover.bind(this); - this._handleRowExpand = this._handleRowExpand.bind(this); - this._handleColumnResize = throttle(this._handleColumnResize.bind(this), RESIZE_THROTTLE_WAIT); - this._handleColumnResizeStart = this._handleColumnResizeStart.bind(this); - this._handleColumnResizeStop = this._handleColumnResizeStop.bind(this); - this._handleColumnSort = this._handleColumnSort.bind(this); - - this._getLeftTableContainerStyle = memoize(getContainerStyle); - this._getRightTableContainerStyle = memoize(getContainerStyle); - this._flattenOnKeys = memoize((tree, keys, dataKey) => { + this._handleColumnResize = throttle(this._handleColumnResize, RESIZE_THROTTLE_WAIT); + this._data = props.data; + this._flattenOnKeys = memoize((tree: any[], keys: string[], dataKey: string) => { this._depthMap = {}; return flattenOnKeys(tree, keys, this._depthMap, dataKey); }); - - this._scroll = { scrollLeft: 0, scrollTop: 0 }; - this._scrollHeight = 0; - this._lastScannedRowIndex = -1; - this._hasDataChangedSinceEndReached = true; - - this._data = props.data; - this._depthMap = {}; - - this._horizontalScrollbarSize = 0; - this._verticalScrollbarSize = 0; - this._scrollbarPresenceChanged = false; } /** * Get the DOM node of the table */ - getDOMNode() { + public getDOMNode() { return this.tableNode; } /** * Get the column manager */ - getColumnManager() { + public getColumnManager() { return this.columnManager; } /** * Get the expanded state, fallback to normal state if not expandable. */ - getExpandedState() { + public getExpandedState() { return { expandedData: this._data, expandedRowKeys: this.state.expandedRowKeys, @@ -131,66 +151,66 @@ class BaseTable extends React.PureComponent { /** * Get the total height of all rows, including expanded rows. */ - getTotalRowsHeight() { + public getTotalRowsHeight() { return this._data.length * this.props.rowHeight; } /** * Get the total width of all columns. */ - getTotalColumnsWidth() { + public getTotalColumnsWidth() { return this.columnManager.getColumnsWidth(); } /** * Forcefully re-render the inner Grid component. * - * Calling `forceUpdate` on `Table` may not re-render the inner Grid since it uses `shallowCompare` as a performance optimization. + * Calling `forceUpdate` on `Table` may not re-render the inner Grid since it uses `shallowCompare` as a + * performance optimization. * Use this method if you want to manually trigger a re-render. * This may be appropriate if the underlying row data has changed but the row sizes themselves have not. */ - forceUpdateTable() { - this.table && this.table.forceUpdateTable(); - this.leftTable && this.leftTable.forceUpdateTable(); - this.rightTable && this.rightTable.forceUpdateTable(); + public forceUpdateTable() { + if (this.table) { this.table.forceUpdateTable(); } + if (this.leftTable) { this.leftTable.forceUpdateTable(); } + if (this.rightTable) { this.rightTable.forceUpdateTable(); } } /** * Scroll to the specified offset. * Useful for animating position changes. * - * @param {object} offset + * @param offset */ - scrollToPosition(offset) { + public scrollToPosition(offset: IOffset) { this._scroll = offset; - - this.table && this.table.scrollToPosition(offset); - this.leftTable && this.leftTable.scrollToTop(offset.scrollTop); - this.rightTable && this.rightTable.scrollToTop(offset.scrollTop); + if (this.table) { this.table.scrollToPosition(offset); } + if (this.leftTable) { this.leftTable.scrollToTop(offset.scrollTop); } + if (this.rightTable) { this.rightTable.scrollToTop(offset.scrollTop); } } /** * Scroll to the specified offset vertically. * - * @param {number} scrollTop + * @param scrollTop */ - scrollToTop(scrollTop) { + public scrollToTop(scrollTop: number) { this._scroll.scrollTop = scrollTop; - this.table && this.table.scrollToPosition(this._scroll); - this.leftTable && this.leftTable.scrollToTop(scrollTop); - this.rightTable && this.rightTable.scrollToTop(scrollTop); + if (this.table) { this.table.scrollToPosition(this._scroll); } + if (this.leftTable) { this.leftTable.scrollToTop(scrollTop); } + if (this.rightTable) { this.rightTable.scrollToTop(scrollTop); } } /** * Scroll to the specified offset horizontally. * - * @param {number} scrollLeft + * @param scrollLeft */ - scrollToLeft(scrollLeft) { + public scrollToLeft(scrollLeft: number) { this._scroll.scrollLeft = scrollLeft; - this.table && this.table.scrollToPosition(this._scroll); + if (this.table) { this.table.scrollToPosition(this._scroll); } } /** @@ -203,44 +223,48 @@ class BaseTable extends React.PureComponent { * - `center` - Center align the row within the table. * - `end` - Align the row to the bottom side of the table. * - `start` - Align the row to the top side of the table. - * @param {number} rowIndex * @param {string} align */ - scrollToRow(rowIndex = 0, align = 'auto') { - this.table && this.table.scrollToRow(rowIndex, align); - this.leftTable && this.leftTable.scrollToRow(rowIndex, align); - this.rightTable && this.rightTable.scrollToRow(rowIndex, align); + public scrollToRow(rowIndex: number = 0, align: Align = 'auto') { + if (this.table ) { this.table.scrollToRow(rowIndex, align); } + if (this.leftTable ) { this.leftTable.scrollToRow(rowIndex, align); } + if (this.rightTable ) { this.rightTable.scrollToRow(rowIndex, align); } } /** * Set `expandedRowKeys` manually. * This method is available only if `expandedRowKeys` is uncontrolled. * - * @param {array} expandedRowKeys + * @param expandedRowKeys */ - setExpandedRowKeys(expandedRowKeys) { + public setExpandedRowKeys(expandedRowKeys: string[]) { // if `expandedRowKeys` is controlled - if (this.props.expandedRowKeys !== undefined) return; + if (this.props.expandedRowKeys !== undefined) { + return; + } this.setState({ expandedRowKeys: cloneArray(expandedRowKeys), }); } - renderExpandIcon({ rowData, rowIndex, depth, onExpand }) { + public renderExpandIcon = ({ rowData, rowIndex, depth, onExpand }: IRenderExpandIcon) => { const { rowKey, expandColumnKey, expandIconProps } = this.props; - if (!expandColumnKey) return null; + if (!expandColumnKey) { + return null; + } const expandable = rowIndex >= 0 && hasChildren(rowData); - const expanded = rowIndex >= 0 && this.state.expandedRowKeys.indexOf(rowData[rowKey]) >= 0; + const expanded = rowIndex >= 0 && this.state.expandedRowKeys.indexOf(rowData[`${rowKey}`] as string) >= 0; const extraProps = callOrReturn(expandIconProps, { rowData, rowIndex, depth, expandable, expanded }); - const ExpandIcon = this._getComponent('ExpandIcon'); + const ExpandIconComponent = this._getComponent('ExpandIcon'); - return ; + return ; } - renderRow({ isScrolling, columns, rowData, rowIndex, style }) { + public renderRow = ({ isScrolling, columns, rowData, rowIndex, style }: RendererArgs) => { const { rowClassName, rowRenderer, rowEventHandlers, expandColumnKey } = this.props; const rowClass = callOrReturn(rowClassName, { columns, rowData, rowIndex }); @@ -281,11 +305,19 @@ class BaseTable extends React.PureComponent { return ; } - renderRowCell({ isScrolling, columns, column, columnIndex, rowData, rowIndex, expandIcon }) { + public renderRowCell = ({ + isScrolling, + columns, + column, + columnIndex, + rowData, + rowIndex, + expandIcon, + }: IRenderRowCellParam) => { if (column[ColumnManager.PlaceholderKey]) { return (
@@ -293,13 +325,23 @@ class BaseTable extends React.PureComponent { } const { className, dataKey, dataGetter, cellRenderer } = column; - const TableCell = this._getComponent('TableCell'); + const TableCellComponent = this._getComponent('TableCell'); const cellData = dataGetter ? dataGetter({ columns, column, columnIndex, rowData, rowIndex }) : getValue(rowData, dataKey); - const cellProps = { isScrolling, cellData, columns, column, columnIndex, rowData, rowIndex, container: this }; - const cell = renderElement(cellRenderer || , cellProps); + const cellProps: ICellProps = { + isScrolling, + cellData, + columns, + column, + columnIndex, + rowData, + rowIndex, + container: this, + }; + const cell = renderElement(cellRenderer || + , cellProps); const cellCls = callOrReturn(className, { cellData, columns, column, columnIndex, rowData, rowIndex }); const cls = cn(this._prefixClass('row-cell'), cellCls, { @@ -308,12 +350,12 @@ class BaseTable extends React.PureComponent { }); const extraProps = callOrReturn(this.props.cellProps, { columns, column, columnIndex, rowData, rowIndex }); - const { tagName, ...rest } = extraProps || {}; + const { tagName, ...rest }: ITagNameAndRest = extraProps || {}; const Tag = tagName || 'div'; return ( { const { headerClassName, headerRenderer } = this.props; const headerClass = callOrReturn(headerClassName, { columns, headerIndex }); @@ -335,7 +377,7 @@ class BaseTable extends React.PureComponent { [this._prefixClass('header-row--customized')]: headerRenderer, }); - const headerProps = { + const headerProps: IHeaderProps = { ...extraProps, role: 'row', key: `header-${headerIndex}`, @@ -352,84 +394,7 @@ class BaseTable extends React.PureComponent { return ; } - renderHeaderCell({ columns, column, columnIndex, headerIndex, expandIcon }) { - if (column[ColumnManager.PlaceholderKey]) { - return ( -
- ); - } - - const { headerClassName, headerRenderer } = column; - const { sortBy, sortState, headerCellProps } = this.props; - const TableHeaderCell = this._getComponent('TableHeaderCell'); - const SortIndicator = this._getComponent('SortIndicator'); - - const cellProps = { columns, column, columnIndex, headerIndex, container: this }; - const cell = renderElement( - headerRenderer || , - cellProps - ); - - let sorting, sortOrder; - - if (sortState) { - const order = sortState[column.key]; - sorting = order === SortOrder.ASC || order === SortOrder.DESC; - sortOrder = sorting ? order : SortOrder.ASC; - } else { - sorting = column.key === sortBy.key; - sortOrder = sorting ? sortBy.order : SortOrder.ASC; - } - - const cellCls = callOrReturn(headerClassName, { columns, column, columnIndex, headerIndex }); - const cls = cn(this._prefixClass('header-cell'), cellCls, { - [this._prefixClass('header-cell--align-center')]: column.align === Alignment.CENTER, - [this._prefixClass('header-cell--align-right')]: column.align === Alignment.RIGHT, - [this._prefixClass('header-cell--sortable')]: column.sortable, - [this._prefixClass('header-cell--sorting')]: sorting, - [this._prefixClass('header-cell--resizing')]: column.key === this.state.resizingKey, - }); - const extraProps = callOrReturn(headerCellProps, { columns, column, columnIndex, headerIndex }); - const { tagName, ...rest } = extraProps || {}; - const Tag = tagName || 'div'; - return ( - - {expandIcon} - {cell} - {column.sortable && ( - - )} - {column.resizable && ( - - )} - - ); - } - - renderMainTable() { + public renderMainTable() { const { width, headerHeight, rowHeight, fixed, ...rest } = this.props; const height = this._getTableHeight(); @@ -461,8 +426,10 @@ class BaseTable extends React.PureComponent { ); } - renderLeftTable() { - if (!this.columnManager.hasLeftFrozenColumns()) return null; + public renderLeftTable() { + if (!this.columnManager.hasLeftFrozenColumns()) { + return null; + } const { width, headerHeight, rowHeight, ...rest } = this.props; @@ -492,8 +459,10 @@ class BaseTable extends React.PureComponent { ); } - renderRightTable() { - if (!this.columnManager.hasRightFrozenColumns()) return null; + public renderRightTable() { + if (!this.columnManager.hasRightFrozenColumns()) { + return null; + } const { width, headerHeight, rowHeight, ...rest } = this.props; @@ -523,13 +492,15 @@ class BaseTable extends React.PureComponent { ); } - renderResizingLine() { + public renderResizingLine() { const { width, fixed } = this.props; const { resizingKey } = this.state; - if (!fixed || !resizingKey) return null; + if (!fixed || !resizingKey) { + return null; + } const columns = this.columnManager.getMainColumns(); - const idx = columns.findIndex(column => column.key === resizingKey); + const idx = columns.findIndex((c) => c.key === resizingKey); const column = columns[idx]; const { width: columnWidth, frozen } = column; const leftWidth = this.columnManager.recomputeColumnsWidth(columns.slice(0, idx)); @@ -552,9 +523,11 @@ class BaseTable extends React.PureComponent { return
; } - renderFooter() { + public renderFooter() { const { footerHeight, footerRenderer } = this.props; - if (footerHeight === 0) return null; + if (footerHeight === 0) { + return null; + } return (
{renderElement(footerRenderer)} @@ -562,25 +535,29 @@ class BaseTable extends React.PureComponent { ); } - renderEmptyLayer() { + public renderEmptyLayer() { const { data, footerHeight, emptyRenderer } = this.props; - if (data && data.length) return null; + if (data && data.length) { + return null; + } const headerHeight = this._getHeaderHeight(); return (
- {renderElement(emptyRenderer)} + {renderElement(emptyRenderer, {})}
); } - renderOverlay() { + public renderOverlay() { const { overlayRenderer } = this.props; - return
{!!overlayRenderer && renderElement(overlayRenderer)}
; + return ( +
{!!overlayRenderer && renderElement(overlayRenderer, {})}
+ ); } - render() { + public render() { const { classPrefix, width, @@ -595,14 +572,14 @@ class BaseTable extends React.PureComponent { } = this.props; if (expandColumnKey) { - this._data = this._flattenOnKeys(data, this.state.expandedRowKeys, this.props.rowKey); + this._data = this._flattenOnKeys(data, this.state.expandedRowKeys, `${this.props.rowKey}`); } else { this._data = data; } // should be after `this._data` assigned this._calcScrollbarSizes(); - const containerStyle = { + const containerStyle: React.CSSProperties = { ...style, width, height: this._getTableHeight() + footerHeight, @@ -629,7 +606,7 @@ class BaseTable extends React.PureComponent { ); } - componentWillReceiveProps(nextProps) { + public componentWillReceiveProps(nextProps: IBaseTableProps) { const nextColumns = nextProps.columns || normalizeColumns(nextProps.children); const columns = this.columnManager.getOriginalColumns(); if (!isObjectEqual(nextColumns, columns) || nextProps.fixed !== this.props.fixed) { @@ -657,56 +634,22 @@ class BaseTable extends React.PureComponent { } } - componentDidMount() { + public componentDidMount() { const scrollbarSize = this.props.getScrollbarSize(); if (scrollbarSize > 0) { this.setState({ scrollbarSize }); } } - componentDidUpdate(prevProps, prevState) { + public componentDidUpdate() { this._maybeScrollbarPresenceChange(); } - _prefixClass(className) { + public _prefixClass(className: string) { return `${this.props.classPrefix}__${className}`; } - _setContainerRef(ref) { - this.tableNode = ref; - } - - _setMainTableRef(ref) { - this.table = ref; - } - - _setLeftTableRef(ref) { - this.leftTable = ref; - } - - _setRightTableRef(ref) { - this.rightTable = ref; - } - - _getComponent(name) { - if (this.props.components && this.props.components[name]) return this.props.components[name]; - return DEFAULT_COMPONENTS[name]; - } - - _getHeaderHeight() { - const { headerHeight } = this.props; - if (Array.isArray(headerHeight)) { - return headerHeight.reduce((sum, height) => sum + height, 0); - } - return headerHeight; - } - - _getFrozenRowsHeight() { - const { frozenData, rowHeight } = this.props; - return frozenData.length * rowHeight; - } - - _getTableHeight() { + public _getTableHeight() { const { height, maxHeight, footerHeight } = this.props; let tableHeight = height - footerHeight; @@ -721,22 +664,24 @@ class BaseTable extends React.PureComponent { return tableHeight; } - _getBodyHeight() { + public _getBodyHeight() { return this._getTableHeight() - this._getHeaderHeight() - this._getFrozenRowsHeight(); } - _getFrozenContainerHeight() { + public _getFrozenContainerHeight() { const { maxHeight } = this.props; const tableHeight = this._getTableHeight() - (this._data.length > 0 ? this._horizontalScrollbarSize : 0); // in auto height mode tableHeight = totalHeight - if (maxHeight > 0) return tableHeight; + if (maxHeight > 0) { + return tableHeight; + } const totalHeight = this.getTotalRowsHeight() + this._getHeaderHeight() + this._getFrozenRowsHeight(); return Math.min(tableHeight, totalHeight); } - _calcScrollbarSizes() { + public _calcScrollbarSizes() { const { fixed, width } = this.props; const { scrollbarSize } = this.state; @@ -778,7 +723,7 @@ class BaseTable extends React.PureComponent { } } - _maybeScrollbarPresenceChange() { + public _maybeScrollbarPresenceChange() { if (this._scrollbarPresenceChanged) { const { onScrollbarPresenceChange } = this.props; this._scrollbarPresenceChanged = false; @@ -791,13 +736,15 @@ class BaseTable extends React.PureComponent { } } - _maybeCallOnEndReached() { + public _maybeCallOnEndReached() { const { onEndReached, onEndReachedThreshold } = this.props; const { scrollTop } = this._scroll; const scrollHeight = this.getTotalRowsHeight(); const clientHeight = this._getBodyHeight(); - if (!onEndReached || !clientHeight || !scrollHeight) return; + if (!onEndReached || !clientHeight || !scrollHeight) { + return; + } const distanceFromEnd = scrollHeight - scrollTop - clientHeight + this._horizontalScrollbarSize; if ( this._lastScannedRowIndex >= 0 && @@ -810,22 +757,148 @@ class BaseTable extends React.PureComponent { } } - _handleScroll(args) { + public _handleColumnResize = ({ key }: IColumnProps, width: number) => { + this.columnManager.setColumnWidth(key, width); + this.setState({ resizingWidth: width }); + + const column = this.columnManager.getColumn(key); + this.props.onColumnResize({ column, width }); + } + + private renderHeaderCell = ({ columns, column, columnIndex, headerIndex, expandIcon }: IRenderHeaderCellParam) => { + if (column[ColumnManager.PlaceholderKey]) { + return ( +
+ ); + } + + const { headerClassName, headerRenderer } = column; + const { sortBy, sortState, headerCellProps } = this.props; + const TableHeaderCellComponent = this._getComponent('TableHeaderCell'); + const SortIndicatorComponent = this._getComponent('SortIndicator'); + + const cellProps = { columns, column, columnIndex, headerIndex, container: this }; + const cell = renderElement( + headerRenderer || , + cellProps, + ); + + let sorting; + let sortOrder; + + if (sortState) { + const order = sortState[column.key]; + sorting = order === SortOrder.ASC || order === SortOrder.DESC; + sortOrder = sorting ? order : SortOrder.ASC; + } else { + sorting = column.key === sortBy.key; + sortOrder = sorting ? sortBy.order : SortOrder.ASC; + } + + const cellCls = callOrReturn(headerClassName, { columns, column, columnIndex, headerIndex }); + const cls = cn(this._prefixClass('header-cell'), cellCls, { + [this._prefixClass('header-cell--align-center')]: column.align === Alignment.CENTER, + [this._prefixClass('header-cell--align-right')]: column.align === Alignment.RIGHT, + [this._prefixClass('header-cell--sortable')]: column.sortable, + [this._prefixClass('header-cell--sorting')]: sorting, + [this._prefixClass('header-cell--resizing')]: column.key === this.state.resizingKey, + }); + const extraProps = callOrReturn(headerCellProps, { columns, column, columnIndex, headerIndex }); + const { tagName, ...rest }: ITagNameAndRest = extraProps || {}; + const Tag = tagName || 'div'; + return ( + + {expandIcon} + {cell} + {column.sortable && ( + + )} + {column.resizable && ( + + )} + + ); + } + + private _setContainerRef = (ref: HTMLDivElement) => { + this.tableNode = ref; + } + + private _setMainTableRef = (ref: GridTable) => { + this.table = ref; + } + + private _setLeftTableRef = (ref: GridTable) => { + this.leftTable = ref; + } + + private _setRightTableRef = (ref: GridTable) => { + this.rightTable = ref; + } + + private _getComponent(name: 'TableCell' | 'TableHeaderCell' | 'ExpandIcon' | 'SortIndicator') { + if (this.props.components && this.props.components[name]) { + return this.props.components[name]; + } + return DEFAULT_COMPONENTS[name]; + } + + private _getHeaderHeight() { + const { headerHeight } = this.props; + if (Array.isArray(headerHeight)) { + return headerHeight.reduce((sum, height) => sum + height, 0); + } + return headerHeight; + } + + private _getFrozenRowsHeight() { + const { frozenData, rowHeight } = this.props; + return frozenData.length * rowHeight; + } + + private _handleScroll = (args: IOffset) => { const lastScrollTop = this._scroll.scrollTop; this.scrollToPosition(args); this.props.onScroll(args); - if (args.scrollTop > lastScrollTop) this._maybeCallOnEndReached(); + if (args.scrollTop > lastScrollTop) { + this._maybeCallOnEndReached(); + } } - _handleVerticalScroll({ scrollTop }) { + private _handleVerticalScroll = ({ scrollTop }: { scrollTop: number }) => { const lastScrollTop = this._scroll.scrollTop; this.scrollToTop(scrollTop); - if (scrollTop > lastScrollTop) this._maybeCallOnEndReached(); + if (scrollTop > lastScrollTop) { + this._maybeCallOnEndReached(); + } } - _handleRowsRendered(args) { + private _handleRowsRendered = (args: IOnRowsRenderedParam) => { this.props.onRowsRendered(args); if (args.overscanStopIndex > this._lastScannedRowIndex) { @@ -834,14 +907,26 @@ class BaseTable extends React.PureComponent { } } - _handleRowHover({ hovered, rowKey }) { + private _handleRowHover = ({ hovered, rowKey }: IOnRowHover) => { this.setState({ hoveredRowKey: hovered ? rowKey : null }); } - _handleRowExpand({ expanded, rowData, rowIndex, rowKey }) { + private _handleRowExpand = ({ + expanded, + rowData, + rowIndex, + rowKey, + }: { + expanded: string[]; + rowData: RowDataType; + rowIndex: number; + rowKey: string; + }) => { const expandedRowKeys = cloneArray(this.state.expandedRowKeys); if (expanded) { - if (!expandedRowKeys.indexOf(rowKey) >= 0) expandedRowKeys.push(rowKey); + if (!(expandedRowKeys.indexOf(rowKey) >= 0)) { + expandedRowKeys.push(rowKey); + } } else { const index = expandedRowKeys.indexOf(rowKey); if (index > -1) { @@ -856,23 +941,15 @@ class BaseTable extends React.PureComponent { this.props.onExpandedRowsChange(expandedRowKeys); } - _handleColumnResize({ key }, width) { - this.columnManager.setColumnWidth(key, width); - this.setState({ resizingWidth: width }); - - const column = this.columnManager.getColumn(key); - this.props.onColumnResize({ column, width }); - } - - _handleColumnResizeStart({ key }) { + private _handleColumnResizeStart = ({ key }: IHandleColumnResizeStartParam) => { this.setState({ resizingKey: key }); } - _handleColumnResizeStop() { + private _handleColumnResizeStop = () => { this.setState({ resizingKey: null }); } - _handleColumnSort(event) { + private _handleColumnSort = (event: React.MouseEvent) => { const key = event.currentTarget.dataset.key; const { sortBy, sortState, onColumnSort } = this.props; let order = SortOrder.ASC; @@ -888,192 +965,263 @@ class BaseTable extends React.PureComponent { } } -BaseTable.Column = Column; -BaseTable.PlaceholderKey = ColumnManager.PlaceholderKey; - -BaseTable.defaultProps = { - classPrefix: 'BaseTable', - rowKey: 'id', - data: [], - frozenData: [], - fixed: false, - headerHeight: 50, - rowHeight: 50, - footerHeight: 0, - defaultExpandedRowKeys: [], - sortBy: {}, - useIsScrolling: false, - overscanRowCount: 1, - onEndReachedThreshold: 500, - getScrollbarSize: defaultGetScrollbarSize, - - onScroll: noop, - onRowsRendered: noop, - onScrollbarPresenceChange: noop, - onRowExpand: noop, - onExpandedRowsChange: noop, - onColumnSort: noop, - onColumnResize: noop, -}; +interface IRowProps extends ITableRowProps { + role: string; + key: string; +} +interface IHeaderProps extends ITableHeaderRowProps { + role?: string; + key?: string; +} + +interface IBaseTableState { + scrollbarSize: number; + hoveredRowKey?: React.Key; + resizingKey?: string; + resizingWidth: number; + expandedRowKeys: string[]; +} -BaseTable.propTypes = { +interface IOffset { + scrollLeft: number; + scrollTop: number; +} + +interface IHandleColumnResizeStartParam { + key: string | null; +} + +export interface IOnRowsRenderedParam { + overscanStartIndex?: number; + overscanStopIndex?: number; + startIndex?: number; + stopIndex?: number; +} + +interface IRenderRowCellParam extends IColumnEssential, IRowEssential { + isScrolling: boolean; + expandIcon: React.ReactNode; +} + +export interface IRenderExpandIcon extends IRowEssential { + depth?: number; + onExpand?: (param: string[]) => void; +} + +interface IRenderHeaderCellParam extends IColumnEssential { + headerIndex: number; + expandIcon: React.ReactNode; +} + +export type TTagname = + | string + | React.ElementType<{ + role?: string; + 'data-key'?: React.Key; + className?: string; + style?: React.CSSProperties; + onClick?: (event: React.MouseEvent) => void; + }>; +export interface ICellProps extends IColumnEssential, IRowEssential { + tagName?: TTagname; + isScrolling?: boolean; + cellData?: any; + container?: any; + expandIcon?: React.ReactNode; +} + +interface ICellPropsCBReturn extends IColumnEssential, IRowEssential {} + +export interface IRowRendererCBParam extends IRowEssential { + style: React.CSSProperties; + isScrolling?: boolean; + cells?: any; + columns?: IColumnProps[]; + depth?: number; +} + +export interface IOnRowHover extends IRowEssential { + hovered?: boolean; + rowKey?: React.Key; + event?: Event; +} + +export interface IOnRowExpandCBParam extends IRowEssential { + expanded?: any; + rowKey?: React.Key; +} + +export type TExpandedRowKeys = React.Key[]; + +interface ITagNameAndRest { + tagName?: TTagname; + [key: string]: any; +} + +export interface IBaseTableProps { /** * Prefix for table's inner className */ - classPrefix: PropTypes.string, + classPrefix?: string; /** * Class name for the table */ - className: PropTypes.string, + className?: string; /** * Custom style for the table */ - style: PropTypes.object, + style?: React.CSSProperties; /** * A collection of Column */ - children: PropTypes.node, + children?: Array>; /** * Columns for the table */ - columns: PropTypes.arrayOf(PropTypes.shape(Column.propTypes)), + columns?: IColumnProps[]; /** * The data for the table */ - data: PropTypes.arrayOf(PropTypes.object).isRequired, + data: T[]; /** * The data be frozen to top, `rowIndex` is negative and started from `-1` */ - frozenData: PropTypes.arrayOf(PropTypes.object), + frozenData?: T[]; /** * The key field of each data item */ - rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, + rowKey: React.Key; /** * The width of the table */ - width: PropTypes.number.isRequired, + width: number; /** * The height of the table, will be ignored if `maxHeight` is set */ - height: PropTypes.number, + height?: number; /** * The max height of the table, the table's height will auto change when data changes, * will turns to vertical scroll if reaches the max height */ - maxHeight: PropTypes.number, + maxHeight?: number; /** * The height of each table row */ - rowHeight: PropTypes.number.isRequired, + rowHeight: number; /** * The height of the table header, set to 0 to hide the header, could be an array to render multi headers. */ - headerHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]).isRequired, + headerHeight: number | number[]; /** * The height of the table footer */ - footerHeight: PropTypes.number, + footerHeight?: number; /** * Whether the width of the columns are fixed or flexible */ - fixed: PropTypes.bool, + fixed?: boolean; /** * Whether the table is disabled */ - disabled: PropTypes.bool, + disabled?: boolean; /** * Custom renderer on top of the table component */ - overlayRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), + overlayRenderer?: React.ElementType<{}> | React.ReactElement<{}>; /** * Custom renderer when the length of data is 0 */ - emptyRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), + emptyRenderer?: React.ElementType<{}> | React.ReactElement<{}>; /** * Custom footer renderer, available only if `footerHeight` is larger then 0 */ - footerRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), + footerRenderer?: React.ElementType<{}> | React.ReactElement<{}>; /** * Custom header renderer * The renderer receives props `{ cells, columns, headerIndex }` */ - headerRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), + headerRenderer?: React.ElementType | React.ReactElement; /** * Custom row renderer * The renderer receives props `{ isScrolling, cells, columns, rowData, rowIndex, depth }` */ - rowRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), + rowRenderer?: React.ElementType | React.ReactElement; /** * Class name for the table header, could be a callback to return the class name * The callback is of the shape of `({ columns, headerIndex }) => string` */ - headerClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), + headerClassName?: string | ((param: { columns: IColumnProps[]; headerIndex: number }) => string); /** * Class name for the table row, could be a callback to return the class name * The callback is of the shape of `({ columns, rowData, rowIndex }) => string` */ - rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), + rowClassName?: string | ((param: { columns: IColumnProps[]; rowData: RowDataType; rowIndex: number }) => string); /** * Extra props applied to header element - * The handler is of the shape of `({ columns, headerIndex }) object` + * The handler is of the shape of `({ columns, headerIndex }) => object` */ - headerProps: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), + headerProps?: IHeaderProps | ((param: { columns: IColumnProps[]; headerIndex: number }) => IHeaderProps); /** * Extra props applied to header cell element * The handler is of the shape of `({ columns, column, columnIndex, headerIndex }) => object` */ - headerCellProps: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), + headerCellProps?: + | ITableHeaderCellProps + | ((param: { + columns: IColumnProps[]; + column: IColumnProps; + columnIndex: number; + headerIndex: number; + }) => ITableHeaderCellProps); /** * Extra props applied to row element * The handler is of the shape of `({ columns, rowData, rowIndex }) => object` */ - rowProps: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), + rowProps?: IRowProps | ((param: { columns: IColumnProps[]; rowData: RowDataType; rowIndex: number }) => IRowProps); /** * Extra props applied to row cell element * The handler is of the shape of `({ columns, column, columnIndex, rowData, rowIndex }) => object` */ - cellProps: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), + cellProps?: ICellProps | ((param: ICellProps) => ICellPropsCBReturn); /** * Extra props applied to ExpandIcon component * The handler is of the shape of `({ rowData, rowIndex, depth, expandable, expanded }) => object` */ - expandIconProps: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), + expandIconProps?: + | IExpandIconProps + | ((param: { + rowData?: any; + rowIndex?: number; + depth?: number; + expandable?: boolean; + expanded?: boolean; + }) => IExpandIconProps); /** * The key for the expand column which render the expand icon if the data is a tree */ - expandColumnKey: PropTypes.string, + expandColumnKey?: string; /** * Default expanded row keys when initialize the table */ - defaultExpandedRowKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), + defaultExpandedRowKeys?: string[] | number[]; /** * Controlled expanded row keys */ - expandedRowKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), + expandedRowKeys?: TExpandedRowKeys; /** * A callback function when expand or collapse a tree node * The handler is of the shape of `({ expanded, rowData, rowIndex, rowKey }) => *` */ - onRowExpand: PropTypes.func, + onRowExpand?: (param: IOnRowExpandCBParam) => any; /** * A callback function when the expanded row keys changed * The handler is of the shape of `(expandedRowKeys) => *` */ - onExpandedRowsChange: PropTypes.func, + onExpandedRowsChange?: (param: TExpandedRowKeys) => any; /** * The sort state for the table, will be ignored if `sortState` is set */ - sortBy: PropTypes.shape({ - /** - * Sort key - */ - key: PropTypes.string, - /** - * Sort order - */ - order: PropTypes.oneOf([SortOrder.ASC, SortOrder.DESC]), - }), + sortBy?: { [key: string]: SortOrder.ASC | SortOrder.DESC }; /** * Multiple columns sort state for the table * @@ -1085,33 +1233,34 @@ BaseTable.propTypes = { * } * ``` */ - sortState: PropTypes.object, + sortState?: { [key: string]: SortOrder }; /** * A callback function for the header cell click event * The handler is of the shape of `({ column, key, order }) => *` */ - onColumnSort: PropTypes.func, + onColumnSort?: (param: { column: IColumnProps; key: any; order: any }) => any; /** * A callback function when resizing the column width * The handler is of the shape of `({ column, width }) => *` */ - onColumnResize: PropTypes.func, + onColumnResize?: (param: { column: IColumnProps; width: number }) => any; /** * Adds an additional isScrolling parameter to the row renderer. * This parameter can be used to show a placeholder row while scrolling. */ - useIsScrolling: PropTypes.bool, + useIsScrolling?: boolean; /** * Number of rows to render above/below the visible bounds of the list */ - overscanRowCount: PropTypes.number, + overscanRowCount?: number; /** * Custom scrollbar size measurement */ - getScrollbarSize: PropTypes.func, + getScrollbarSize?: (recalculate?: boolean) => number; /** * A callback function when scrolling the table - * The handler is of the shape of `({ scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested }) => *` + * The handler is of the shape of + * `({ scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested }) => *` * * `scrollLeft` and `scrollTop` are numbers. * @@ -1120,41 +1269,52 @@ BaseTable.propTypes = { * `scrollUpdateWasRequested` is a boolean. This value is true if the scroll was caused by `scrollTo*`, * and false if it was the result of a user interaction in the browser. */ - onScroll: PropTypes.func, + onScroll?: (param: { + scrollLeft?: number; + scrollTop?: number; + horizontalScrollDirection?: string; + verticalScrollDirection?: string; + scrollUpdateWasRequested?: boolean; + }) => any; /** * A callback function when scrolling the table within `onEndReachedThreshold` of the bottom * The handler is of the shape of `({ distanceFromEnd }) => *` */ - onEndReached: PropTypes.func, + onEndReached?: (param: { distanceFromEnd?: number }) => any; /** * Threshold in pixels for calling `onEndReached`. */ - onEndReachedThreshold: PropTypes.number, + onEndReachedThreshold?: number; /** * A callback function with information about the slice of rows that were just rendered * The handler is of the shape of `({ overscanStartIndex, overscanStopIndex, startIndex, stopIndex }) => *` */ - onRowsRendered: PropTypes.func, + onRowsRendered?: (param: { + overscanStartIndex?: number; + overscanStopIndex?: number; + startIndex?: number; + stopIndex?: number; + }) => any; /** * A callback function when the scrollbar presence state changed * The handler is of the shape of `({ size, vertical, horizontal }) => *` */ - onScrollbarPresenceChange: PropTypes.func, + onScrollbarPresenceChange?: (param: { size?: number; vertical?: boolean; horizontal?: boolean }) => any; /** - * A object for the row event handlers + * An object for the row event handlers * Each of the keys is row event name, like `onClick`, `onDoubleClick` and etc. * Each of the handlers is of the shape of `({ rowData, rowIndex, rowKey, event }) => object` */ - rowEventHandlers: PropTypes.object, + rowEventHandlers?: THandlerCollection; /** - * A object for the custom components, like `ExpandIcon` and `SortIndicator` + * An object for the custom components, like `ExpandIcon` and `SortIndicator` */ - components: PropTypes.shape({ - TableCell: PropTypes.func, - TableHeaderCell: PropTypes.func, - ExpandIcon: PropTypes.func, - SortIndicator: PropTypes.func, - }), -}; + components?: { + TableCell?: TTableCell; + TableHeaderCell?: TTableHeaderCell; + ExpandIcon?: React.ElementType; + SortIndicator?: TSortIndicator; + }; +} export default BaseTable; diff --git a/src/Column.js b/src/Column.js deleted file mode 100644 index cdf19231..00000000 --- a/src/Column.js +++ /dev/null @@ -1,105 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -export const Alignment = { - LEFT: 'left', - CENTER: 'center', - RIGHT: 'right', -}; - -export const FrozenDirection = { - LEFT: 'left', - RIGHT: 'right', - DEFAULT: true, - NONE: false, -}; - -/** - * Column for BaseTable - */ -class Column extends React.Component {} - -Column.propTypes = { - /** - * Class name for the column cell, could be a callback to return the class name - * The callback is of the shape of `({ cellData, columns, column, columnIndex, rowData, rowIndex }) => string` - */ - className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), - /** - * Class name for the column header, could be a callback to return the class name - * The callback is of the shape of `({ columns, column, columnIndex, headerIndex }) => string` - */ - headerClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), - /** - * Custom style for the column cell, including the header cells - */ - style: PropTypes.object, - /** - * Title for the column header - */ - title: PropTypes.string, - /** - * Data key for the column cell, could be "a.b.c" - */ - dataKey: PropTypes.string, - /** - * Custom cell data getter - * The handler is of the shape of `({ columns, column, columnIndex, rowData, rowIndex }) => node` - */ - dataGetter: PropTypes.func, - /** - * Alignment of the column cell - */ - align: PropTypes.oneOf(['left', 'center', 'right']), - /** - * Flex grow style, defaults to 0 - */ - flexGrow: PropTypes.number, - /** - * Flex shrink style, defaults to 1 for flexible table and 0 for fixed table - */ - flexShrink: PropTypes.number, - /** - * The width of the column, gutter width is not included - */ - width: PropTypes.number.isRequired, - /** - * Maximum width of the column, used if the column is resizable - */ - maxWidth: PropTypes.number, - /** - * Minimum width of the column, used if the column is resizable - */ - minWidth: PropTypes.number, - /** - * Whether the column is frozen and what's the frozen side - */ - frozen: PropTypes.oneOf(['left', 'right', true, false]), - /** - * Whether the column is hidden - */ - hidden: PropTypes.bool, - /** - * Whether the column is resizable, defaults to true - */ - resizable: PropTypes.bool, - /** - * Whether the column is sortable, defaults to true - */ - sortable: PropTypes.bool, - /** - * Custom column cell renderer - * The renderer receives props `{ cellData, columns, column, columnIndex, rowData, rowIndex, container, isScrolling }` - */ - cellRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), - /** - * Custom column header renderer - * The renderer receives props `{ columns, column, columnIndex, headerIndex, container }` - */ - headerRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), -}; - -Column.Alignment = Alignment; -Column.FrozenDirection = FrozenDirection; - -export default Column; diff --git a/src/Column.tsx b/src/Column.tsx new file mode 100644 index 00000000..26e94128 --- /dev/null +++ b/src/Column.tsx @@ -0,0 +1,153 @@ +import React from 'react'; + +export enum Alignment { + LEFT = 'left', + CENTER = 'center', + RIGHT = 'right', +} + +export const FrozenDirection = { + LEFT: 'left', + RIGHT: 'right', + DEFAULT: true, + NONE: false, +}; + +/** + * Column for BaseTable + */ +class Column extends React.Component { + public static Alignment = Alignment; + public static FrozenDirection = FrozenDirection; +} + +export interface IColumnEssential { + columns?: IColumnProps[]; + column?: IColumnProps; + columnIndex?: number; +} + +export interface RowDataType { + [key: string]: any; +} +export interface IRowEssential { + rowData?: T; + rowIndex?: number; +} + +export type IColumnCallback = (param: T) => string; +export type IColumnRenderCallback = (param: T) => React.ReactElement; + +export interface IClassNameCBParam extends IColumnEssential, IRowEssential { + cellData: any; +} + +export interface IHeaderClassNameCBParam extends IColumnEssential { + headerIndex: number; +} + +export interface IDataGetterCBParam extends IColumnEssential, IRowEssential {} + +export interface IHeaderRendererCBParam extends IColumnEssential { + headerIndex?: number; + container?: any; + style?: React.CSSProperties; +} + +export interface ICellRendererCBParam extends IColumnEssential, IRowEssential { + cellData?: any; + container?: any; + isScrolling?: boolean; + headerIndex?: number; + expandIcon?: React.ReactNode; +} + +export interface IColumnProps { + /** + * Class name for the column cell, could be a callback to return the class name + * The callback is of the shape of `({ cellData, columns, column, columnIndex, rowData, rowIndex }) => string` + */ + className?: string | IColumnCallback>; + /** + * Class name for the column header, could be a callback to return the class name + * The callback is of the shape of `({ columns, column, columnIndex, headerIndex }) => string` + */ + headerClassName?: string | IColumnCallback; + /** + * Custom style for the column cell, including the header cells + */ + style?: React.CSSProperties; + /** + * Title for the column header + */ + title?: string; + /** + * Data key for the column cell, could be "a.b.c" + */ + dataKey?: string; + /** + * Custom cell data getter + * The handler is of the shape of `({ columns, column, columnIndex, rowData, rowIndex }) => node` + */ + dataGetter?: IColumnCallback>; + /** + * Alignment of the column cell + */ + align?: Alignment.LEFT | Alignment.CENTER | Alignment.RIGHT; + /** + * Flex grow style, defaults to 0 + */ + flexGrow?: number; + /** + * Flex shrink style, defaults to 1 for flexible table and 0 for fixed table + */ + flexShrink?: number; + /** + * The width of the column, gutter width is not included + */ + width: number; + /** + * Maximum width of the column, used if the column is resizable + */ + maxWidth?: number; + /** + * Minimum width of the column, used if the column is resizable + */ + minWidth?: number; + /** + * Whether the column is frozen and what's the frozen side + */ + frozen?: 'left' | 'right' | boolean; + /** + * Whether the column is hidden + */ + hidden?: boolean; + /** + * Whether the column is resizable, defaults to true + */ + resizable?: boolean; + /** + * Whether the column is sortable, defaults to true + */ + sortable?: boolean; + /** + * Custom column cell renderer + * The renderer receives props `{ cellData, columns, column, columnIndex, rowData, rowIndex, container, isScrolling }` + */ + cellRenderer?: IColumnRenderCallback> | React.ElementType; + /** + * Custom column header renderer + * The renderer receives props `{ columns, column, columnIndex, headerIndex, container }` + */ + headerRenderer?: IColumnRenderCallback | React.ReactElement; + /** + * Key + */ + key?: React.Key; + /** + * placeholder key + */ + __placeholder__?: boolean; +} + +export default Column; diff --git a/src/ColumnManager.js b/src/ColumnManager.js deleted file mode 100644 index dcc5fba2..00000000 --- a/src/ColumnManager.js +++ /dev/null @@ -1,188 +0,0 @@ -import { FrozenDirection } from './Column'; - -export default class ColumnManager { - constructor(columns, fixed) { - this._origColumns = []; - this.reset(columns, fixed); - } - - _cache(key, fn) { - if (key in this._cached) return this._cached[key]; - this._cached[key] = fn(); - return this._cached[key]; - } - - reset(columns, fixed) { - this._columns = columns.map(column => { - let width = column.width; - if (column.resizable) { - // don't reset column's `width` if `width` prop doesn't change - const idx = this._origColumns.findIndex(x => x.key === column.key); - if (idx >= 0 && this._origColumns[idx].width === column.width) { - width = this._columns[idx].width; - } - } - return { ...column, width }; - }); - this._origColumns = columns; - this._fixed = fixed; - this._cached = {}; - this._columnStyles = this.recomputeColumnStyles(); - } - - resetCache() { - this._cached = {}; - } - - getOriginalColumns() { - return this._origColumns; - } - - getColumns() { - return this._columns; - } - - getVisibleColumns() { - return this._cache('visibleColumns', () => { - return this._columns.filter(column => !column.hidden); - }); - } - - hasFrozenColumns() { - return this._cache('hasFrozenColumns', () => { - return this._fixed && this.getVisibleColumns().some(column => !!column.frozen); - }); - } - - hasLeftFrozenColumns() { - return this._cache('hasLeftFrozenColumns', () => { - return ( - this._fixed && - this.getVisibleColumns().some(column => column.frozen === FrozenDirection.LEFT || column.frozen === true) - ); - }); - } - - hasRightFrozenColumns() { - return this._cache('hasRightFrozenColumns', () => { - return this._fixed && this.getVisibleColumns().some(column => column.frozen === FrozenDirection.RIGHT); - }); - } - - getMainColumns() { - return this._cache('mainColumns', () => { - const columns = this.getVisibleColumns(); - if (!this.hasFrozenColumns()) return columns; - - const mainColumns = []; - this.getLeftFrozenColumns().forEach(column => { - //columns placeholder for the fixed table above them - mainColumns.push({ ...column, [ColumnManager.PlaceholderKey]: true }); - }); - this.getVisibleColumns().forEach(column => { - if (!column.frozen) mainColumns.push(column); - }); - this.getRightFrozenColumns().forEach(column => { - mainColumns.push({ ...column, [ColumnManager.PlaceholderKey]: true }); - }); - - return mainColumns; - }); - } - - getLeftFrozenColumns() { - return this._cache('leftFrozenColumns', () => { - if (!this._fixed) return []; - return this.getVisibleColumns().filter( - column => column.frozen === FrozenDirection.LEFT || column.frozen === true - ); - }); - } - - getRightFrozenColumns() { - return this._cache('rightFrozenColumns', () => { - if (!this._fixed) return []; - return this.getVisibleColumns().filter(column => column.frozen === FrozenDirection.RIGHT); - }); - } - - getColumn(key) { - const idx = this._columns.findIndex(column => column.key === key); - return this._columns[idx]; - } - - getColumnsWidth() { - return this._cache('columnsWidth', () => { - return this.recomputeColumnsWidth(this.getVisibleColumns()); - }); - } - - getLeftFrozenColumnsWidth() { - return this._cache('leftFrozenColumnsWidth', () => { - return this.recomputeColumnsWidth(this.getLeftFrozenColumns()); - }); - } - - getRightFrozenColumnsWidth() { - return this._cache('rightFrozenColumnsWidth', () => { - return this.recomputeColumnsWidth(this.getRightFrozenColumns()); - }); - } - - recomputeColumnsWidth(columns) { - return columns.reduce((width, column) => width + column.width, 0); - } - - setColumnWidth(key, width) { - const column = this.getColumn(key); - column.width = width; - this._cached = {}; - this._columnStyles[column.key] = this.recomputeColumnStyle(column); - } - - getColumnStyle(key) { - return this._columnStyles[key]; - } - - getColumnStyles() { - return this._columnStyles; - } - - recomputeColumnStyle(column) { - let flexGrow = 0; - let flexShrink = 0; - if (!this._fixed) { - flexGrow = typeof column.flexGrow === 'number' ? column.flexGrow : 0; - flexShrink = typeof column.flexShrink === 'number' ? column.flexShrink : 1; - } - // workaround for Flex bug on IE: https://github.com/philipwalton/flexbugs#flexbug-7 - const flexValue = `${flexGrow} ${flexShrink} auto`; - - const style = { - ...column.style, - flex: flexValue, - msFlex: flexValue, - WebkitFlex: flexValue, - width: column.width, - overflow: 'hidden', - }; - - if (!this._fixed && column.maxWidth) { - style.maxWidth = column.maxWidth; - } - if (!this._fixed && column.minWidth) { - style.minWidth = column.minWidth; - } - - return style; - } - - recomputeColumnStyles() { - return this._columns.reduce((styles, column) => { - styles[column.key] = this.recomputeColumnStyle(column); - return styles; - }, {}); - } -} - -ColumnManager.PlaceholderKey = '__placeholder__'; diff --git a/src/ColumnManager.tsx b/src/ColumnManager.tsx new file mode 100644 index 00000000..5dd5c743 --- /dev/null +++ b/src/ColumnManager.tsx @@ -0,0 +1,225 @@ +import { FrozenDirection, IColumnProps } from './Column'; +type anyFunction = (...args: any[]) => T; +interface ICache { + mainColumns?: IColumnProps[]; + visibleColumns?: IColumnProps[]; + hasFrozenColumns?: boolean; + hasLeftFrozenColumns?: boolean; + hasRightFrozenColumns?: boolean; + leftFrozenColumns?: IColumnProps[]; + rightFrozenColumns?: IColumnProps[]; + columnsWidth?: number; + leftFrozenColumnsWidth?: number; + rightFrozenColumnsWidth?: number; +} + +export default class ColumnManager { + public static PlaceholderKey: '__placeholder__' = '__placeholder__'; + + private _cached: ICache = {}; + private _columns: IColumnProps[]; + private _origColumns: IColumnProps[]; + private _fixed: boolean; + private _columnStyles: { [key: string]: React.CSSProperties }; + + constructor(columns: IColumnProps[], fixed: boolean) { + this._origColumns = []; + this.reset(columns, fixed); + } + + public reset(columns: IColumnProps[], fixed: boolean) { + this._columns = columns.map((column) => { + let width = column.width; + if (column.resizable) { + // don't reset column's `width` if `width` prop doesn't change + const idx = this._origColumns.findIndex((x) => x.key === column.key); + if (idx >= 0 && this._origColumns[idx].width === column.width) { + width = this._columns[idx].width; + } + } + return { ...column, width }; + }); + this._origColumns = columns; + this._fixed = fixed; + this._cached = {}; + this._columnStyles = this.recomputeColumnStyles(); + } + + public resetCache() { + this._cached = {}; + } + + public getOriginalColumns() { + return this._origColumns; + } + + public getColumns() { + return this._columns; + } + + public getVisibleColumns() { + return this._cache('visibleColumns', () => { + return this._columns.filter((column) => !column.hidden); + }); + } + + public hasFrozenColumns() { + return this._cache('hasFrozenColumns', () => { + return this._fixed && this.getVisibleColumns().some((column: IColumnProps) => !!column.frozen); + }); + } + + public hasLeftFrozenColumns() { + return this._cache('hasLeftFrozenColumns', () => { + return ( + this._fixed && + this.getVisibleColumns().some( + (column: IColumnProps) => column.frozen === FrozenDirection.LEFT || column.frozen === true, + ) + ); + }); + } + + public hasRightFrozenColumns() { + return this._cache('hasRightFrozenColumns', () => { + return ( + this._fixed && this.getVisibleColumns().some((column: IColumnProps) => column.frozen === FrozenDirection.RIGHT) + ); + }); + } + + public getMainColumns() { + return this._cache('mainColumns', () => { + const columns = this.getVisibleColumns(); + if (!this.hasFrozenColumns()) { + return columns; + } + + const mainColumns: IColumnProps[] = []; + this.getLeftFrozenColumns().forEach((column: IColumnProps) => { + // columns placeholder for the fixed table above them + + mainColumns.push({ ...column, [ColumnManager.PlaceholderKey]: true }); + }); + this.getVisibleColumns().forEach((column: IColumnProps) => { + if (!column.frozen) { + mainColumns.push(column); + } + }); + this.getRightFrozenColumns().forEach((column: IColumnProps) => { + mainColumns.push({ ...column, [ColumnManager.PlaceholderKey]: true }); + }); + + return mainColumns; + }); + } + + public getLeftFrozenColumns() { + return this._cache('leftFrozenColumns', () => { + if (!this._fixed) { + return []; + } + return this.getVisibleColumns().filter( + (column: IColumnProps) => column.frozen === FrozenDirection.LEFT || column.frozen === true, + ); + }); + } + + public getRightFrozenColumns() { + return this._cache('rightFrozenColumns', () => { + if (!this._fixed) { + return []; + } + return this.getVisibleColumns().filter((column: IColumnProps) => column.frozen === FrozenDirection.RIGHT); + }); + } + + public getColumn(key: IColumnProps['key']) { + const idx = this._columns.findIndex((column) => column.key === key); + return this._columns[idx]; + } + + public getColumnsWidth() { + return this._cache('columnsWidth', () => { + return this.recomputeColumnsWidth(this.getVisibleColumns()); + }); + } + + public getLeftFrozenColumnsWidth() { + return this._cache('leftFrozenColumnsWidth', () => { + return this.recomputeColumnsWidth(this.getLeftFrozenColumns()); + }); + } + + public getRightFrozenColumnsWidth() { + return this._cache('rightFrozenColumnsWidth', () => { + return this.recomputeColumnsWidth(this.getRightFrozenColumns()); + }); + } + + public recomputeColumnsWidth(columns: IColumnProps[]) { + return columns.reduce((width, column) => width + column.width, 0); + } + + public setColumnWidth(key: IColumnProps['key'], width: number) { + const column = this.getColumn(key); + column.width = width; + this._cached = {}; + this._columnStyles[column.key] = this.recomputeColumnStyle(column); + } + + public getColumnStyle(key: React.Key) { + return this._columnStyles[key]; + } + + public getColumnStyles() { + return this._columnStyles; + } + + public recomputeColumnStyle(column: IColumnProps): React.CSSProperties { + let flexGrow = 0; + let flexShrink = 0; + if (!this._fixed) { + flexGrow = typeof column.flexGrow === 'number' ? column.flexGrow : 0; + flexShrink = typeof column.flexShrink === 'number' ? column.flexShrink : 1; + } + // workaround for Flex bug on IE: https://github.com/philipwalton/flexbugs#flexbug-7 + const flexValue = `${flexGrow} ${flexShrink} auto`; + + const style = { + ...column.style, + flex: flexValue, + msFlex: flexValue, + WebkitFlex: flexValue, + width: column.width, + overflow: 'hidden', + }; + + if (!this._fixed && column.maxWidth) { + style.maxWidth = column.maxWidth; + } + if (!this._fixed && column.minWidth) { + style.minWidth = column.minWidth; + } + + return style; + } + + public recomputeColumnStyles(): { [key: string]: React.CSSProperties } { + return this._columns.reduce( + (styles, column) => { + styles[column.key] = this.recomputeColumnStyle(column); + return styles; + }, + {} as { [key: string]: React.CSSProperties }, + ); + } + + private _cache(key: K, fn: anyFunction) { + if (key in this._cached) { + return this._cached[key]; + } + this._cached[key] = fn(); + return this._cached[key]; + } +} diff --git a/src/ColumnResizer.js b/src/ColumnResizer.tsx similarity index 59% rename from src/ColumnResizer.js rename to src/ColumnResizer.tsx index 5c8f23d9..9006f2e9 100644 --- a/src/ColumnResizer.js +++ b/src/ColumnResizer.tsx @@ -1,14 +1,16 @@ import React from 'react'; -import PropTypes from 'prop-types'; +import { IColumnProps } from './Column'; -import { noop, addClassName, removeClassName } from './utils'; +import { addClassName, noop, removeClassName, isMouseEvent, isTouchEvent, eventsFor } from './utils'; -const INVALID_VALUE = null; +const INVALID_VALUE: null = null; // copied from https://github.com/mzabriskie/react-draggable/blob/master/lib/utils/domFns.js -export function addUserSelectStyles(doc) { - if (!doc) return; - let styleEl = doc.getElementById('react-draggable-style-el'); +export function addUserSelectStyles(doc: Document) { + if (!doc) { + return; + } + let styleEl = doc.getElementById('react-draggable-style-el') as IHTMLElementExtended; if (!styleEl) { styleEl = doc.createElement('style'); styleEl.type = 'text/css'; @@ -17,14 +19,18 @@ export function addUserSelectStyles(doc) { styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; doc.getElementsByTagName('head')[0].appendChild(styleEl); } - if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); + if (doc.body) { + addClassName(doc.body, 'react-draggable-transparent-selection'); + } } -export function removeUserSelectStyles(doc) { +export function removeUserSelectStyles(doc: Document) { try { - if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); - if (doc.selection) { - doc.selection.empty(); + if (doc && doc.body) { + removeClassName(doc.body, 'react-draggable-transparent-selection'); + } + if ((doc as any).selection) { + (doc as any).selection.empty(); } else { window.getSelection().removeAllRanges(); // remove selection caused by scroll } @@ -33,44 +39,24 @@ export function removeUserSelectStyles(doc) { } } -const eventsFor = { - touch: { - start: 'touchstart', - move: 'touchmove', - stop: 'touchend', - }, - mouse: { - start: 'mousedown', - move: 'mousemove', - stop: 'mouseup', - }, -}; - let dragEventFor = eventsFor.mouse; /** * ColumnResizer for BaseTable */ -class ColumnResizer extends React.PureComponent { - constructor(props) { - super(props); - - this.isDragging = false; - this.lastX = INVALID_VALUE; - this.width = 0; - - this._setHandleRef = this._setHandleRef.bind(this); - this._handleClick = this._handleClick.bind(this); - this._handleMouseDown = this._handleMouseDown.bind(this); - this._handleMouseUp = this._handleMouseUp.bind(this); - this._handleTouchStart = this._handleTouchStart.bind(this); - this._handleTouchEnd = this._handleTouchEnd.bind(this); - this._handleDragStart = this._handleDragStart.bind(this); - this._handleDragStop = this._handleDragStop.bind(this); - this._handleDrag = this._handleDrag.bind(this); - } - - componentWillUnmount() { +class ColumnResizer extends React.PureComponent { + public static defaultProps = { + onResizeStart: noop, + onResize: noop, + onResizeStop: noop, + minWidth: 30, + }; + private isDragging = false; + private lastX: number | typeof INVALID_VALUE = INVALID_VALUE; + private width = 0; + private handleRef: HTMLDivElement; + + public componentWillMount() { if (this.handleRef) { const { ownerDocument } = this.handleRef; ownerDocument.removeEventListener(eventsFor.mouse.move, this._handleDrag); @@ -81,7 +67,7 @@ class ColumnResizer extends React.PureComponent { } } - render() { + public render() { const { style, column, onResizeStart, onResize, onResizeStop, minWidth, ...rest } = this.props; return ( @@ -107,36 +93,41 @@ class ColumnResizer extends React.PureComponent { ); } - _setHandleRef(ref) { + private _setHandleRef = (ref: HTMLDivElement) => { this.handleRef = ref; } - _handleClick(e) { + private _handleClick = (e: React.MouseEvent) => { e.stopPropagation(); } - _handleMouseDown(e) { + private _handleMouseDown = (e: React.MouseEvent) => { dragEventFor = eventsFor.mouse; - this._handleDragStart(e); + this._handleDragStart(e.nativeEvent); } - _handleMouseUp(e) { + private _handleMouseUp = (e: React.MouseEvent) => { dragEventFor = eventsFor.mouse; - this._handleDragStop(e); + this._handleDragStop(e.nativeEvent); + } - _handleTouchStart(e) { + private _handleTouchStart = (e: React.TouchEvent) => { dragEventFor = eventsFor.touch; - this._handleDragStart(e); + this._handleDragStart(e.nativeEvent); } - _handleTouchEnd(e) { + private _handleTouchEnd = (e: React.TouchEvent) => { dragEventFor = eventsFor.touch; - this._handleDragStop(e); + this._handleDragStop(e.nativeEvent); } - _handleDragStart(e) { - if (typeof e.button === 'number' && e.button !== 0) return; + private _handleDragStart = (e: TouchEvent | MouseEvent) => { + if(isMouseEvent(e)) { + if (typeof e.button === 'number' && e.button !== 0) { + return; + } + } this.isDragging = true; this.lastX = INVALID_VALUE; @@ -149,8 +140,10 @@ class ColumnResizer extends React.PureComponent { ownerDocument.addEventListener(dragEventFor.stop, this._handleDragStop); } - _handleDragStop(e) { - if (!this.isDragging) return; + private _handleDragStop = (e: TouchEvent | MouseEvent) => { + if (!this.isDragging) { + return; + } this.isDragging = false; this.props.onResizeStop(this.props.column); @@ -161,11 +154,17 @@ class ColumnResizer extends React.PureComponent { ownerDocument.removeEventListener(dragEventFor.stop, this._handleDragStop); } - _handleDrag(e) { - let clientX = e.clientX; - if (e.type === eventsFor.touch.move) { + private _handleDrag = (e: TouchEvent | MouseEvent) => { + + let clientX; + + if (isTouchEvent(e)) { e.preventDefault(); - if (e.targetTouches && e.targetTouches[0]) clientX = e.targetTouches[0].clientX; + if (e.targetTouches && e.targetTouches[0]) { + clientX = e.targetTouches[0].clientX; + } + } else if (isMouseEvent(e)){ + clientX = e.clientX; } const { offsetParent } = this.handleRef; @@ -180,7 +179,9 @@ class ColumnResizer extends React.PureComponent { const { column, minWidth: MIN_WIDTH } = this.props; const { width, maxWidth, minWidth = MIN_WIDTH } = column; const movedX = x - this.lastX; - if (!movedX) return; + if (!movedX) { + return; + } this.width = this.width + movedX; this.lastX = x; @@ -192,46 +193,56 @@ class ColumnResizer extends React.PureComponent { newWidth = minWidth; } - if (newWidth === width) return; + if (newWidth === width) { + return; + } this.props.onResize(column, newWidth); } } -ColumnResizer.defaultProps = { - onResizeStart: noop, - onResize: noop, - onResizeStop: noop, - minWidth: 30, -}; +interface IHTMLElementExtended extends HTMLElement { + type?: string; +} + +type IColumnResizerCallBack = (param: T) => any; +export interface IOnResizeStartCBParam { + column?: IColumnProps; + key?: React.Key; +} -ColumnResizer.propTypes = { +export interface IColumnResizerProps { + /** + * className + */ + className?: string; /** * Custom style for the drag handler */ - style: PropTypes.object, + style?: React.CSSProperties; /** * The column object to be dragged */ - column: PropTypes.object, + column?: IColumnProps; /** * A callback function when resizing started * The callback is of the shape of `(column) => *` */ - onResizeStart: PropTypes.func, + onResizeStart?: IColumnResizerCallBack; + /** * A callback function when resizing the column * The callback is of the shape of `(column, width) => *` */ - onResize: PropTypes.func, + onResize?: (param1?: IColumnProps, width?: number, column?: IColumnProps) => any; /** * A callback function when resizing stopped * The callback is of the shape of `(column) => *` */ - onResizeStop: PropTypes.func, + onResizeStop?: (column: IColumnProps) => any; /** * Minimum width of the column could be resized to if the column's `minWidth` is not set */ - minWidth: PropTypes.number, -}; + minWidth?: number; +} export default ColumnResizer; diff --git a/src/ExpandIcon.js b/src/ExpandIcon.tsx similarity index 68% rename from src/ExpandIcon.js rename to src/ExpandIcon.tsx index b1e63a44..e9599538 100644 --- a/src/ExpandIcon.js +++ b/src/ExpandIcon.tsx @@ -1,20 +1,19 @@ -import React from 'react'; -import PropTypes from 'prop-types'; import cn from 'classnames'; +import React from 'react'; /** * default ExpandIcon for BaseTable */ -class ExpandIcon extends React.PureComponent { - constructor(props) { - super(props); - - this._handleClick = this._handleClick.bind(this); - } - - render() { +class ExpandIcon extends React.PureComponent { + public static defaultProps = { + depth: 0, + indentSize: 16, + }; + public render() { const { expandable, expanded, indentSize, depth, onExpand, ...rest } = this.props; - if (!expandable && indentSize === 0) return null; + if (!expandable && indentSize === 0) { + return null; + } const cls = cn('BaseTable__expand-icon', { 'BaseTable__expand-icon--expanded': expanded, @@ -44,7 +43,7 @@ class ExpandIcon extends React.PureComponent { ); } - _handleClick(e) { + private _handleClick = (e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); const { onExpand, expanded } = this.props; @@ -52,17 +51,12 @@ class ExpandIcon extends React.PureComponent { } } -ExpandIcon.defaultProps = { - depth: 0, - indentSize: 16, -}; - -ExpandIcon.propTypes = { - expandable: PropTypes.bool, - expanded: PropTypes.bool, - indentSize: PropTypes.number, - depth: PropTypes.number, - onExpand: PropTypes.func, -}; +export interface IExpandIconProps { + expandable?: boolean; + expanded?: boolean; + indentSize?: number; + depth?: number; + onExpand?: (param: boolean) => void; +} export default ExpandIcon; diff --git a/src/GridTable.js b/src/GridTable.tsx similarity index 50% rename from src/GridTable.js rename to src/GridTable.tsx index a1b83616..988e2fe0 100644 --- a/src/GridTable.js +++ b/src/GridTable.tsx @@ -1,55 +1,48 @@ -import React from 'react'; -import PropTypes from 'prop-types'; import cn from 'classnames'; -import { FixedSizeGrid as Grid } from 'react-window'; +import React from 'react'; +import { Align, FixedSizeGrid as Grid, FixedSizeGridProps, GridOnItemsRenderedProps } from 'react-window'; +import { IOnRowsRenderedParam, RendererArgs } from './BaseTable'; +import { IColumnProps } from './Column'; import Header from './TableHeader'; /** * A wrapper of the Grid for internal only */ -class GridTable extends React.PureComponent { - constructor(props) { - super(props); - - this._setHeaderRef = this._setHeaderRef.bind(this); - this._setBodyRef = this._setBodyRef.bind(this); - this._itemKey = this._itemKey.bind(this); - this._handleItemsRendered = this._handleItemsRendered.bind(this); - - this.renderRow = this.renderRow.bind(this); - } - - forceUpdateTable() { - this.headerRef && this.headerRef.forceUpdate(); - this.bodyRef && this.bodyRef.forceUpdate(); +class GridTable extends React.PureComponent { + private bodyRef?: Grid; + private headerRef?: Header; + public forceUpdateTable() { + if (this.headerRef) { this.headerRef.forceUpdate(); } + if (this.bodyRef) { this.bodyRef.forceUpdate(); } } - scrollToPosition(args) { - this.headerRef && this.headerRef.scrollTo(args.scrollLeft); - this.bodyRef && this.bodyRef.scrollTo(args); + public scrollToPosition(args: { scrollLeft: number; scrollTop: number }) { + if (this.headerRef) { this.headerRef.scrollTo(args.scrollLeft); } + if (this.bodyRef) { this.bodyRef.scrollTo(args); } } - scrollToTop(scrollTop) { - this.bodyRef && this.bodyRef.scrollTo({ scrollTop }); + public scrollToTop(scrollTop: number) { + if (this.bodyRef) { this.bodyRef.scrollTo({ scrollTop, scrollLeft: 0 }); } } - scrollToLeft(scrollLeft) { - this.headerRef && this.headerRef.scrollTo(scrollLeft); - this.bodyRef && this.bodyRef.scrollToPosition({ scrollLeft }); + public scrollToLeft(scrollLeft: number) { + if (this.headerRef) { this.headerRef.scrollTo(scrollLeft); } + if (this.bodyRef) { this.bodyRef.scrollTo({ scrollLeft, scrollTop: 0 }); } } - scrollToRow(rowIndex = 0, align = 'auto') { - this.bodyRef && this.bodyRef.scrollToItem({ rowIndex, align }); + public scrollToRow(rowIndex = 0, align: Align = 'auto') { + if (this.bodyRef) { this.bodyRef.scrollToItem({ rowIndex, align }); } } - renderRow(args) { - const { data, columns, rowRenderer } = this.props; + public renderRow: FixedSizeGridProps['children'] = (args) => { + const { data, columns, rowRenderer: RowRenderer } = this.props; const rowData = data[args.rowIndex]; - return rowRenderer({ ...args, columns, rowData }); + const newProps: RendererArgs = { ...args, columns, rowData }; + return ; } - render() { + public render() { const { containerStyle, classPrefix, @@ -76,14 +69,12 @@ class GridTable extends React.PureComponent { const cls = cn(`${classPrefix}__table`, className); const containerProps = containerStyle ? { style: containerStyle } : null; return ( -
+
{ this.headerRef = ref; } - _setBodyRef(ref) { + private _setBodyRef = (ref: Grid) => { this.bodyRef = ref; } - _itemKey({ rowIndex }) { + private _itemKey = ({ rowIndex }: { rowIndex: number }): React.Key => { const { data, rowKey } = this.props; return data[rowIndex][rowKey]; } - _getHeaderHeight() { + private _getHeaderHeight() { const { headerHeight } = this.props; if (Array.isArray(headerHeight)) { return headerHeight.reduce((sum, height) => sum + height, 0); @@ -142,7 +132,12 @@ class GridTable extends React.PureComponent { return headerHeight; } - _handleItemsRendered({ overscanRowStartIndex, overscanRowStopIndex, visibleRowStartIndex, visibleRowStopIndex }) { + private _handleItemsRendered = ({ + overscanRowStartIndex, + overscanRowStopIndex, + visibleRowStartIndex, + visibleRowStopIndex, + }: GridOnItemsRenderedProps) => { this.props.onRowsRendered({ overscanStartIndex: overscanRowStartIndex, overscanStopIndex: overscanRowStopIndex, @@ -152,30 +147,40 @@ class GridTable extends React.PureComponent { } } -GridTable.propTypes = { - containerStyle: PropTypes.object, - classPrefix: PropTypes.string, - className: PropTypes.string, - width: PropTypes.number.isRequired, - height: PropTypes.number.isRequired, - headerHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]).isRequired, - headerWidth: PropTypes.number.isRequired, - bodyWidth: PropTypes.number.isRequired, - rowHeight: PropTypes.number.isRequired, - columns: PropTypes.arrayOf(PropTypes.object).isRequired, - data: PropTypes.arrayOf(PropTypes.object).isRequired, - rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - frozenData: PropTypes.arrayOf(PropTypes.object), - useIsScrolling: PropTypes.bool, - overscanRowCount: PropTypes.number, - hoveredRowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - style: PropTypes.object, - onScrollbarPresenceChange: PropTypes.func, - - onScroll: PropTypes.func, - onRowsRendered: PropTypes.func, - headerRenderer: PropTypes.func.isRequired, - rowRenderer: PropTypes.func.isRequired, -}; +type TBaseGridTableProps = Omit< + FixedSizeGridProps, + 'rowCount' | 'overscanColumnCount' | 'columnCount' | 'children' | 'columnWidth' | 'useIsScrolling' +>; +export interface GridTableProps extends TBaseGridTableProps { + containerStyle?: React.CSSProperties; + classPrefix?: string; + headerHeight: number | number[]; + headerWidth: number; + bodyWidth: number; + columns: IColumnProps[]; + data: T[]; + rowKey: React.Key; + frozenData?: T[]; + useIsScrolling?: boolean; + hoveredRowKey?: React.Key; + onScrollbarPresenceChange?: (params: IOnScrollbarPresenceChange) => void; + onRowsRendered?: (param: IOnRowsRenderedParam) => void; + headerRenderer: React.ElementType; + rowRenderer: React.ElementType; + children?: Array>; +} + +interface IOnScrollbarPresenceChange { + size: number; + horizontal: boolean; + vertical: boolean; +} + +export interface IHeaderRendererParam { + cells?: any; + columns?: IColumnProps[]; + style?: React.CSSProperties; + headerIndex?: number; +} export default GridTable; diff --git a/src/SortIndicator.js b/src/SortIndicator.tsx similarity index 67% rename from src/SortIndicator.js rename to src/SortIndicator.tsx index 05deb9c5..e76b8030 100644 --- a/src/SortIndicator.js +++ b/src/SortIndicator.tsx @@ -1,13 +1,20 @@ -import React from 'react'; -import PropTypes from 'prop-types'; import cn from 'classnames'; +import React from 'react'; import SortOrder from './SortOrder'; +export interface SortIndicatorProps { + sortOrder?: SortOrder.ASC | SortOrder.DESC; + className?: string; + style?: React.CSSProperties; +} + +export type TSortIndicator = React.FunctionComponent; + /** * default SortIndicator for BaseTable */ -const SortIndicator = ({ sortOrder, className, style }) => { +const SortIndicator: TSortIndicator = ({ sortOrder, className, style }) => { const cls = cn('BaseTable__sort-indicator', className, { 'BaseTable__sort-indicator--descending': sortOrder === SortOrder.DESC, }); @@ -28,10 +35,4 @@ const SortIndicator = ({ sortOrder, className, style }) => { ); }; -SortIndicator.propTypes = { - sortOrder: PropTypes.oneOf([SortOrder.ASC, SortOrder.DESC]), - className: PropTypes.string, - style: PropTypes.object, -}; - export default SortIndicator; diff --git a/src/SortOrder.js b/src/SortOrder.ts similarity index 74% rename from src/SortOrder.js rename to src/SortOrder.ts index b1f39227..6cf2842a 100644 --- a/src/SortOrder.js +++ b/src/SortOrder.ts @@ -1,15 +1,15 @@ /** * Sort order for BaseTable */ -const SortOrder = { +enum SortOrder { /** * Sort data in ascending order */ - ASC: 'asc', + ASC = 'asc', /** * Sort data in descending order */ - DESC: 'desc', -}; + DESC = 'desc', +} export default SortOrder; diff --git a/src/TableCell.js b/src/TableCell.js deleted file mode 100644 index 566b2a0c..00000000 --- a/src/TableCell.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { toString } from './utils'; - -/** - * Cell component for BaseTable - */ -const TableCell = ({ className, cellData, column, columnIndex, rowData, rowIndex }) => ( -
{React.isValidElement(cellData) ? cellData : toString(cellData)}
-); - -TableCell.propTypes = { - className: PropTypes.string, - cellData: PropTypes.any, - column: PropTypes.object, - columnIndex: PropTypes.number, - rowData: PropTypes.object, - rowIndex: PropTypes.number, -}; - -export default TableCell; diff --git a/src/TableCell.tsx b/src/TableCell.tsx new file mode 100644 index 00000000..8ef81b55 --- /dev/null +++ b/src/TableCell.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import { IColumnEssential, IRowEssential, RowDataType } from './Column'; +import { toString } from './utils'; + +export interface TableCellProps extends IRowEssential, Omit { + className?: string; + cellData?: C; +} + +/** + * Cell component for BaseTable + */ +export type TTableCell = React.FunctionComponent< + React.HTMLProps & TableCellProps +>; +const TableCell: TTableCell = ({ className, cellData, column, columnIndex, rowData, rowIndex }) => ( +
{React.isValidElement(cellData) ? cellData : toString(cellData)}
+); + +export default TableCell; diff --git a/src/TableHeader.js b/src/TableHeader.js deleted file mode 100644 index 1a400274..00000000 --- a/src/TableHeader.js +++ /dev/null @@ -1,79 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -class TableHeader extends React.PureComponent { - constructor(props) { - super(props); - - this.renderHeaderRow = this.renderHeaderRow.bind(this); - this.renderFrozenRow = this.renderFrozenRow.bind(this); - this._setRef = this._setRef.bind(this); - } - - scrollTo(offset) { - if (this.headerRef) this.headerRef.scrollLeft = offset; - } - - renderHeaderRow(height, index) { - const { columns, headerRenderer } = this.props; - if (height <= 0) return null; - - const style = { width: '100%', height }; - return headerRenderer({ style, columns, headerIndex: index }); - } - - renderFrozenRow(rowData, index) { - const { columns, rowHeight, rowRenderer } = this.props; - const style = { width: '100%', height: rowHeight }; - // for frozen row the `rowIndex` is negative - const rowIndex = -index - 1; - return rowRenderer({ style, columns, rowData, rowIndex }); - } - - render() { - const { className, width, height, rowWidth, headerHeight, frozenData } = this.props; - if (height <= 0) return null; - - const style = { - width, - height: height, - position: 'relative', - overflow: 'hidden', - }; - - const innerStyle = { - width: rowWidth, - height, - }; - - const rowHeights = Array.isArray(headerHeight) ? headerHeight : [headerHeight]; - return ( -
-
- {rowHeights.map(this.renderHeaderRow)} - {frozenData.map(this.renderFrozenRow)} -
-
- ); - } - - _setRef(ref) { - this.headerRef = ref; - } -} - -TableHeader.propTypes = { - className: PropTypes.string, - width: PropTypes.number.isRequired, - height: PropTypes.number.isRequired, - headerHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]).isRequired, - rowWidth: PropTypes.number.isRequired, - rowHeight: PropTypes.number.isRequired, - columns: PropTypes.arrayOf(PropTypes.object).isRequired, - data: PropTypes.arrayOf(PropTypes.object).isRequired, - frozenData: PropTypes.arrayOf(PropTypes.object), - headerRenderer: PropTypes.func.isRequired, - rowRenderer: PropTypes.func.isRequired, -}; - -export default TableHeader; diff --git a/src/TableHeader.tsx b/src/TableHeader.tsx new file mode 100644 index 00000000..e2f0077d --- /dev/null +++ b/src/TableHeader.tsx @@ -0,0 +1,84 @@ +import React from 'react'; +import { IRowRendererCBParam, RendererArgs } from './BaseTable'; +import { IColumnProps, IHeaderRendererCBParam, RowDataType } from './Column'; +import { IHeaderRendererParam } from './GridTable'; + +export interface TableHeaderProps { + className?: string; + width: React.Key; + height: React.Key; + headerHeight: number | number[]; + rowWidth: number; + rowHeight: React.Key; + columns: IColumnProps[]; + data: T[]; + frozenData?: T[]; + headerRenderer: React.ElementType; + rowRenderer: React.ElementType; + hoveredRowKey?: React.Key; +} + +class TableHeader extends React.PureComponent { + private headerRef: HTMLDivElement; + + public scrollTo(offset: number) { + if (this.headerRef) { + this.headerRef.scrollLeft = offset; + } + } + + public renderHeaderRow = (height: number, index: number) => { + const { columns, headerRenderer: HeaderRenderer } = this.props; + if (height <= 0) { + return null; + } + + const style: React.CSSProperties = { width: '100%', height }; + const headerProps: IHeaderRendererCBParam = { style, columns, headerIndex: index }; + return ; + } + + public renderFrozenRow = (rowData: RowDataType, index: number) => { + const { columns, rowHeight, rowRenderer: RowRenderer } = this.props; + const style = { width: '100%', height: rowHeight }; + // for frozen row the `rowIndex` is negative + const rowIndex = -index - 1; + const rowProps: IRowRendererCBParam = { style, columns, rowData, rowIndex }; + return ; + } + + public render() { + const { className, width, height, rowWidth, headerHeight, frozenData } = this.props; + if (height <= 0) { + return null; + } + + const style: React.CSSProperties = { + width, + height, + position: 'relative', + overflow: 'hidden', + }; + + const innerStyle: React.CSSProperties = { + width: rowWidth, + height, + }; + + const rowHeights = Array.isArray(headerHeight) ? headerHeight : [headerHeight]; + return ( +
+
+ {rowHeights.map(this.renderHeaderRow)} + {frozenData.map(this.renderFrozenRow)} +
+
+ ); + } + + private _setRef = (ref: HTMLDivElement) => { + this.headerRef = ref; + } +} + +export default TableHeader; diff --git a/src/TableHeaderCell.js b/src/TableHeaderCell.js deleted file mode 100644 index d14c3fa8..00000000 --- a/src/TableHeaderCell.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -/** - * HeaderCell component for BaseTable - */ -const TableHeaderCell = ({ className, column, columnIndex }) =>
{column.title}
; - -TableHeaderCell.propTypes = { - className: PropTypes.string, - column: PropTypes.object, - columnIndex: PropTypes.number, -}; - -export default TableHeaderCell; diff --git a/src/TableHeaderCell.tsx b/src/TableHeaderCell.tsx new file mode 100644 index 00000000..65014a8b --- /dev/null +++ b/src/TableHeaderCell.tsx @@ -0,0 +1,17 @@ +import React from 'react'; + +export interface ITableHeaderCellProps { + className?: string; + column?: { title: string }; + columnIndex?: number; +} + +/** + * HeaderCell component for BaseTable + */ +export type TTableHeaderCell = React.FunctionComponent; +const TableHeaderCell: TTableHeaderCell = ({ className, column, columnIndex }) => ( +
{column.title}
+); + +export default TableHeaderCell; diff --git a/src/TableHeaderRow.js b/src/TableHeaderRow.js deleted file mode 100644 index e4beb21d..00000000 --- a/src/TableHeaderRow.js +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -import { renderElement } from './utils'; - -/** - * HeaderRow component for BaseTable - */ -const TableHeaderRow = ({ - className, - style, - columns, - headerIndex, - cellRenderer, - headerRenderer, - expandColumnKey, - expandIcon: ExpandIcon, - tagName: Tag, - ...rest -}) => { - let cells = columns.map((column, columnIndex) => - cellRenderer({ - columns, - column, - columnIndex, - headerIndex, - expandIcon: column.key === expandColumnKey && , - }) - ); - - if (headerRenderer) { - cells = renderElement(headerRenderer, { cells, columns, headerIndex }); - } - - return ( - - {cells} - - ); -}; - -TableHeaderRow.defaultProps = { - tagName: 'div', -}; - -TableHeaderRow.propTypes = { - isScrolling: PropTypes.bool, - className: PropTypes.string, - style: PropTypes.object, - columns: PropTypes.arrayOf(PropTypes.object).isRequired, - headerIndex: PropTypes.number, - cellRenderer: PropTypes.func, - headerRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), - expandColumnKey: PropTypes.string, - expandIcon: PropTypes.func, - tagName: PropTypes.elementType, -}; - -export default TableHeaderRow; diff --git a/src/TableHeaderRow.tsx b/src/TableHeaderRow.tsx new file mode 100644 index 00000000..c561f352 --- /dev/null +++ b/src/TableHeaderRow.tsx @@ -0,0 +1,64 @@ +import React from 'react'; + +import { renderElement } from './utils'; + +import { TTagname } from './BaseTable'; +import { ICellRendererCBParam, IColumnProps } from './Column'; +import { IHeaderRendererParam } from './GridTable'; + +export interface ITableHeaderRowProps { + isScrolling?: boolean; + className?: string; + style?: React.CSSProperties; + columns: IColumnProps[]; + headerIndex?: number; + cellRenderer?: (props: ICellRendererCBParam) => React.ReactNode; + headerRenderer?: React.ElementType; + expandColumnKey?: string; + expandIcon?: React.ElementType; + tagName?: TTagname; +} + +type TTableHeaderRow = React.FunctionComponent>; +/** + * HeaderRow component for BaseTable + */ +const TableHeaderRow: TTableHeaderRow = ({ + className, + style, + columns, + headerIndex, + cellRenderer, + headerRenderer, + expandColumnKey, + expandIcon: ExpandIcon, + tagName: Tag, + ...rest +}) => { + let cells: React.ReactNode = columns.map((column, columnIndex) => { + const cellProps: ICellRendererCBParam = { + columns, + column, + columnIndex, + headerIndex, + expandIcon: column.key === expandColumnKey && , + }; + return cellRenderer({...cellProps}); + }); + + if (headerRenderer) { + cells = renderElement(headerRenderer, { cells, columns, headerIndex }); + } + + return ( + + {cells} + + ); +}; + +TableHeaderRow.defaultProps = { + tagName: 'div', +}; + +export default TableHeaderRow; diff --git a/src/TableRow.js b/src/TableRow.js deleted file mode 100644 index abd12a3c..00000000 --- a/src/TableRow.js +++ /dev/null @@ -1,136 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -import { renderElement } from './utils'; - -/** - * Row component for BaseTable - */ -class TableRow extends React.PureComponent { - constructor(props) { - super(props); - - this._handleExpand = this._handleExpand.bind(this); - } - - render() { - /* eslint-disable no-unused-vars */ - const { - isScrolling, - className, - style, - columns, - rowIndex, - rowData, - expandColumnKey, - depth, - rowEventHandlers, - rowRenderer, - cellRenderer, - expandIconRenderer, - tagName: Tag, - // omit the following from rest - rowKey, - onRowHover, - onRowExpand, - ...rest - } = this.props; - /* eslint-enable no-unused-vars */ - - const expandIcon = expandIconRenderer({ rowData, rowIndex, depth, onExpand: this._handleExpand }); - let cells = columns.map((column, columnIndex) => - cellRenderer({ - isScrolling, - columns, - column, - columnIndex, - rowData, - rowIndex, - expandIcon: column.key === expandColumnKey && expandIcon, - }) - ); - - if (rowRenderer) { - cells = renderElement(rowRenderer, { isScrolling, cells, columns, rowData, rowIndex, depth }); - } - - const eventHandlers = this._getEventHandlers(rowEventHandlers); - - return ( - - {cells} - - ); - } - - _handleExpand(expanded) { - const { onRowExpand, rowData, rowIndex, rowKey } = this.props; - onRowExpand && onRowExpand({ expanded, rowData, rowIndex, rowKey }); - } - - _getEventHandlers(handlers = {}) { - const { rowData, rowIndex, rowKey, onRowHover } = this.props; - const eventHandlers = {}; - Object.keys(handlers).forEach(eventKey => { - const callback = handlers[eventKey]; - if (typeof callback === 'function') { - eventHandlers[eventKey] = event => { - callback({ rowData, rowIndex, rowKey, event }); - }; - } - }); - - if (onRowHover) { - const mouseEnterHandler = eventHandlers['onMouseEnter']; - eventHandlers['onMouseEnter'] = event => { - onRowHover({ - hovered: true, - rowData, - rowIndex, - rowKey, - event, - }); - mouseEnterHandler && mouseEnterHandler(event); - }; - - const mouseLeaveHandler = eventHandlers['onMouseLeave']; - eventHandlers['onMouseLeave'] = event => { - onRowHover({ - hovered: false, - rowData, - rowIndex, - rowKey, - event, - }); - mouseLeaveHandler && mouseLeaveHandler(event); - }; - } - - return eventHandlers; - } -} - -TableRow.defaultProps = { - tagName: 'div', -}; - -TableRow.propTypes = { - isScrolling: PropTypes.bool, - className: PropTypes.string, - style: PropTypes.object, - columns: PropTypes.arrayOf(PropTypes.object).isRequired, - rowData: PropTypes.object.isRequired, - rowIndex: PropTypes.number.isRequired, - rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - expandColumnKey: PropTypes.string, - depth: PropTypes.number, - rowEventHandlers: PropTypes.object, - rowRenderer: PropTypes.oneOfType([PropTypes.elementType, PropTypes.element]), - cellRenderer: PropTypes.func, - expandIconRenderer: PropTypes.func, - onRowHover: PropTypes.func, - onRowExpand: PropTypes.func, - tagName: PropTypes.elementType, -}; - -export default TableRow; diff --git a/src/TableRow.tsx b/src/TableRow.tsx new file mode 100644 index 00000000..a5ddf856 --- /dev/null +++ b/src/TableRow.tsx @@ -0,0 +1,142 @@ +import React from 'react'; +import { ICellProps, IOnRowExpandCBParam, IOnRowHover, IRenderExpandIcon, IRowRendererCBParam } from './BaseTable'; +import { ICellRendererCBParam, IColumnProps, RowDataType } from './Column'; +import { renderElement } from './utils'; + +interface HandlerArgs { + rowData: RowDataType; + rowIndex: number; + rowKey: React.Key; + event: Event; +} +export interface THandlerCollection { + [key: string]: (args: HandlerArgs) => void; +} + +export interface ITableRowProps { + isScrolling?: boolean; + className?: string; + style?: React.CSSProperties; + columns: IColumnProps[]; + rowData: T; + rowIndex: number; + rowKey?: React.Key; + expandColumnKey?: string; + depth?: number; + rowEventHandlers?: THandlerCollection; + rowRenderer?: React.ElementType | React.ReactElement; + cellRenderer?: (props: ICellRendererCBParam) => React.ReactNode; + expandIconRenderer?: React.ElementType>; + onRowHover?: (args: IOnRowHover) => void; + onRowExpand?: (args: IOnRowExpandCBParam) => any; + tagName?: React.ElementType; +} + +/** + * Row component for BaseTable + */ +class TableRow extends React.PureComponent> { + public static defaultProps = { + tagName: 'div', + }; + public render() { + /* eslint-disable no-unused-vars */ + const { + isScrolling, + className, + style, + columns, + rowIndex, + rowData, + expandColumnKey, + depth, + rowEventHandlers, + rowRenderer, + cellRenderer, + expandIconRenderer: ExpandIconRenderer, + tagName: Tag, + // omit the following from rest + rowKey, + onRowHover, + onRowExpand, + ...rest + } = this.props; + /* eslint-enable no-unused-vars */ + + const expandIconProps: IRenderExpandIcon = { rowData, rowIndex, depth, onExpand: this.handleExpand }; + const expandIcon = ; + + let cells: React.ReactNode = columns.map((column, columnIndex) => { + const cellProps: ICellProps = { + isScrolling, + columns, + column, + columnIndex, + rowData, + rowIndex, + expandIcon: column.key === expandColumnKey && expandIcon, + }; + return cellRenderer({...cellProps}); + }); + + if (rowRenderer) { + cells = renderElement(rowRenderer, { isScrolling, cells, columns, rowData, rowIndex, depth }); + } + + const eventHandlers = this.getEventHandlers(rowEventHandlers); + + return ( + + {cells} + + ); + } + + private handleExpand = (expanded: string[]) => { + const { onRowExpand, rowData, rowIndex, rowKey } = this.props; + if (onRowExpand) { onRowExpand({ expanded, rowData, rowIndex, rowKey }); } + } + + private getEventHandlers = (handlers: THandlerCollection = {}) => { + const { rowData, rowIndex, rowKey, onRowHover } = this.props; + const eventHandlers: { [key: string]: (event: Event) => void } = {}; + Object.keys(handlers).forEach((eventKey) => { + const callback = handlers[eventKey]; + if (typeof callback === 'function') { + eventHandlers[eventKey] = (event) => { + callback({ rowData, rowIndex, rowKey, event }); + }; + } + }); + + if (onRowHover) { + const mouseEnterHandler = eventHandlers.onMouseEnter; + eventHandlers.onMouseEnter = (event) => { + onRowHover({ + hovered: true, + rowData, + rowIndex, + rowKey, + event, + }); + if ( mouseEnterHandler ) { mouseEnterHandler(event); } + }; + + const mouseLeaveHandler = eventHandlers.onMouseLeave; + eventHandlers.onMouseLeave = (event) => { + onRowHover({ + hovered: false, + rowData, + rowIndex, + rowKey, + event, + }); + if (mouseLeaveHandler) { mouseLeaveHandler(event); } + }; + } + + return eventHandlers; + } +} + +export default TableRow; diff --git a/src/__snapshots__/BaseTable.spec.js.snap b/src/__snapshots__/BaseTable.spec.tsx.snap similarity index 100% rename from src/__snapshots__/BaseTable.spec.js.snap rename to src/__snapshots__/BaseTable.spec.tsx.snap diff --git a/src/utils.js b/src/utils.tsx similarity index 52% rename from src/utils.js rename to src/utils.tsx index b6cc9094..71e09e76 100644 --- a/src/utils.js +++ b/src/utils.tsx @@ -1,7 +1,10 @@ import React from 'react'; +import { IColumnProps } from './Column'; -export function renderElement(renderer, props) { - if (!renderer) return null; +export function renderElement(renderer: React.ElementType | React.ReactElement, props?: any) { + if (!renderer) { + return null; + } if (React.isValidElement(renderer)) { return React.cloneElement(renderer, props); @@ -10,54 +13,75 @@ export function renderElement(renderer, props) { } } -export function normalizeColumns(elements) { - const columns = []; - React.Children.forEach(elements, element => { +export type GetProps = C extends React.ElementType ? P : never; + +export function normalizeColumns(elements: Array>) { + const columns: IColumnProps[] = []; + React.Children.forEach>(elements, (element) => { if (React.isValidElement(element) && element.key) { - const column = { ...element.props, key: element.key }; + const column: IColumnProps = { ...element.props, key: element.key }; columns.push(column); } }); return columns; } -export function isObjectEqual(objA, objB) { - if (objA === objB) return true; - if (objA === null && objB === null) return true; - if (objA === null || objB === null) return false; - if (typeof objA !== 'object' || typeof objB !== 'object') return false; +export function isObjectEqual(objA: any, objB: any) { + if (objA === objB) { + return true; + } + if (objA === null && objB === null) { + return true; + } + if (objA === null || objB === null) { + return false; + } + if (typeof objA !== 'object' || typeof objB !== 'object') { + return false; + } const keysA = Object.keys(objA); const keysB = Object.keys(objB); - if (keysA.length !== keysB.length) return false; - + if (keysA.length !== keysB.length) { + return false; + } + // tslint:disable-next-line for (let i = 0; i < keysA.length; i++) { const key = keysA[i]; const valueA = objA[key]; const valueB = objB[key]; - if (typeof valueA !== typeof valueB) return false; - if (typeof valueA === 'function') continue; + if (typeof valueA !== typeof valueB) { + return false; + } + if (typeof valueA === 'function') { + continue; + } if (typeof valueA === 'object') { - if (!isObjectEqual(valueA, valueB)) return false; - else continue; + if (!isObjectEqual(valueA, valueB)) { + return false; + } else { + continue; + } + } + if (valueA !== valueB) { + return false; } - if (valueA !== valueB) return false; } return true; } -export function callOrReturn(funcOrValue, ...args) { +export function callOrReturn(funcOrValue: any, ...args: any[]) { return typeof funcOrValue === 'function' ? funcOrValue(...args) : funcOrValue; } -export function hasChildren(data) { +export function hasChildren(data: any) { return Array.isArray(data.children) && data.children.length > 0; } -export function unflatten(array, rootId = null, dataKey = 'id', parentKey = 'parentId') { +export function unflatten(array: any[], rootId: string = null, dataKey: string = 'id', parentKey: string = 'parentId') { const tree = []; - const childrenMap = {}; + const childrenMap: { [key: string]: any[] } = {}; const length = array.length; for (let i = 0; i < length; i++) { @@ -65,11 +89,15 @@ export function unflatten(array, rootId = null, dataKey = 'id', parentKey = 'par const id = item[dataKey]; const parentId = item[parentKey]; - if (!childrenMap[id]) childrenMap[id] = []; + if (!childrenMap[id]) { + childrenMap[id] = []; + } item.children = childrenMap[id]; if (parentId !== undefined && parentId !== rootId) { - if (!childrenMap[parentId]) childrenMap[parentId] = []; + if (!childrenMap[parentId]) { + childrenMap[parentId] = []; + } childrenMap[parentId].push(item); } else { tree.push(item); @@ -79,22 +107,24 @@ export function unflatten(array, rootId = null, dataKey = 'id', parentKey = 'par return tree; } -export function flattenOnKeys(tree, keys, depthMap = {}, dataKey = 'id') { - if (!keys || !keys.length) return tree; +export function flattenOnKeys(tree: any[], keys: string[], depthMap: { [key: string]: number } = {}, dataKey = 'id') { + if (!keys || !keys.length) { + return tree; + } const array = []; - const keysSet = new Set(); - keys.forEach(x => keysSet.add(x)); + const keysSet: Set = new Set(); + keys.forEach((x) => keysSet.add(x)); - let stack = [].concat(tree); - stack.forEach(x => (depthMap[x[dataKey]] = 0)); + let stack: any[] = [].concat(tree); + stack.forEach((x) => (depthMap[x[dataKey]] = 0)); while (stack.length > 0) { const item = stack.shift(); array.push(item); if (keysSet.has(item[dataKey]) && Array.isArray(item.children) && item.children.length > 0) { stack = [].concat(item.children, stack); - item.children.forEach(x => (depthMap[x[dataKey]] = depthMap[item[dataKey]] + 1)); + item.children.forEach((x: any) => (depthMap[x[dataKey]] = depthMap[item[dataKey]] + 1)); } } @@ -104,20 +134,27 @@ export function flattenOnKeys(tree, keys, depthMap = {}, dataKey = 'id') { // Babel7 changed the behavior of @babel/plugin-transform-spread in https://github.com/babel/babel/pull/6763 // [...array] is transpiled to array.concat() while it was [].concat(array) before // this change breaks immutable array(seamless-immutable), [...array] should always return mutable array -export function cloneArray(array) { - if (!Array.isArray(array)) return []; +export function cloneArray(array: any[]) { + if (!Array.isArray(array)) { + return []; + } return [].concat(array); } +// tslint:disable-next-line:no-empty export function noop() {} -export function toString(value) { - if (typeof value === 'string') return value; - if (value === null || value === undefined) return ''; +export function toString(value: any) { + if (typeof value === 'string') { + return value; + } + if (value === null || value === undefined) { + return ''; + } return value.toString ? value.toString() : ''; } -function getPathSegments(path) { +function getPathSegments(path: string) { const pathArray = path.split('.'); const parts = []; @@ -136,7 +173,7 @@ function getPathSegments(path) { } // changed from https://github.com/sindresorhus/dot-prop/blob/master/index.js -export function getValue(object, path, defaultValue) { +export function getValue(object: T, path: string, defaultValue?: T) { if (object === null || typeof object !== 'object' || typeof path !== 'string') { return defaultValue; } @@ -163,18 +200,20 @@ export function getValue(object, path, defaultValue) { } // copied from https://30secondsofcode.org/function#throttle -export function throttle(fn, wait) { - let inThrottle, lastFn, lastTime; +export function throttle(fn: (...args: any[]) => any, wait: number) { + let inThrottle: boolean; + let lastFn: number; + let lastTime: number; return function() { - const context = this, - args = arguments; + const context = this; + const args = arguments; if (!inThrottle) { fn.apply(context, args); lastTime = Date.now(); inThrottle = true; } else { clearTimeout(lastFn); - lastFn = setTimeout(function() { + lastFn = setTimeout(() => { if (Date.now() - lastTime >= wait) { fn.apply(context, args); lastTime = Date.now(); @@ -185,11 +224,11 @@ export function throttle(fn, wait) { } // copied from https://github.com/react-bootstrap/dom-helpers -let scrollbarSize; -export function getScrollbarSize(recalculate) { +let scrollbarSize: number; +export function getScrollbarSize(recalculate?: boolean) { if ((!scrollbarSize && scrollbarSize !== 0) || recalculate) { if (typeof window !== 'undefined' && window.document && window.document.createElement) { - let scrollDiv = document.createElement('div'); + const scrollDiv = document.createElement('div'); scrollDiv.style.position = 'absolute'; scrollDiv.style.top = '-9999px'; @@ -206,7 +245,7 @@ export function getScrollbarSize(recalculate) { return scrollbarSize; } -export function addClassName(el, className) { +export function addClassName(el: HTMLElement, className: string) { if (el.classList) { el.classList.add(className); } else { @@ -216,10 +255,35 @@ export function addClassName(el, className) { } } -export function removeClassName(el, className) { +export function removeClassName(el: HTMLElement, className: string) { if (el.classList) { el.classList.remove(className); } else { el.className = el.className.replace(new RegExp(`(?:^|\\s)${className}(?!\\S)`, 'g'), ''); } } + + +export const eventsFor = { + touch: { + start: 'touchstart', + move: 'touchmove', + stop: 'touchend', + }, + mouse: { + start: 'mousedown', + move: 'mousemove', + stop: 'mouseup', + }, +}; + + +export const isMouseEvent = (in_event: TouchEvent | MouseEvent): in_event is MouseEvent => { + return in_event.type === eventsFor.mouse.start || in_event.type === eventsFor.mouse.move || + in_event.type === eventsFor.mouse.stop; +} + +export const isTouchEvent = (in_event: TouchEvent | MouseEvent): in_event is TouchEvent => { + return in_event.type === eventsFor.touch.start || in_event.type === eventsFor.touch.move || + in_event.type === eventsFor.touch.stop; +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..65c6fefb --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "paths": { "*": ["types/*"] }, + "module": "commonjs", + "esModuleInterop": true, + "target": "es2017", + "sourceMap": true, + "noImplicitAny": true, + "outDir": "build", + "baseUrl": ".", + "allowJs": true, + "noUnusedLocals": true, + "noImplicitReturns": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "experimentalDecorators": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "jsx": "react" + }, + "include": [ + "./src/**/*", + ], + "exclude": ["node_modules"] +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 00000000..6e7cff31 --- /dev/null +++ b/tslint.json @@ -0,0 +1,24 @@ +{ + "defaultSeverity": "error", + "extends": [ + "tslint:recommended" + ], + "rules": { + "no-console": false, + "max-classes-per-file": false, + "variable-name": ["allow-pascal-case"], + "quotemark": [true, "single", "avoid-escape"], + "no-bitwise": false, + "interface-name": false, + "object-literal-sort-keys": false + }, + "jsRules": { + "no-console": false, + "max-classes-per-file": false, + "variable-name": ["allow-pascal-case"], + "quotemark": [true, "single", "avoid-escape"], + "no-bitwise": false, + "trailing-comma": false, + "object-literal-sort-keys": false + } +} diff --git a/website/gatsby-config.js b/website/gatsby-config.js index 86dc6774..fc17cf60 100644 --- a/website/gatsby-config.js +++ b/website/gatsby-config.js @@ -75,6 +75,6 @@ module.exports = { plugins: ['gatsby-remark-copy-linked-files'], }, }, - 'gatsby-transformer-react-docgen', + 'gatsby-transformer-react-docgen-typescript', ], } diff --git a/website/gatsby-node.js b/website/gatsby-node.js index 671b5923..29eac3e5 100644 --- a/website/gatsby-node.js +++ b/website/gatsby-node.js @@ -1,6 +1,7 @@ const path = require('path') +const fs = require('fs') const _ = require('lodash') - +const { findFileWithExtension } = require('./utilsNode') const siteConfig = require('./siteConfig') exports.onCreateWebpackConfig = ({ stage, getConfig, actions }) => { @@ -14,9 +15,11 @@ exports.onCreateWebpackConfig = ({ stage, getConfig, actions }) => { siteConfig: path.resolve(__dirname, 'siteConfig'), 'react-base-table/package.json': path.resolve(__dirname, '../package.json'), 'react-base-table/styles.css': path.resolve(__dirname, '../styles.css'), - 'react-base-table': path.resolve(__dirname, '../src'), + 'react-base-table': path.resolve(__dirname, '../build'), } + config.devtool = `source-map` + actions.replaceWebpackConfig(config) } @@ -69,7 +72,6 @@ exports.onCreateNode = ({ node, actions, getNode, createNodeId }) => { exports.createPages = async ({ graphql, actions, getNode }) => { const { createPage } = actions - const docPage = path.resolve('src/templates/doc.js') const apiPage = path.resolve('src/templates/api.js') const examplePage = path.resolve('src/templates/example.js') @@ -123,12 +125,24 @@ exports.createPages = async ({ graphql, actions, getNode }) => { }) }) + const docDisplayNames = findFileWithExtension('tsx').map(item => { + return path.basename(item).replace('.tsx', '') + }) + result.data.allComponentMetadata.edges.forEach(edge => { const node = edge.node const fileNode = getNode(node.parent.id) if (fileNode.sourceInstanceName !== 'api') return const { displayName: name, docblock } = node - if (!docblock) return + if (!docblock) { + const currentDisplayNameMatch = docDisplayNames.find(displayNameItem => { + return displayNameItem === name + }) + + if (!currentDisplayNameMatch) { + return + } + } createPage({ path: `/api/${name.toLowerCase()}`, component: apiPage, diff --git a/website/package.json b/website/package.json index 5f4c7c21..b5e0be0e 100644 --- a/website/package.json +++ b/website/package.json @@ -26,6 +26,7 @@ "prop-types": "^15.7.2", "react": "^16.8.5", "react-dom": "^16.8.5", + "react-docgen-typescript": "^1.15.0", "react-helmet": "^5.2.0", "react-inspector": "^2.3.1", "react-live-runner": "^0.7.3", diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/README.md b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md new file mode 100644 index 00000000..a27ddbf8 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md @@ -0,0 +1,38 @@ + +# gatsby-transformer-react-docgen-typescript +Parses inline component-documentation using +[react-docgen](https://github.com/reactjs/react-docgen), +[react-docgen-typescript](https://github.com/styleguidist/react-docgen-typescript) and +[gatsby-transform-react-docgen](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-react-docgen) + +## Usage + +Add a plugin-entry to your `gatsby-config.js` + +```js +module.exports = { + plugins: [`gatsby-transformer-react-docgen-typescript`], +} +``` + +## How to query + +An example _graphql_ query to get nodes: + +```graphql +{ + allComponentMetadata { + edges { + node { + displayName + description + props { + name + type + required + } + } + } + } +} +``` diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js b/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js new file mode 100644 index 00000000..f5d061d5 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js @@ -0,0 +1,4 @@ +"use strict"; + +exports.onCreateNode = require(`./on-node-create`).default; +exports.setFieldsOnGraphQLNodeType = require(`gatsby-transformer-react-docgen/extend-node-type`).default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js new file mode 100644 index 00000000..79f94739 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js @@ -0,0 +1,206 @@ +const path = require('path') +var tsxParser = require('react-docgen-typescript') + +try { + tsxParser = tsxParser.withCustomConfig( + path.resolve(__dirname, '../../../tsconfig.json'), + { + propFilter(prop) { + if (prop.parent) { + return !prop.parent.fileName.includes('node_modules') + } + return true + }, + } + ) +} catch (err) { + console.log('Error in initiating react-docgen-typescript: ', err) +} + +var _interopRequireDefault = require(`@babel/runtime/helpers/interopRequireDefault`) + +exports.__esModule = true +exports.default = onCreateNode + +const _parse = _interopRequireDefault( + require('gatsby-transformer-react-docgen/parse') +) + +const propsId = (parentId, name) => `${parentId}--ComponentProp-${name}` + +const descId = parentId => `${parentId}--ComponentDescription` + +function canParse(node) { + return ( + node && + (node.internal.mediaType === `application/javascript` || + // TypeScript doesn't really have a mime type and .ts files are a media file :/ + node.internal.mediaType === `application/typescript` || + node.internal.mediaType === `text/jsx` || + node.internal.mediaType === `text/tsx` || + node.extension === `tsx` || + node.extension === `ts`) + ) +} + +function createDescriptionNode( + node, + entry, + actions, + createNodeId, + createContentDigest +) { + const { createNode } = actions + delete node.description + const descriptionNode = { + id: createNodeId(descId(node.id)), + parent: node.id, + children: [], + text: entry.description, + internal: { + type: `ComponentDescription`, + mediaType: `text/markdown`, + content: entry.description, + contentDigest: createContentDigest(entry.description), + }, + } + node.description___NODE = descriptionNode.id + node.children = node.children.concat([descriptionNode.id]) + createNode(descriptionNode) + return node +} + +function createPropNodes( + node, + component, + actions, + createNodeId, + createContentDigest +) { + const { createNode } = actions + + let children = new Array(component.props.length) + + let propNames + let currentProps + if (Array.isArray(component.props)) { + currentProps = component.props + } else { + propNames = Object.keys(component.props) + currentProps = propNames.map(propName => { + return component.props[propName] + }) + } + + currentProps.length > 0 && + currentProps.forEach((prop, i) => { + let propNodeId = propsId(node.id, prop.name) + let content = JSON.stringify(prop) + let propNode = Object.assign({}, prop, { + id: createNodeId(propNodeId), + children: [], + parent: node.id, + parentType: prop.type, + internal: { + type: `ComponentProp`, + contentDigest: createContentDigest(content), + }, + }) + children[i] = propNode.id + propNode = createDescriptionNode( + propNode, + prop, + actions, + createNodeId, + createContentDigest + ) + createNode(propNode) + }) + node.props___NODE = children + node.children = node.children.concat(children) + return node +} + +async function onCreateNode( + { + node, + loadNodeContent, + actions, + createNodeId, + reporter, + createContentDigest, + }, + pluginOptions +) { + const { createNode, createParentChildLink } = actions + + if (!canParse(node)) return + + const content = await loadNodeContent(node) + let components + + const filepath = path.resolve(node.absolutePath) + try { + if ( + !filepath.includes('examples') && + (filepath.includes('.ts') || filepath.includes('.tsx')) + ) { + console.log('parsing: ', filepath) + components = tsxParser.parse(filepath) + } else { + components = (0, _parse.default)(content, node, pluginOptions) + } + } catch (err) { + reporter.error( + `There was a problem parsing component metadata for file: "${ + node.relativePath + }"`, + err + ) + return + } + + components.forEach(component => { + const strContent = JSON.stringify(component) + const contentDigest = createContentDigest(strContent) + const nodeId = `${node.id}--${component.displayName}--ComponentMetadata` + let metadataNode = Object.assign({}, component, { + props: null, + // handled by the prop node creation + id: createNodeId(nodeId), + children: [], + parent: node.id, + internal: { + contentDigest, + type: `ComponentMetadata`, + }, + }) + createParentChildLink({ + parent: node, + child: metadataNode, + }) + metadataNode = createPropNodes( + metadataNode, + component, + actions, + createNodeId, + createContentDigest + ) + metadataNode = createDescriptionNode( + metadataNode, + component, + actions, + createNodeId, + createContentDigest + ) + + if (metadataNode.children) { + for (let i = 0; i < metadataNode.children.length; i++) { + if (metadataNode.children[i] === undefined) { + metadataNode.children.splice(i, 1) + } + } + } + createNode(metadataNode) + }) +} diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/package.json b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json new file mode 100644 index 00000000..c087d81e --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json @@ -0,0 +1,3 @@ +{ + "name": "gatsby-transformer-react-docgen-typescript" +} diff --git a/website/utilsNode.js b/website/utilsNode.js new file mode 100644 index 00000000..a4dbdea0 --- /dev/null +++ b/website/utilsNode.js @@ -0,0 +1,33 @@ +const path = require('path') +const cp = require('child_process') + +/** + * Assuming being executed from somewhere inside the website folder, the function returns all files in + * react-base-table/src directory with the `ext` file-extension. + * @param {string} ext The file extension, e.g, 'tsx', 'jsx' etc. + * @returns {Array} Array of files found. + */ +const findFileWithExtension = ext => { + const pathWebsite_pwd = cp.execSync('pwd', { encoding: 'utf-8' }) + const pathToReactBaseTableSrc_pwd = + pathWebsite_pwd.split('website')[0] + 'src' + var command = `find ${pathToReactBaseTableSrc_pwd} -name *.${ext}` + const filesWithExt = cp.execSync(command, { encoding: 'utf-8' }) + const filesWithExtArr = filesWithExt.split('\n') + + const outArr = [] + for (let i = 0; i < filesWithExtArr.length - 1; i++) { + const filesWithExtArr_dirString = path.resolve( + __dirname, + '../', + 'src', + filesWithExtArr[i].split('src/')[1] + ) + outArr.push(filesWithExtArr_dirString) + } + return outArr +} + +module.exports = { + findFileWithExtension, +} diff --git a/website/yarn.lock b/website/yarn.lock index 18ea1c2e..bf2705fd 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -9277,6 +9277,11 @@ react-dev-utils@^4.2.3: dependencies: ast-types "0.13.2" +react-docgen-typescript@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.15.0.tgz#963f14210841f9b51ed18c65152a6cc37f1c3184" + integrity sha512-8xObdkRQbrc0505tEdVRO+pdId8pKFyD6jhLYM9FDdceKma+iB+a17Dk7e3lPRBRh8ArQLCedOCOfN/bO338kw== + react-docgen@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-4.1.1.tgz#8fef0212dbf14733e09edecef1de6b224d87219e" diff --git a/yarn.lock b/yarn.lock index a4641d88..3e8df730 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,15 +3,15 @@ "@babel/cli@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.5.5.tgz#bdb6d9169e93e241a08f5f7b0265195bf38ef5ec" - integrity sha512-UHI+7pHv/tk9g6WXQKYz+kmXTI77YtuY3vqC59KIqcoWEjsJJSG6rAxKaLsgj3LDyadsPrCB929gVOKM6Hui0w== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.4.4.tgz#5454bb7112f29026a4069d8e6f0e1794e651966c" + integrity sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.13" + lodash "^4.17.11" mkdirp "^0.5.1" output-file-sync "^2.0.0" slash "^2.0.0" @@ -19,41 +19,41 @@ optionalDependencies: chokidar "^2.0.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: "@babel/highlight" "^7.0.0" "@babel/core@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" + integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helpers" "^7.4.4" + "@babel/parser" "^7.4.5" "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/traverse" "^7.4.5" + "@babel/types" "^7.4.4" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" - lodash "^4.17.13" + lodash "^4.17.11" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" - integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== +"@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.4.4" jsesc "^2.5.1" - lodash "^4.17.13" + lodash "^4.17.11" source-map "^0.5.0" trim-right "^1.0.1" @@ -89,26 +89,26 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" - integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== +"@babel/helper-create-class-features-plugin@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" + integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-replace-supers" "^7.4.4" "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== +"@babel/helper-define-map@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" + integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" - lodash "^4.17.13" + "@babel/types" "^7.4.4" + lodash "^4.17.11" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -141,12 +141,12 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" - integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.0.0" "@babel/helper-module-imports@^7.0.0": version "7.0.0" @@ -156,16 +156,16 @@ "@babel/types" "^7.0.0" "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" + integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" - lodash "^4.17.13" + "@babel/types" "^7.4.4" + lodash "^4.17.11" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -180,11 +180,11 @@ integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" + integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== dependencies: - lodash "^4.17.13" + lodash "^4.17.11" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -197,15 +197,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" + integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -232,28 +232,28 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== +"@babel/helpers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" + integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== dependencies: "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.0.0", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" + integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -265,20 +265,12 @@ "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-proposal-class-properties@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" - integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-dynamic-import@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" - integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce" + integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg== dependencies: + "@babel/helper-create-class-features-plugin" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-proposal-json-strings@^7.2.0": version "7.2.0" @@ -288,10 +280,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" - integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" + integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -320,13 +312,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" @@ -362,10 +347,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== +"@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" + integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -378,25 +363,25 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== +"@babel/plugin-transform-block-scoping@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" + integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" + lodash "^4.17.11" -"@babel/plugin-transform-classes@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== +"@babel/plugin-transform-classes@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" + integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" + "@babel/helper-define-map" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-replace-supers" "^7.4.4" "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" @@ -407,10 +392,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== +"@babel/plugin-transform-destructuring@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" + integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -423,10 +408,10 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -467,33 +452,30 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" + integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" - babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" - integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== +"@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" + integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== dependencies: "@babel/helper-hoist-variables" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" "@babel/plugin-transform-modules-umd@^7.2.0": version "7.2.0" @@ -517,13 +499,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-replace-supers" "^7.1.0" "@babel/plugin-transform-parameters@^7.4.4": version "7.4.4" @@ -557,9 +539,9 @@ "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" - integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" + integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" @@ -588,9 +570,9 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-runtime@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz#a6331afbfc59189d2135b2e09474457a8e3d28bc" - integrity sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz#a50f5d16e9c3a4ac18a1a9f9803c107c380bce08" + integrity sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -644,44 +626,42 @@ regexpu-core "^4.5.4" "@babel/preset-env@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" - integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" + integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-dynamic-import" "^7.5.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-object-rest-spread" "^7.4.4" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-async-to-generator" "^7.4.4" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.5.5" - "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.4.4" + "@babel/plugin-transform-classes" "^7.4.4" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-destructuring" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" "@babel/plugin-transform-function-name" "^7.4.4" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" - "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-modules-systemjs" "^7.4.4" "@babel/plugin-transform-modules-umd" "^7.2.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-object-super" "^7.2.0" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" "@babel/plugin-transform-regenerator" "^7.4.5" @@ -692,7 +672,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.5" + "@babel/types" "^7.4.4" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -710,10 +690,10 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.4.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" - integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== +"@babel/runtime@^7.0.0": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12" + integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ== dependencies: regenerator-runtime "^0.13.2" @@ -726,198 +706,124 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" - integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" + integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A== dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/parser" "^7.4.5" + "@babel/types" "^7.4.4" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.11" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== dependencies: esutils "^2.0.2" - lodash "^4.17.13" + lodash "^4.17.11" to-fast-properties "^2.0.0" -"@evocateur/libnpmaccess@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" - integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - aproba "^2.0.0" - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - npm-package-arg "^6.1.0" - -"@evocateur/libnpmpublish@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" - integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - aproba "^2.0.0" - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - lodash.clonedeep "^4.5.0" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - semver "^5.5.1" - ssri "^6.0.1" - -"@evocateur/npm-registry-fetch@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" - integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== - dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - npm-package-arg "^6.1.0" - safe-buffer "^5.1.2" - -"@evocateur/pacote@^9.6.3": - version "9.6.5" - resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" - integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - bluebird "^3.5.3" - cacache "^12.0.3" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.5.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.4.4" - npm-pick-manifest "^3.0.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.3" - safe-buffer "^5.2.0" - semver "^5.7.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" - -"@lerna/add@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.16.2.tgz#90ecc1be7051cfcec75496ce122f656295bd6e94" - integrity sha512-RAAaF8aODPogj2Ge9Wj3uxPFIBGpog9M+HwSuq03ZnkkO831AmasCTJDqV+GEpl1U2DvnhZQEwHpWmTT0uUeEw== +"@lerna/add@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.14.0.tgz#799d416e67d48c285967abf883be746557aefa48" + integrity sha512-Sa79Ju6HqF3heSVpBiYPNrGtuS56U/jMzVq4CcVvhNwB34USLrzJJncGFVcfnuUvsjKeFJv+jHxUycHeRE8XYw== dependencies: - "@evocateur/pacote" "^9.6.3" - "@lerna/bootstrap" "3.16.2" - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/npm-conf" "3.16.0" + "@lerna/bootstrap" "3.14.0" + "@lerna/command" "3.14.0" + "@lerna/filter-options" "3.14.0" + "@lerna/npm-conf" "3.13.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" npm-package-arg "^6.1.0" - p-map "^2.1.0" - semver "^6.2.0" + p-map "^1.2.0" + pacote "^9.5.0" + semver "^5.5.0" -"@lerna/batch-packages@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.16.0.tgz#1c16cb697e7d718177db744cbcbdac4e30253c8c" - integrity sha512-7AdMkANpubY/FKFI01im01tlx6ygOBJ/0JcixMUWoWP/7Ds3SWQF22ID6fbBr38jUWptYLDs2fagtTDL7YUPuA== +"@lerna/batch-packages@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.14.0.tgz#0208663bab3ddbf57956b370aaec4c9ebee6c800" + integrity sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg== dependencies: - "@lerna/package-graph" "3.16.0" + "@lerna/package-graph" "3.14.0" npmlog "^4.1.2" -"@lerna/bootstrap@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.16.2.tgz#be268d940221d3c3270656b9b791b492559ad9d8" - integrity sha512-I+gs7eh6rv9Vyd+CwqL7sftRfOOsSzCle8cv/CGlMN7/p7EAVhxEdAw8SYoHIKHzipXszuqqy1Y3opyleD0qdA== - dependencies: - "@lerna/batch-packages" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/has-npm-version" "3.16.0" - "@lerna/npm-install" "3.16.0" - "@lerna/package-graph" "3.16.0" +"@lerna/bootstrap@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.14.0.tgz#dde35eac0a912097033e1daea237a50e5c3cb75b" + integrity sha512-AvnuDp8b0kX4zZgqD3v7ItPABhUsN5CmTEvZBD2JqM+xkQKhzCfz5ABcHEwDwOPWnNQmtH+/2iQdwaD7xBcAXw== + dependencies: + "@lerna/batch-packages" "3.14.0" + "@lerna/command" "3.14.0" + "@lerna/filter-options" "3.14.0" + "@lerna/has-npm-version" "3.13.3" + "@lerna/npm-install" "3.13.3" + "@lerna/package-graph" "3.14.0" "@lerna/pulse-till-done" "3.13.0" - "@lerna/rimraf-dir" "3.14.2" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-parallel-batches" "3.16.0" - "@lerna/symlink-binary" "3.16.2" - "@lerna/symlink-dependencies" "3.16.2" + "@lerna/rimraf-dir" "3.13.3" + "@lerna/run-lifecycle" "3.14.0" + "@lerna/run-parallel-batches" "3.13.0" + "@lerna/symlink-binary" "3.14.0" + "@lerna/symlink-dependencies" "3.14.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" - get-port "^4.2.0" - multimatch "^3.0.0" + get-port "^3.2.0" + multimatch "^2.1.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" p-finally "^1.0.0" - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" p-waterfall "^1.0.0" read-package-tree "^5.1.6" - semver "^6.2.0" + semver "^5.5.0" -"@lerna/changed@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.16.4.tgz#c3e727d01453513140eee32c94b695de577dc955" - integrity sha512-NCD7XkK744T23iW0wqKEgF4R9MYmReUbyHCZKopFnsNpQdqumc3SOIvQUAkKCP6hQJmYvxvOieoVgy/CVDpZ5g== +"@lerna/changed@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.14.1.tgz#274fa67a34f234546925c139aabe20765f07a8e4" + integrity sha512-G0RgYL/WLTFzbezRBLUO2J0v39EvgZIO5bHHUtYt7zUFSfzapkPfvpdpBj+5JlMtf0B2xfxwTk+lSA4LVnbfmA== dependencies: - "@lerna/collect-updates" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/listable" "3.16.0" + "@lerna/collect-updates" "3.14.0" + "@lerna/command" "3.14.0" + "@lerna/listable" "3.14.0" "@lerna/output" "3.13.0" - "@lerna/version" "3.16.4" + "@lerna/version" "3.14.1" -"@lerna/check-working-tree@3.14.2": - version "3.14.2" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.14.2.tgz#5ce007722180a69643a8456766ed8a91fc7e9ae1" - integrity sha512-7safqxM/MYoAoxZxulUDtIJIbnBIgo0PB/FHytueG+9VaX7GMnDte2Bt1EKa0dz2sAyQdmQ3Q8ZXpf/6JDjaeg== +"@lerna/check-working-tree@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.14.1.tgz#4102681c31e4cebed3968db27567e3180e519822" + integrity sha512-ae/sdZPNh4SS+6c4UDuWP/QKbtIFAn/TvKsPncA1Jdo0PqXLBlug4DzkHTGkvZ5F0nj+0JrSxYteInakJV99vg== dependencies: - "@lerna/collect-uncommitted" "3.14.2" - "@lerna/describe-ref" "3.14.2" + "@lerna/collect-uncommitted" "3.14.1" + "@lerna/describe-ref" "3.13.3" "@lerna/validation-error" "3.13.0" -"@lerna/child-process@3.14.2": - version "3.14.2" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.14.2.tgz#950240cba83f7dfe25247cfa6c9cebf30b7d94f6" - integrity sha512-xnq+W5yQb6RkwI0p16ZQnrn6HkloH/MWTw4lGE1nKsBLAUbmSU5oTE93W1nrG0X3IMF/xWc9UYvNdUGMWvZZ4w== +"@lerna/child-process@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.13.3.tgz#6c084ee5cca9fc9e04d6bf4fc3f743ed26ff190c" + integrity sha512-3/e2uCLnbU+bydDnDwyadpOmuzazS01EcnOleAnuj9235CU2U97DH6OyoG1EW/fU59x11J+HjIqovh5vBaMQjQ== dependencies: chalk "^2.3.1" execa "^1.0.0" strong-log-transformer "^2.0.0" -"@lerna/clean@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.16.0.tgz#1c134334cacea1b1dbeacdc580e8b9240db8efa1" - integrity sha512-5P9U5Y19WmYZr7UAMGXBpY7xCRdlR7zhHy8MAPDKVx70rFIBS6nWXn5n7Kntv74g7Lm1gJ2rsiH5tj1OPcRJgg== +"@lerna/clean@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.14.0.tgz#4399f4a3289106b0b8ffbffd4a6cfd2e3fe935f2" + integrity sha512-wEuAqOS9VMqh2C20KD63IySzyEnyVDqDI3LUsXw+ByUf9AJDgEHv0TCOxbDjDYaaQw1tjSBNZMyYInNeoASwhA== dependencies: - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" + "@lerna/command" "3.14.0" + "@lerna/filter-options" "3.14.0" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" - "@lerna/rimraf-dir" "3.14.2" - p-map "^2.1.0" + "@lerna/rimraf-dir" "3.13.3" + p-map "^1.2.0" p-map-series "^1.0.0" p-waterfall "^1.0.0" @@ -931,139 +837,138 @@ npmlog "^4.1.2" yargs "^12.0.1" -"@lerna/collect-uncommitted@3.14.2": - version "3.14.2" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-3.14.2.tgz#b5ed00d800bea26bb0d18404432b051eee8d030e" - integrity sha512-4EkQu4jIOdNL2BMzy/N0ydHB8+Z6syu6xiiKXOoFl0WoWU9H1jEJCX4TH7CmVxXL1+jcs8FIS2pfQz4oew99Eg== +"@lerna/collect-uncommitted@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-3.14.1.tgz#b3498c4c7f46efc79092ce4aa0a24edc535e5d1a" + integrity sha512-hQ67S+nlSJwsPylXbWlrQSZUcWa8tTNIdcMd9OY4+QxdJlZUG7CLbWSyaxi0g11WdoRJHT163mr9xQyAvIVT1A== dependencies: - "@lerna/child-process" "3.14.2" + "@lerna/child-process" "3.13.3" chalk "^2.3.1" figgy-pudding "^3.5.1" npmlog "^4.1.2" -"@lerna/collect-updates@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.16.0.tgz#6db3ce8a740a4e2b972c033a63bdfb77f2553d8c" - integrity sha512-HwAIl815X2TNlmcp28zCrSdXfoZWNP7GJPEqNWYk7xDJTYLqQ+SrmKUePjb3AMGBwYAraZSEJLbHdBpJ5+cHmQ== +"@lerna/collect-updates@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.14.0.tgz#64d64ff1ec05ac53dfe6851be49d2ad261e6795e" + integrity sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA== dependencies: - "@lerna/child-process" "3.14.2" - "@lerna/describe-ref" "3.14.2" + "@lerna/child-process" "3.13.3" + "@lerna/describe-ref" "3.13.3" minimatch "^3.0.4" npmlog "^4.1.2" - slash "^2.0.0" + slash "^1.0.0" -"@lerna/command@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.16.0.tgz#ba3dba49cb5ce4d11b48269cf95becd86e30773f" - integrity sha512-u7tE4GC4/gfbPA9eQg+0ulnoJ+PMoMqomx033r/IxqZrHtmJR9+pF/37S0fsxJ2hX/RMFPC7c9Q/i8NEufSpdQ== +"@lerna/command@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.14.0.tgz#5f5e68293c0ff1e85a20b4e96fa6bea33b7632df" + integrity sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q== dependencies: - "@lerna/child-process" "3.14.2" - "@lerna/package-graph" "3.16.0" - "@lerna/project" "3.16.0" + "@lerna/child-process" "3.13.3" + "@lerna/package-graph" "3.14.0" + "@lerna/project" "3.13.1" "@lerna/validation-error" "3.13.0" "@lerna/write-log-file" "3.13.0" dedent "^0.7.0" execa "^1.0.0" - is-ci "^2.0.0" - lodash "^4.17.14" + is-ci "^1.0.10" + lodash "^4.17.5" npmlog "^4.1.2" -"@lerna/conventional-commits@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.16.4.tgz#bf464f11b2f6534dad204db00430e1651b346a04" - integrity sha512-QSZJ0bC9n6FVaf+7KDIq5zMv8WnHXnwhyL5jG1Nyh3SgOg9q2uflqh7YsYB+G6FwaRfnPaKosh6obijpYg0llA== +"@lerna/conventional-commits@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.14.0.tgz#24f643550dc29d4f1249cc26d0eb453d7a1c513d" + integrity sha512-hGZ2qQZ9uEGf2eeIiIpEodSs9Qkkf/2uYEtNT7QN1RYISPUh6/lKGBssc5dpbCF64aEuxmemWLdlDf1ogG6++w== dependencies: "@lerna/validation-error" "3.13.0" conventional-changelog-angular "^5.0.3" conventional-changelog-core "^3.1.6" - conventional-recommended-bump "^5.0.0" - fs-extra "^8.1.0" + conventional-recommended-bump "^4.0.4" + fs-extra "^7.0.0" get-stream "^4.0.0" - lodash.template "^4.5.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" - pify "^4.0.1" - semver "^6.2.0" + pify "^3.0.0" + semver "^5.5.0" -"@lerna/create-symlink@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" - integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== +"@lerna/create-symlink@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.14.0.tgz#f40ae06e8cebe70c694368ebf9a4af5ab380fbea" + integrity sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A== dependencies: - "@zkochan/cmd-shim" "^3.1.0" - fs-extra "^8.1.0" + cmd-shim "^2.0.2" + fs-extra "^7.0.0" npmlog "^4.1.2" -"@lerna/create@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.16.0.tgz#4de841ec7d98b29bb19fb7d6ad982e65f7a150e8" - integrity sha512-OZApR1Iz7awutbmj4sAArwhqCyKgcrnw9rH0aWAUrkYWrD1w4TwkvAcYAsfx5GpQGbLQwoXhoyyPwPfZRRWz3Q== +"@lerna/create@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.14.0.tgz#ec7a0d4aa81e60c918ea2ba06f3c71ee2855a936" + integrity sha512-J4PeGnzVBOSV7Cih8Uhv9xIauljR9bGcfSDN9aMzFtJhSX0xFXNvmnpXRORp7xNHV2lbxk7mNxRQxzR9CQRMuw== dependencies: - "@evocateur/pacote" "^9.6.3" - "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" - "@lerna/npm-conf" "3.16.0" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.14.0" + "@lerna/npm-conf" "3.13.0" "@lerna/validation-error" "3.13.0" camelcase "^5.0.0" dedent "^0.7.0" - fs-extra "^8.1.0" - globby "^9.2.0" + fs-extra "^7.0.0" + globby "^8.0.1" init-package-json "^1.10.3" npm-package-arg "^6.1.0" p-reduce "^1.0.0" - pify "^4.0.1" - semver "^6.2.0" - slash "^2.0.0" + pacote "^9.5.0" + pify "^3.0.0" + semver "^5.5.0" + slash "^1.0.0" validate-npm-package-license "^3.0.3" validate-npm-package-name "^3.0.0" whatwg-url "^7.0.0" -"@lerna/describe-ref@3.14.2": - version "3.14.2" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.14.2.tgz#edc3c973f5ca9728d23358c4f4d3b55a21f65be5" - integrity sha512-qa5pzDRK2oBQXNjyRmRnN7E8a78NMYfQjjlRFB0KNHMsT6mCiL9+8kIS39sSE2NqT8p7xVNo2r2KAS8R/m3CoQ== +"@lerna/describe-ref@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.13.3.tgz#13318513613f6a407d37fc5dc025ec2cfb705606" + integrity sha512-5KcLTvjdS4gU5evW8ESbZ0BF44NM5HrP3dQNtWnOUSKJRgsES8Gj0lq9AlB2+YglZfjEftFT03uOYOxnKto4Uw== dependencies: - "@lerna/child-process" "3.14.2" + "@lerna/child-process" "3.13.3" npmlog "^4.1.2" -"@lerna/diff@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.16.0.tgz#6d09a786f9f5b343a2fdc460eb0be08a05b420aa" - integrity sha512-QUpVs5TPl8vBIne10/vyjUxanQBQQp7Lk3iaB8MnCysKr0O+oy7trWeFVDPEkBTCD177By7yPGyW5Yey1nCBbA== +"@lerna/diff@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.14.0.tgz#a4860c062faf990dd3c208dcf1c6fbde5a042bdb" + integrity sha512-H6FSj0jOiQ6unVCwOK6ReT5uZN6ZIn/j/cx4YwuOtU3SMcs3UfuQRIFNeKg/tKmOcQGd39Mn9zDhmt3TAYGROA== dependencies: - "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.14.0" "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/exec@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.16.0.tgz#2b6c033cee46181b6eede0eb12aad5c2c0181e89" - integrity sha512-mH3O5NXf/O88jBaBBTUf+d56CUkxpg782s3Jxy7HWbVuSUULt3iMRPTh+zEXO5/555etsIVVDDyUR76meklrJA== +"@lerna/exec@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.14.0.tgz#da632dac4a86d59f7fe8c566af8648f8272241ff" + integrity sha512-cNFO8hWsBVLeqVQ7LsQ4rYKbbQ2eN+Ne+hWKTlUQoyRbYzgJ22TXhjKR6IMr68q0xtclcDlasfcNO+XEWESh0g== dependencies: - "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/run-topologically" "3.16.0" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.14.0" + "@lerna/filter-options" "3.14.0" + "@lerna/run-topologically" "3.14.0" "@lerna/validation-error" "3.13.0" - p-map "^2.1.0" + p-map "^1.2.0" -"@lerna/filter-options@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.16.0.tgz#b1660b4480c02a5c6efa4d0cd98b9afde4ed0bba" - integrity sha512-InIi1fF8+PxpCwir9bIy+pGxrdE6hvN0enIs1eNGCVS1TTE8osNgiZXa838bMQ1yaEccdcnVX6Z03BNKd56kNg== +"@lerna/filter-options@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.14.0.tgz#6a2e60708633f54973bf31262b58e53efb537ef2" + integrity sha512-ZmNZK9m8evxHc+2ZnDyCm8XFIKVDKpIASG1wtizr3R14t49fuYE7nR+rm4t82u9oSSmER8gb8bGzh0SKZme/jg== dependencies: - "@lerna/collect-updates" "3.16.0" - "@lerna/filter-packages" "3.16.0" + "@lerna/collect-updates" "3.14.0" + "@lerna/filter-packages" "3.13.0" dedent "^0.7.0" -"@lerna/filter-packages@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.16.0.tgz#7d34dc8530c71016263d6f67dc65308ecf11c9fc" - integrity sha512-eGFzQTx0ogkGDCnbTuXqssryR6ilp8+dcXt6B+aq1MaqL/vOJRZyqMm4TY3CUOUnzZCi9S2WWyMw3PnAJOF+kg== +"@lerna/filter-packages@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.13.0.tgz#f5371249e7e1a15928e5e88c544a242e0162c21c" + integrity sha512-RWiZWyGy3Mp7GRVBn//CacSnE3Kw82PxE4+H6bQ3pDUw/9atXn7NRX+gkBVQIYeKamh7HyumJtyOKq3Pp9BADQ== dependencies: "@lerna/validation-error" "3.13.0" - multimatch "^3.0.0" + multimatch "^2.1.0" npmlog "^4.1.2" "@lerna/get-npm-exec-opts@3.13.0": @@ -1073,173 +978,164 @@ dependencies: npmlog "^4.1.2" -"@lerna/get-packed@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" - integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== +"@lerna/get-packed@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.13.0.tgz#335e40d77f3c1855aa248587d3e0b2d8f4b06e16" + integrity sha512-EgSim24sjIjqQDC57bgXD9l22/HCS93uQBbGpkzEOzxAVzEgpZVm7Fm1t8BVlRcT2P2zwGnRadIvxTbpQuDPTg== dependencies: - fs-extra "^8.1.0" + fs-extra "^7.0.0" ssri "^6.0.1" tar "^4.4.8" -"@lerna/github-client@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.16.0.tgz#619874e461641d4f59ab1b3f1a7ba22dba88125d" - integrity sha512-IVJjcKjkYaUEPJsDyAblHGEFFNKCRyMagbIDm14L7Ab94ccN6i4TKOqAFEJn2SJHYvKKBdp3Zj2zNlASOMe3DA== +"@lerna/github-client@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.13.3.tgz#bcf9b4ff40bdd104cb40cd257322f052b41bb9ce" + integrity sha512-fcJkjab4kX0zcLLSa/DCUNvU3v8wmy2c1lhdIbL7s7gABmDcV0QZq93LhnEee3VkC9UpnJ6GKG4EkD7eIifBnA== dependencies: - "@lerna/child-process" "3.14.2" - "@octokit/plugin-enterprise-rest" "^3.6.1" - "@octokit/rest" "^16.28.4" + "@lerna/child-process" "3.13.3" + "@octokit/plugin-enterprise-rest" "^2.1.1" + "@octokit/rest" "^16.16.0" git-url-parse "^11.1.2" npmlog "^4.1.2" -"@lerna/gitlab-client@3.15.0": - version "3.15.0" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" - integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== - dependencies: - node-fetch "^2.5.0" - npmlog "^4.1.2" - whatwg-url "^7.0.0" - "@lerna/global-options@3.13.0": version "3.13.0" resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== -"@lerna/has-npm-version@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.16.0.tgz#55764a4ce792f0c8553cf996a17f554b9e843288" - integrity sha512-TIY036dA9J8OyTrZq9J+it2DVKifL65k7hK8HhkUPpitJkw6jwbMObA/8D40LOGgWNPweJWqmlrTbRSwsR7DrQ== +"@lerna/has-npm-version@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.13.3.tgz#167e3f602a2fb58f84f93cf5df39705ca6432a2d" + integrity sha512-mQzoghRw4dBg0R9FFfHrj0TH0glvXyzdEZmYZ8Isvx5BSuEEwpsryoywuZSdppcvLu8o7NAdU5Tac8cJ/mT52w== dependencies: - "@lerna/child-process" "3.14.2" - semver "^6.2.0" + "@lerna/child-process" "3.13.3" + semver "^5.5.0" -"@lerna/import@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.16.0.tgz#b57cb453f4acfc60f6541fcbba10674055cb179d" - integrity sha512-trsOmGHzw0rL/f8BLNvd+9PjoTkXq2Dt4/V2UCha254hMQaYutbxcYu8iKPxz9x86jSPlH7FpbTkkHXDsoY7Yg== +"@lerna/import@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.14.0.tgz#de5727dc18d21c50af14b481e47b424c5bbe107c" + integrity sha512-j8z/m85FX1QYPgl5TzMNupdxsQF/NFZSmdCR19HQzqiVKC8ULGzF30WJEk66+KeZ94wYMSakINtYD+41s34pNQ== dependencies: - "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.14.0" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" - fs-extra "^8.1.0" + fs-extra "^7.0.0" p-map-series "^1.0.0" -"@lerna/init@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.16.0.tgz#31e0d66bbededee603338b487a42674a072b7a7d" - integrity sha512-Ybol/x5xMtBgokx4j7/Y3u0ZmNh0NiSWzBFVaOs2NOJKvuqrWimF67DKVz7yYtTYEjtaMdug64ohFF4jcT/iag== - dependencies: - "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" - fs-extra "^8.1.0" - p-map "^2.1.0" - write-json-file "^3.2.0" - -"@lerna/link@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.16.2.tgz#6c3a5658f6448a64dddca93d9348ac756776f6f6" - integrity sha512-eCPg5Lo8HT525fIivNoYF3vWghO3UgEVFdbsiPmhzwI7IQyZro5HWYzLtywSAdEog5XZpd2Bbn0CsoHWBB3gww== - dependencies: - "@lerna/command" "3.16.0" - "@lerna/package-graph" "3.16.0" - "@lerna/symlink-dependencies" "3.16.2" - p-map "^2.1.0" - slash "^2.0.0" +"@lerna/init@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.14.0.tgz#f5b92f171f9ed4168bd3d9305fffe6a46460a1d2" + integrity sha512-X3PQkQZds5ozA1xiarmVzAK6LPLNK3bBu24Api0w2KJXO7Ccs9ob/VcGdevZuzqdJo1Xg2H6oBhEqIClU9Uqqw== + dependencies: + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.14.0" + fs-extra "^7.0.0" + p-map "^1.2.0" + write-json-file "^2.3.0" + +"@lerna/link@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.14.0.tgz#817243559b3d460a08bd65582e7632b1dbc6df69" + integrity sha512-xlwQhWTVOZrgAuoONY3/OIBWehDfZXmf5qFhnOy7lIxByRhEX5Vwx0ApaGxHTv3Flv7T+oI4s8UZVq5F6dT8Aw== + dependencies: + "@lerna/command" "3.14.0" + "@lerna/package-graph" "3.14.0" + "@lerna/symlink-dependencies" "3.14.0" + p-map "^1.2.0" + slash "^1.0.0" -"@lerna/list@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.16.0.tgz#883c00b2baf1e03c93e54391372f67a01b773c2f" - integrity sha512-TkvstoPsgKqqQ0KfRumpsdMXfRSEhdXqOLq519XyI5IRWYxhoqXqfi8gG37UoBPhBNoe64japn5OjphF3rOmQA== +"@lerna/list@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.14.0.tgz#cfe826937c63a3652003639eb7fd36bf4b0a3660" + integrity sha512-Gp+9gaIkBfXBwc9Ng0Y74IEfAqpQpLiXwOP4IOpdINxOeDpllhMaYP6SzLaMvrfSyHRayM7Cq5/PRnHkXQ5uuQ== dependencies: - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/listable" "3.16.0" + "@lerna/command" "3.14.0" + "@lerna/filter-options" "3.14.0" + "@lerna/listable" "3.14.0" "@lerna/output" "3.13.0" -"@lerna/listable@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.16.0.tgz#e6dc47a2d5a6295222663486f50e5cffc580f043" - integrity sha512-mtdAT2EEECqrJSDm/aXlOUFr1MRE4p6hppzY//Klp05CogQy6uGaKk+iKG5yyCLaOXFFZvG4HfO11CmoGSDWzw== +"@lerna/listable@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.14.0.tgz#08f4c78e0466568e8e8a57d4ad09537f2bb7bbb9" + integrity sha512-ZK44Mo8xf/N97eQZ236SPSq0ek6+gk4HqHIx05foEMZVV1iIDH4a/nblLsJNjGQVsIdMYFPaqNJ0z+ZQfiJazQ== dependencies: - "@lerna/query-graph" "3.16.0" + "@lerna/query-graph" "3.14.0" chalk "^2.3.1" columnify "^1.5.4" -"@lerna/log-packed@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" - integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== +"@lerna/log-packed@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.13.0.tgz#497b5f692a8d0e3f669125da97b0dadfd9e480f3" + integrity sha512-Rmjrcz+6aM6AEcEVWmurbo8+AnHOvYtDpoeMMJh9IZ9SmZr2ClXzmD7wSvjTQc8BwOaiWjjC/ukcT0UYA2m7wg== dependencies: - byte-size "^5.0.1" + byte-size "^4.0.3" columnify "^1.5.4" has-unicode "^2.0.1" npmlog "^4.1.2" -"@lerna/npm-conf@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" - integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== +"@lerna/npm-conf@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.13.0.tgz#6b434ed75ff757e8c14381b9bbfe5d5ddec134a7" + integrity sha512-Jg2kANsGnhg+fbPEzE0X9nX5oviEAvWj0nYyOkcE+cgWuT7W0zpnPXC4hA4C5IPQGhwhhh0IxhWNNHtjTuw53g== dependencies: config-chain "^1.1.11" - pify "^4.0.1" + pify "^3.0.0" -"@lerna/npm-dist-tag@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.16.0.tgz#b2184cee5e1f291277396854820e1117a544b7ee" - integrity sha512-MQrBkqJJB9+eNphuj9w90QPMOs4NQXMuSRk9NqzeFunOmdDopPCV0Q7IThSxEuWnhJ2n3B7G0vWUP7tNMPdqIQ== +"@lerna/npm-dist-tag@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.14.0.tgz#69b1f99ce9d777782afe646522cb14293d986eb5" + integrity sha512-DEyYEdufTGIC6E4RTJUsYPgqlz1Bs/XPeEQ5fd+ojWnICevj7dRrr2DfHucPiUCADlm2jbAraAQc3QPU0dXRhw== dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - "@lerna/otplease" "3.16.0" + "@lerna/otplease" "3.14.0" figgy-pudding "^3.5.1" npm-package-arg "^6.1.0" + npm-registry-fetch "^3.9.0" npmlog "^4.1.2" -"@lerna/npm-install@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.16.0.tgz#8ec76a7a13b183bde438fd46296bf7a0d6f86017" - integrity sha512-APUOIilZCzDzce92uLEwzt1r7AEMKT/hWA1ThGJL+PO9Rn8A95Km3o2XZAYG4W0hR+P4O2nSVuKbsjQtz8CjFQ== +"@lerna/npm-install@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.13.3.tgz#9b09852732e51c16d2e060ff2fd8bfbbb49cf7ba" + integrity sha512-7Jig9MLpwAfcsdQ5UeanAjndChUjiTjTp50zJ+UZz4CbIBIDhoBehvNMTCL2G6pOEC7sGEg6sAqJINAqred6Tg== dependencies: - "@lerna/child-process" "3.14.2" + "@lerna/child-process" "3.13.3" "@lerna/get-npm-exec-opts" "3.13.0" - fs-extra "^8.1.0" + fs-extra "^7.0.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" signal-exit "^3.0.2" write-pkg "^3.1.0" -"@lerna/npm-publish@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.16.2.tgz#a850b54739446c4aa766a0ceabfa9283bb0be676" - integrity sha512-tGMb9vfTxP57vUV5svkBQxd5Tzc+imZbu9ZYf8Mtwe0+HYfDjNiiHLIQw7G95w4YRdc5KsCE8sQ0uSj+f2soIg== +"@lerna/npm-publish@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.14.0.tgz#e3fc5613a2dd08cdd3323347ba87fad5dc5f11fb" + integrity sha512-ShG0qEnGkWxtjQvIRATgm/CzeoVaSyyoNRag5t8gDSR/r2u9ux72oROKQUEaE8OwcTS4rL2cyBECts8XMNmyYw== dependencies: - "@evocateur/libnpmpublish" "^1.2.2" - "@lerna/otplease" "3.16.0" - "@lerna/run-lifecycle" "3.16.2" + "@lerna/otplease" "3.14.0" + "@lerna/run-lifecycle" "3.14.0" figgy-pudding "^3.5.1" - fs-extra "^8.1.0" + fs-extra "^7.0.0" + libnpmpublish "^1.1.1" npm-package-arg "^6.1.0" npmlog "^4.1.2" - pify "^4.0.1" + pify "^3.0.0" read-package-json "^2.0.13" -"@lerna/npm-run-script@3.14.2": - version "3.14.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.14.2.tgz#8c518ea9d241a641273e77aad6f6fddc16779c3f" - integrity sha512-LbVFv+nvAoRTYLMrJlJ8RiakHXrLslL7Jp/m1R18vYrB8LYWA3ey+nz5Tel2OELzmjUiemAKZsD9h6i+Re5egg== +"@lerna/npm-run-script@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.13.3.tgz#9bb6389ed70cd506905d6b05b6eab336b4266caf" + integrity sha512-qR4o9BFt5hI8Od5/DqLalOJydnKpiQFEeN0h9xZi7MwzuX1Ukwh3X22vqsX4YRbipIelSFtrDzleNVUm5jj0ow== dependencies: - "@lerna/child-process" "3.14.2" + "@lerna/child-process" "3.13.3" "@lerna/get-npm-exec-opts" "3.13.0" npmlog "^4.1.2" -"@lerna/otplease@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.16.0.tgz#de66aec4f3e835a465d7bea84b58a4ab6590a0fa" - integrity sha512-uqZ15wYOHC+/V0WnD2iTLXARjvx3vNrpiIeyIvVlDB7rWse9mL4egex/QSgZ+lDx1OID7l2kgvcUD9cFpbqB7Q== +"@lerna/otplease@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.14.0.tgz#b539fd3e7a08452fc0db3b10010ca3cf0e4a73e7" + integrity sha512-rYAWzaYZ81bwnrmTkYWGgcc13bl/6DlG7pjWQWNGAJNLzO5zzj0xmXN5sMFJnNvDpSiS/ZS1sIuPvb4xnwLUkg== dependencies: "@lerna/prompt" "3.13.0" figgy-pudding "^3.5.1" @@ -1251,64 +1147,64 @@ dependencies: npmlog "^4.1.2" -"@lerna/pack-directory@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" - integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== +"@lerna/pack-directory@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.14.0.tgz#229446c2e3f307a7932f2f779d7fb8b8ff7d93b0" + integrity sha512-E9PmC1oWYjYN8Z0Oeoj7X98NruMg/pcdDiRxnwJ5awnB0d/kyfoquHXCYwCQQFCnWUfto7m5lM4CSostcolEVQ== dependencies: - "@lerna/get-packed" "3.16.0" - "@lerna/package" "3.16.0" - "@lerna/run-lifecycle" "3.16.2" + "@lerna/get-packed" "3.13.0" + "@lerna/package" "3.13.0" + "@lerna/run-lifecycle" "3.14.0" figgy-pudding "^3.5.1" - npm-packlist "^1.4.4" + npm-packlist "^1.4.1" npmlog "^4.1.2" - tar "^4.4.10" + tar "^4.4.8" temp-write "^3.4.0" -"@lerna/package-graph@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.16.0.tgz#909c90fb41e02f2c19387342d2a5eefc36d56836" - integrity sha512-A2mum/gNbv7zCtAwJqoxzqv89As73OQNK2MgSX1SHWya46qoxO9a9Z2c5lOFQ8UFN5ZxqWMfFYXRCz7qzwmFXw== +"@lerna/package-graph@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.14.0.tgz#4ccdf446dccedfbbeb4efff3eb720cb6fcb109fc" + integrity sha512-dNpA/64STD5YXhaSlg4gT6Z474WPJVCHoX1ibsVIFu0fVgH609Y69bsdmbvTRdI7r6Dcu4ZfGxdR636RTrH+Eg== dependencies: - "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prerelease-id-from-version" "3.14.0" "@lerna/validation-error" "3.13.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" - semver "^6.2.0" + semver "^5.5.0" -"@lerna/package@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" - integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== +"@lerna/package@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.13.0.tgz#4baeebc49a57fc9b31062cc59f5ee38384429fc8" + integrity sha512-kSKO0RJQy093BufCQnkhf1jB4kZnBvL7kK5Ewolhk5gwejN+Jofjd8DGRVUDUJfQ0CkW1o6GbUeZvs8w8VIZDg== dependencies: - load-json-file "^5.3.0" + load-json-file "^4.0.0" npm-package-arg "^6.1.0" write-pkg "^3.1.0" -"@lerna/prerelease-id-from-version@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" - integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== +"@lerna/prerelease-id-from-version@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.14.0.tgz#d5da9c26ac4a0d0ecde09018f06e41ca4dd444c2" + integrity sha512-Ap3Z/dNhqQuSrKmK+JmzYvQYI2vowxHvUVxZJiDVilW8dyNnxkCsYFmkuZytk5sxVz4VeGLNPS2RSsU5eeSS+Q== dependencies: - semver "^6.2.0" + semver "^5.5.0" -"@lerna/project@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.16.0.tgz#2469a4e346e623fd922f38f5a12931dfb8f2a946" - integrity sha512-NrKcKK1EqXqhrGvslz6Q36+ZHuK3zlDhGdghRqnxDcHxMPT01NgLcmsnymmQ+gjMljuLRmvKYYCuHrknzX8VrA== +"@lerna/project@3.13.1": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.13.1.tgz#bce890f60187bd950bcf36c04b5260642e295e79" + integrity sha512-/GoCrpsCCTyb9sizk1+pMBrIYchtb+F1uCOn3cjn9yenyG/MfYEnlfrbV5k/UDud0Ei75YBLbmwCbigHkAKazQ== dependencies: - "@lerna/package" "3.16.0" + "@lerna/package" "3.13.0" "@lerna/validation-error" "3.13.0" cosmiconfig "^5.1.0" dedent "^0.7.0" dot-prop "^4.2.0" - glob-parent "^5.0.0" - globby "^9.2.0" - load-json-file "^5.3.0" + glob-parent "^3.1.0" + globby "^8.0.1" + load-json-file "^4.0.0" npmlog "^4.1.2" - p-map "^2.1.0" + p-map "^1.2.0" resolve-from "^4.0.0" - write-json-file "^3.2.0" + write-json-file "^2.3.0" "@lerna/prompt@3.13.0": version "3.13.0" @@ -1318,41 +1214,40 @@ inquirer "^6.2.0" npmlog "^4.1.2" -"@lerna/publish@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.16.4.tgz#4cd55d8be9943d9a68e316e930a90cda8590500e" - integrity sha512-XZY+gRuF7/v6PDQwl7lvZaGWs8CnX6WIPIu+OCcyFPSL/rdWegdN7HieKBHskgX798qRQc2GrveaY7bNoTKXAw== - dependencies: - "@evocateur/libnpmaccess" "^3.1.2" - "@evocateur/npm-registry-fetch" "^4.0.0" - "@evocateur/pacote" "^9.6.3" - "@lerna/check-working-tree" "3.14.2" - "@lerna/child-process" "3.14.2" - "@lerna/collect-updates" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/describe-ref" "3.14.2" - "@lerna/log-packed" "3.16.0" - "@lerna/npm-conf" "3.16.0" - "@lerna/npm-dist-tag" "3.16.0" - "@lerna/npm-publish" "3.16.2" - "@lerna/otplease" "3.16.0" +"@lerna/publish@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.14.1.tgz#c1f7ad8d152947bb88a1755b4305a5a431d3e610" + integrity sha512-p+By/P84XJkndBzrmcnVLMcFpGAE+sQZCQK4e3aKQrEMLDrEwXkWt/XJxzeQskPxInFA/7Icj686LOADO7p0qg== + dependencies: + "@lerna/check-working-tree" "3.14.1" + "@lerna/child-process" "3.13.3" + "@lerna/collect-updates" "3.14.0" + "@lerna/command" "3.14.0" + "@lerna/describe-ref" "3.13.3" + "@lerna/log-packed" "3.13.0" + "@lerna/npm-conf" "3.13.0" + "@lerna/npm-dist-tag" "3.14.0" + "@lerna/npm-publish" "3.14.0" "@lerna/output" "3.13.0" - "@lerna/pack-directory" "3.16.4" - "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/pack-directory" "3.14.0" + "@lerna/prerelease-id-from-version" "3.14.0" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.16.0" + "@lerna/run-lifecycle" "3.14.0" + "@lerna/run-topologically" "3.14.0" "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.16.4" + "@lerna/version" "3.14.1" figgy-pudding "^3.5.1" - fs-extra "^8.1.0" + fs-extra "^7.0.0" + libnpmaccess "^3.0.1" npm-package-arg "^6.1.0" + npm-registry-fetch "^3.9.0" npmlog "^4.1.2" p-finally "^1.0.0" - p-map "^2.1.0" + p-map "^1.2.0" p-pipe "^1.2.0" - semver "^6.2.0" + pacote "^9.5.0" + semver "^5.5.0" "@lerna/pulse-till-done@3.13.0": version "3.13.0" @@ -1361,95 +1256,95 @@ dependencies: npmlog "^4.1.2" -"@lerna/query-graph@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.16.0.tgz#e6a46ebcd9d5b03f018a06eca2b471735353953c" - integrity sha512-p0RO+xmHDO95ChJdWkcy9TNLysLkoDARXeRHzY5U54VCwl3Ot/2q8fMCVlA5UeGXDutEyyByl3URqEpcQCWI7Q== +"@lerna/query-graph@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.14.0.tgz#2abb36f445bd924d0f85ac7aec1445e9ef1e2c6c" + integrity sha512-6YTh3vDMW2hUxHdKeRvx4bosc9lZClKaN+DzC1XKTkwDbWrsjmEzLcemKL6QnyyeuryN2f/eto7P9iSe3z3pQQ== dependencies: - "@lerna/package-graph" "3.16.0" + "@lerna/package-graph" "3.14.0" figgy-pudding "^3.5.1" -"@lerna/resolve-symlink@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" - integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== +"@lerna/resolve-symlink@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.13.0.tgz#3e6809ef53b63fe914814bfa071cd68012e22fbb" + integrity sha512-Lc0USSFxwDxUs5JvIisS8JegjA6SHSAWJCMvi2osZx6wVRkEDlWG2B1JAfXUzCMNfHoZX0/XX9iYZ+4JIpjAtg== dependencies: - fs-extra "^8.1.0" + fs-extra "^7.0.0" npmlog "^4.1.2" read-cmd-shim "^1.0.1" -"@lerna/rimraf-dir@3.14.2": - version "3.14.2" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.14.2.tgz#103a49882abd85d42285d05cc76869b89f21ffd2" - integrity sha512-eFNkZsy44Bu9v1Hrj5Zk6omzg8O9h/7W6QYK1TTUHeyrjTEwytaNQlqF0lrTLmEvq55sviV42NC/8P3M2cvq8Q== +"@lerna/rimraf-dir@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.13.3.tgz#3a8e71317fde853893ef0262bc9bba6a180b7227" + integrity sha512-d0T1Hxwu3gpYVv73ytSL+/Oy8JitsmvOYUR5ouRSABsmqS7ZZCh5t6FgVDDGVXeuhbw82+vuny1Og6Q0k4ilqw== dependencies: - "@lerna/child-process" "3.14.2" + "@lerna/child-process" "3.13.3" npmlog "^4.1.2" path-exists "^3.0.0" rimraf "^2.6.2" -"@lerna/run-lifecycle@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" - integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== +"@lerna/run-lifecycle@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.14.0.tgz#0499eca0e7f393faf4e24e6c8737302a9059c22b" + integrity sha512-GUM3L9MzGRSW0WQ8wbLW1+SYStU1OFjW0GBzShhBnFrO4nGRrU7VchsLpcLu0hk2uCzyhsrDKzifEdOdUyMoEQ== dependencies: - "@lerna/npm-conf" "3.16.0" + "@lerna/npm-conf" "3.13.0" figgy-pudding "^3.5.1" - npm-lifecycle "^3.1.2" + npm-lifecycle "^2.1.1" npmlog "^4.1.2" -"@lerna/run-parallel-batches@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.16.0.tgz#5ace7911a2dd31dfd1e53c61356034e27df0e1fb" - integrity sha512-2J/Nyv+MvogmQEfC7VcS21ifk7w0HVvzo2yOZRPvkCzGRu/rducxtB4RTcr58XCZ8h/Bt1aqQYKExu3c/3GXwg== +"@lerna/run-parallel-batches@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.13.0.tgz#0276bb4e7cd0995297db82d134ca2bd08d63e311" + integrity sha512-bICFBR+cYVF1FFW+Tlm0EhWDioTUTM6dOiVziDEGE1UZha1dFkMYqzqdSf4bQzfLS31UW/KBd/2z8jy2OIjEjg== dependencies: - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" -"@lerna/run-topologically@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.16.0.tgz#39e29cfc628bbc8e736d8e0d0e984997ac01bbf5" - integrity sha512-4Hlpv4zDtKWa5Z0tPkeu0sK+bxZEKgkNESMGmWrUCNfj7xwvAJurcraK8+a2Y0TFYwf0qjSLY/MzX+ZbJA3Cgw== +"@lerna/run-topologically@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.14.0.tgz#2a560cb657f0ef1565c680b6001b4b01b872dc07" + integrity sha512-y+KBpC1YExFzGynovt9MY4O/bc3RrJaKeuXieiPfKGKxrdtmZe/r33oj/xePTXZq65jnw3SaU3H8S5CrrdkwDg== dependencies: - "@lerna/query-graph" "3.16.0" + "@lerna/query-graph" "3.14.0" figgy-pudding "^3.5.1" p-queue "^4.0.0" -"@lerna/run@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.16.0.tgz#1ea568c6f303e47fa00b3403a457836d40738fd2" - integrity sha512-woTeLlB1OAAz4zzjdI6RyIxSGuxiUPHJZm89E1pDEPoWwtQV6HMdMgrsQd9ATsJ5Ez280HH4bF/LStAlqW8Ufg== +"@lerna/run@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.14.0.tgz#1a5d3330149fbf5092012707b775d5f57d9d0057" + integrity sha512-kGGFGLYPKozAN07CSJ7kOyLY6W3oLCQcxCathg1isSkBqQH29tWUg8qNduOlhIFLmnq/nf1JEJxxoXnF6IRLjQ== dependencies: - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/npm-run-script" "3.14.2" + "@lerna/command" "3.14.0" + "@lerna/filter-options" "3.14.0" + "@lerna/npm-run-script" "3.13.3" "@lerna/output" "3.13.0" - "@lerna/run-topologically" "3.16.0" + "@lerna/run-topologically" "3.14.0" "@lerna/timer" "3.13.0" "@lerna/validation-error" "3.13.0" - p-map "^2.1.0" - -"@lerna/symlink-binary@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.16.2.tgz#f98a3d9da9e56f1d302dc0d5c2efeb951483ee66" - integrity sha512-kz9XVoFOGSF83gg4gBqH+mG6uxfJfTp8Uy+Cam40CvMiuzfODrGkjuBEFoM/uO2QOAwZvbQDYOBpKUa9ZxHS1Q== - dependencies: - "@lerna/create-symlink" "3.16.2" - "@lerna/package" "3.16.0" - fs-extra "^8.1.0" - p-map "^2.1.0" - -"@lerna/symlink-dependencies@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.16.2.tgz#91d9909d35897aebd76a03644a00cd03c4128240" - integrity sha512-wnZqGJQ+Jvr1I3inxrkffrFZfmQI7Ta8gySw/UWCy95QtZWF/f5yk8zVIocCAsjzD0wgb3jJE3CFJ9W5iwWk1A== - dependencies: - "@lerna/create-symlink" "3.16.2" - "@lerna/resolve-symlink" "3.16.0" - "@lerna/symlink-binary" "3.16.2" - fs-extra "^8.1.0" + p-map "^1.2.0" + +"@lerna/symlink-binary@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.14.0.tgz#db1c3204b83d91c4b43386302ee76cea4d20bc3f" + integrity sha512-AHFb4NlazxYmC+7guoamM3laIRbMSeKERMooKHJ7moe0ayGPBWsCGOH+ZFKZ+eXSDek+FnxdzayR3wf8B3LkTg== + dependencies: + "@lerna/create-symlink" "3.14.0" + "@lerna/package" "3.13.0" + fs-extra "^7.0.0" + p-map "^1.2.0" + +"@lerna/symlink-dependencies@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.14.0.tgz#f17e5cd704a0f067636038dafeaf42b5d2f28802" + integrity sha512-kuSXxwAWiVZqFcXfUBKH4yLUH3lrnGyZmCYon7UnZitw3AK3LQY7HvV2LNNw/oatfjOAiKhPBxnYjYijKiV4oA== + dependencies: + "@lerna/create-symlink" "3.14.0" + "@lerna/resolve-symlink" "3.13.0" + "@lerna/symlink-binary" "3.14.0" + fs-extra "^7.0.0" p-finally "^1.0.0" - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" "@lerna/timer@3.13.0": @@ -1464,34 +1359,34 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.16.4.tgz#b5cc37f3ad98358d599c6196c30b6efc396d42bf" - integrity sha512-ikhbMeIn5ljCtWTlHDzO4YvTmpGTX1lWFFIZ79Vd1TNyOr+OUuKLo/+p06mCl2WEdZu0W2s5E9oxfAAQbyDxEg== - dependencies: - "@lerna/check-working-tree" "3.14.2" - "@lerna/child-process" "3.14.2" - "@lerna/collect-updates" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/conventional-commits" "3.16.4" - "@lerna/github-client" "3.16.0" - "@lerna/gitlab-client" "3.15.0" +"@lerna/version@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.14.1.tgz#df081fec70fcfdcd3c470648c49b035b44a373bf" + integrity sha512-H/jykoxVIt4oDEYkBgwDfO5dmZFl3G6vP1UEttRVP1FIkI+gCN+olby8S0Qd8XprDuR5OrLboiDWQs3p7nJhLw== + dependencies: + "@lerna/batch-packages" "3.14.0" + "@lerna/check-working-tree" "3.14.1" + "@lerna/child-process" "3.13.3" + "@lerna/collect-updates" "3.14.0" + "@lerna/command" "3.14.0" + "@lerna/conventional-commits" "3.14.0" + "@lerna/github-client" "3.13.3" "@lerna/output" "3.13.0" - "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prerelease-id-from-version" "3.14.0" "@lerna/prompt" "3.13.0" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.16.0" + "@lerna/run-lifecycle" "3.14.0" + "@lerna/run-topologically" "3.14.0" "@lerna/validation-error" "3.13.0" chalk "^2.3.1" dedent "^0.7.0" minimatch "^3.0.4" npmlog "^4.1.2" - p-map "^2.1.0" + p-map "^1.2.0" p-pipe "^1.2.0" p-reduce "^1.0.0" p-waterfall "^1.0.0" - semver "^6.2.0" - slash "^2.0.0" + semver "^5.5.0" + slash "^1.0.0" temp-write "^3.4.0" "@lerna/write-log-file@3.13.0": @@ -1516,32 +1411,32 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@octokit/endpoint@^5.1.0": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.3.2.tgz#2deda2d869cac9ba7f370287d55667be2a808d4b" - integrity sha512-gRjteEM9I6f4D8vtwU2iGUTn9RX/AJ0SVXiqBUEuYEWVGGAVjSXdT0oNmghH5lvQNWs8mwt6ZaultuG6yXivNw== + version "5.1.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.4.tgz#e6bb3ceda8923fdc9703ded78c9acc28eff88c06" + integrity sha512-DypS8gbbcc9rlOCDW0wV9a+B18+ylduj6PpxeE+qa3IK1h5b0eW4CKj5pxxXWOZUYhEKwgOnh3+Q+Y/hx/bOPw== dependencies: - deepmerge "4.0.0" + deepmerge "3.2.0" is-plain-object "^3.0.0" - universal-user-agent "^3.0.0" + universal-user-agent "^2.1.0" url-template "^2.0.8" -"@octokit/plugin-enterprise-rest@^3.6.1": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561" - integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA== +"@octokit/plugin-enterprise-rest@^2.1.1": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.2.2.tgz#c0e22067a043e19f96ff9c7832e2a3019f9be75c" + integrity sha512-CTZr64jZYhGWNTDGlSJ2mvIlFsm9OEO3LqWn9I/gmoHI4jRBp4kpHoFYNemG4oA75zUAcmbuWblb7jjP877YZw== "@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be" - integrity sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.2.tgz#e6dbc5be13be1041ef8eca9225520982add574cf" + integrity sha512-T9swMS/Vc4QlfWrvyeSyp/GjhXtYaBzCcibjGywV4k4D2qVrQKfEMPy8OxMDEj7zkIIdpHwqdpVbKCvnUPqkXw== dependencies: deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.0.2.tgz#59a920451f24811c016ddc507adcc41aafb2dca5" - integrity sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A== +"@octokit/request@^4.0.1": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.0.tgz#e85dc377113baf2fe24433af8feb20e8a32e21b0" + integrity sha512-RvpQAba4i+BNH0z8i0gPRc1ShlHidj4puQjI/Tno6s+Q3/Mzb0XRSHJiOhpeFrZ22V7Mwjq1E7QS27P5CgpWYA== dependencies: "@octokit/endpoint" "^5.1.0" "@octokit/request-error" "^1.0.1" @@ -1549,17 +1444,17 @@ is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^3.0.0" + universal-user-agent "^2.1.0" -"@octokit/rest@^16.28.4": - version "16.28.7" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.7.tgz#a2c2db5b318da84144beba82d19c1a9dbdb1a1fa" - integrity sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA== +"@octokit/rest@^16.16.0": + version "16.27.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.27.3.tgz#20ad5d0c7043364d1e1f72fa74f825c181771fc0" + integrity sha512-WWH/SHF4kus6FG+EAfX7/JYH70EjgFYa4AAd2Lf1hgmgzodhrsoxpXPSZliZ5BdJruZPMP7ZYaPoTrYCCKYzmQ== dependencies: - "@octokit/request" "^5.0.0" + "@octokit/request" "^4.0.1" "@octokit/request-error" "^1.0.2" atob-lite "^2.0.0" - before-after-hook "^2.0.0" + before-after-hook "^1.4.0" btoa-lite "^1.0.0" deprecation "^2.0.0" lodash.get "^4.4.2" @@ -1567,7 +1462,7 @@ lodash.uniq "^4.5.0" octokit-pagination-methods "^1.1.0" once "^1.4.0" - universal-user-agent "^3.0.0" + universal-user-agent "^2.0.0" url-template "^2.0.8" "@samverschueren/stream-to-observable@^0.3.0": @@ -1577,38 +1472,69 @@ dependencies: any-observable "^0.3.0" -"@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/classnames@^2.2.9": + version "2.2.9" + resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.9.tgz#d868b6febb02666330410fe7f58f3c4b8258be7b" + integrity sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A== -"@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== +"@types/jest-diff@*": + version "20.0.1" + resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89" + integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA== + +"@types/jest@^24.0.18": + version "24.0.18" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.18.tgz#9c7858d450c59e2164a8a9df0905fc5091944498" + integrity sha512-jcDDXdjTcrQzdN06+TSVsPPqxvsZA/5QkYfIZlq1JMw7FdP5AZylbOc+6B/cuDurctRe+MziUMtQ3xQdrbjqyQ== dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" + "@types/jest-diff" "*" -"@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/memoize-one@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@types/memoize-one/-/memoize-one-4.1.1.tgz#41dd138a4335b5041f7d8fc038f9d593d88b3369" + integrity sha512-+9djKUUn8hOyktLCfCy4hLaIPgDNovaU36fsnZe9trFHr6ddlbIn2q0SEsnkCkNR+pBWEU440Molz/+Mpyf+gQ== -"@types/node@*": - version "12.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44" - integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg== +"@types/prop-types@*": + version "15.7.1" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6" + integrity sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg== -"@zkochan/cmd-shim@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" - integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== +"@types/react-test-renderer@^16.9.0": + version "16.9.0" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.0.tgz#d60f530ecf4c906721511603cca711b4fa830d41" + integrity sha512-bN5EyjtuTY35xX7N5j0KP1vg5MpUXHpFTX6tGsqkNOthjNvet4VQOYRxFh+NT5cDSJrATmAFK9NLeYZ4mp/o0Q== dependencies: - is-windows "^1.0.0" - mkdirp-promise "^5.0.1" - mz "^2.5.0" + "@types/react" "*" + +"@types/react-virtualized-auto-sizer@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.0.tgz#fc32f30a8dab527b5816f3a757e1e1d040c8f272" + integrity sha512-NMErdIdSnm2j/7IqMteRiRvRulpjoELnXWUwdbucYCz84xG9PHcoOrr7QfXwB/ku7wd6egiKFrzt/+QK4Imeeg== + dependencies: + "@types/react" "*" + +"@types/react-window@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.1.tgz#6e1ceab2e6f2f78dbf1f774ee0e00f1bb0364bb3" + integrity sha512-V3k1O5cbfZIRa0VVbQ81Ekq/7w42CK1SuiB9U1oPMTxv270D9qUn7rHb3sZoqMkIJFfB1NZxaH7NRDlk+ToDsg== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "16.8.23" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.23.tgz#ec6be3ceed6353a20948169b6cb4c97b65b97ad2" + integrity sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + +"@types/react@^16.9.2": + version "16.9.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.2.tgz#6d1765431a1ad1877979013906731aae373de268" + integrity sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.5" @@ -1629,22 +1555,22 @@ abbrev@1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn-globals@^4.1.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" - integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" + integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" acorn-jsx@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" - integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== acorn@^5.5.3: version "5.7.3" @@ -1652,18 +1578,11 @@ acorn@^5.5.3: integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1, acorn@^6.0.7: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== - -agent-base@4, agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== -agent-base@~4.2.1: +agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== @@ -1677,10 +1596,10 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.5.5, ajv@^6.9.1: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -1729,11 +1648,6 @@ any-observable@^0.3.0: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1804,10 +1718,10 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-differ@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" - integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= array-equal@^1.0.0: version "1.0.0" @@ -1832,7 +1746,7 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" -array-union@^1.0.2: +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= @@ -1854,7 +1768,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -arrify@^1.0.1: +arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= @@ -1902,16 +1816,16 @@ async-foreach@^0.1.3: integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async@^2.1.4: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.2" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: - lodash "^4.17.14" + lodash "^4.17.11" asynckit@^0.4.0: version "0.4.0" @@ -2018,7 +1932,7 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^23.4.2, babel-jest@^23.6.0: +babel-jest@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== @@ -2033,13 +1947,6 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-istanbul@^4.1.6: version "4.1.6" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" @@ -2160,10 +2067,10 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== +before-after-hook@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" + integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg== binary-extensions@^1.0.0: version "1.13.1" @@ -2177,7 +2084,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@^3.5.1, bluebird@^3.5.3: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== @@ -2227,19 +2134,26 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -browserslist@^4.6.0, browserslist@^4.6.6: - version "4.6.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" - integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== +browserslist@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.1.tgz#ee5059b1aec18cbec9d055d6cb5e24ae50343a9b" + integrity sha512-1MC18ooMPRG2UuVFJTHFIAkk6mpByJfxCrnUyvSlu/hyQSFHMrlhM02SzNuCV+quTP4CKmqtOMAIjrifrpBJXQ== + dependencies: + caniuse-lite "^1.0.30000971" + electron-to-chromium "^1.3.137" + node-releases "^1.1.21" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== dependencies: - caniuse-lite "^1.0.30000984" - electron-to-chromium "^1.3.191" - node-releases "^1.1.25" + fast-json-stable-stringify "2.x" bser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" - integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk= dependencies: node-int64 "^0.4.0" @@ -2248,11 +2162,16 @@ btoa-lite@^1.0.0: resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= -buffer-from@^1.0.0: +buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -2263,28 +2182,27 @@ byline@^5.0.0: resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= -byte-size@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" - integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== +byte-size@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23" + integrity sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw== -cacache@^12.0.0, cacache@^12.0.3: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== +cacache@^11.0.1, cacache@^11.3.2: + version "11.3.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== dependencies: - bluebird "^3.5.5" + bluebird "^3.5.3" chownr "^1.1.1" figgy-pudding "^3.5.1" - glob "^7.1.4" + glob "^7.1.3" graceful-fs "^4.1.15" - infer-owner "^1.0.3" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" - rimraf "^2.6.3" + rimraf "^2.6.2" ssri "^6.0.1" unique-filename "^1.1.1" y18n "^4.0.0" @@ -2370,10 +2288,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000984: - version "1.0.30000989" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" - integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== +caniuse-lite@^1.0.30000971: + version "1.0.30000971" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000971.tgz#d1000e4546486a6977756547352bc96a4cfd2b13" + integrity sha512-TQFYFhRS0O5rdsmSbF1Wn+16latXYsQJat66f7S7lizXW1PVpWJeZw9wqqVLIjuxDRz7s7xRUj13QCfd8hKn6g== capture-exit@^1.2.0: version "1.2.0" @@ -2398,7 +2316,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2413,9 +2331,9 @@ chardet@^0.7.0: integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== chokidar@^2.0.4: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + version "2.1.6" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -2431,21 +2349,16 @@ chokidar@^2.0.4: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== -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== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2504,6 +2417,14 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +cmd-shim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + integrity sha1-b8vamUg6j9FdfTChlspp1oii79s= + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2549,7 +2470,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.14.1, commander@^2.8.1, commander@^2.9.0, commander@~2.20.0: +commander@^2.11.0, commander@^2.12.1, commander@^2.14.1, commander@^2.8.1, commander@^2.9.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== @@ -2601,9 +2522,9 @@ config-chain@^1.1.11: proto-list "~1.2.1" confusing-browser-globals@^1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.8.tgz#93ffec1f82a6e2bf2bc36769cc3a92fa20e502f3" - integrity sha512-lI7asCibVJ6Qd3FGU7mu4sfG4try4LX3+GVS+Gv8UlrEf2AeW57piecapnog2UHZSbcX/P/1UDWVaTsblowlZg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz#5ae852bd541a910e7ffb2dbb864a2d21a36ad29b" + integrity sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ== console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" @@ -2624,17 +2545,17 @@ conventional-changelog-angular@^5.0.3: q "^1.5.1" conventional-changelog-core@^3.1.6: - version "3.2.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" - integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + version "3.2.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.2.tgz#de41e6b4a71011a18bcee58e744f6f8f0e7c29c0" + integrity sha512-cssjAKajxaOX5LNAJLB+UOcoWjAIBvXtDMedv/58G+YEmAXMNfC16mmPl0JDOuVJVfIqM0nqQiZ8UCm8IXbE0g== dependencies: - conventional-changelog-writer "^4.0.6" - conventional-commits-parser "^3.0.3" + conventional-changelog-writer "^4.0.5" + conventional-commits-parser "^3.0.2" dateformat "^3.0.0" get-pkg-repo "^1.0.0" git-raw-commits "2.0.0" git-remote-origin-url "^2.0.0" - git-semver-tags "^2.0.3" + git-semver-tags "^2.0.2" lodash "^4.2.1" normalize-package-data "^2.3.5" q "^1.5.1" @@ -2643,19 +2564,19 @@ conventional-changelog-core@^3.1.6: through2 "^3.0.0" conventional-changelog-preset-loader@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz#571e2b3d7b53d65587bea9eedf6e37faa5db4fcc" - integrity sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz#65bb600547c56d5627d23135154bcd9a907668c4" + integrity sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA== -conventional-changelog-writer@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f" - integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw== +conventional-changelog-writer@^4.0.5: + version "4.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.6.tgz#24db578ac8e7c89a409ef9bba12cf3c095990148" + integrity sha512-ou/sbrplJMM6KQpR5rKFYNVQYesFjN7WpNGdudQSWNi6X+RgyFUcSv871YBYkrUYV9EX8ijMohYVzn9RUb+4ag== dependencies: compare-func "^1.3.1" conventional-commits-filter "^2.0.2" dateformat "^3.0.0" - handlebars "^4.1.2" + handlebars "^4.1.0" json-stringify-safe "^5.0.1" lodash "^4.2.1" meow "^4.0.0" @@ -2671,7 +2592,7 @@ conventional-commits-filter@^2.0.2: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.3: +conventional-commits-parser@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.3.tgz#c3f972fd4e056aa8b9b4f5f3d0e540da18bf396d" integrity sha512-KaA/2EeUkO4bKjinNfGUyqPTX/6w9JGshuQRik4r/wJz7rUw3+D3fDG6sZSEqJvKILzKXFQuFkpPLclcsAuZcg== @@ -2684,17 +2605,17 @@ conventional-commits-parser@^3.0.3: through2 "^3.0.0" trim-off-newlines "^1.0.0" -conventional-recommended-bump@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" - integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== +conventional-recommended-bump@^4.0.4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-4.1.1.tgz#37014fadeda267d0607e2fc81124da840a585127" + integrity sha512-JT2vKfSP9kR18RXXf55BRY1O3AHG8FPg5btP3l7LYfcWJsiXI6MCf30DepQ98E8Qhowvgv7a8iev0J1bEDkTFA== dependencies: concat-stream "^2.0.0" conventional-changelog-preset-loader "^2.1.1" conventional-commits-filter "^2.0.2" - conventional-commits-parser "^3.0.3" + conventional-commits-parser "^3.0.2" git-raw-commits "2.0.0" - git-semver-tags "^2.0.3" + git-semver-tags "^2.0.2" meow "^4.0.0" q "^1.5.1" @@ -2723,12 +2644,18 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" - integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== + version "3.1.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.3.tgz#0cc3ba4c7f62928c2837e1cffbe8dc78b4f1ae14" + integrity sha512-EP018pVhgwsKHz3YoN1hTq49aRe+h017Kjz0NQz3nXV0cCRMvH3fLQl+vEPGr4r4J5sk4sU3tUC7U1aqTCeJeA== dependencies: - browserslist "^4.6.6" - semver "^6.3.0" + browserslist "^4.6.0" + core-js-pure "3.1.3" + semver "^6.1.0" + +core-js-pure@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.3.tgz#4c90752d5b9471f641514f3728f51c1e0783d0b5" + integrity sha512-k3JWTrcQBKqjkjI0bkfXS0lbpWPxYuHWfMMjC1VDmzU4Q58IwSbuXSo99YO/hUHlw/EB4AlfA2PVxOGkrIq6dA== core-js@^2.4.0, core-js@^2.5.0: version "2.6.9" @@ -2787,17 +2714,22 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: which "^1.2.9" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + version "0.3.6" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" + integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + version "1.2.2" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" + integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow== dependencies: cssom "0.3.x" +csstype@^2.2.0: + version "2.6.6" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41" + integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -2914,10 +2846,10 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" - integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== +deepmerge@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" + integrity sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow== default-require-extensions@^1.0.0: version "1.0.0" @@ -2933,7 +2865,7 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -2973,9 +2905,9 @@ delegates@^1.0.0: integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + version "2.0.0" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.0.0.tgz#dd0427cd920c78bc575ec39dab2f22e7c304fb9d" + integrity sha512-lbQN037mB3VfA2JFuguM5GCJ+zPinMeCrFe+AfSZ6eqrnJA/Fs+EYMnd6Nb2mn9lf2jO9xwEd9o9lic+D4vkcw== detect-indent@^4.0.0: version "4.0.0" @@ -3012,11 +2944,12 @@ diff@^3.2.0: resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== +dir-glob@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== dependencies: + arrify "^1.0.1" path-type "^3.0.0" doctrine@1.5.0: @@ -3085,10 +3018,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.191: - version "1.3.241" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz#859dc49ab7f90773ed698767372d384190f60cb1" - integrity sha512-Gb9E6nWZlbgjDDNe5cAvMJixtn79krNJ70EDpq/M10lkGo7PGtBUe7Y0CYVHsBScRwi6ybCS+YetXAN9ysAHDg== +electron-to-chromium@^1.3.137: + version "1.3.143" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.143.tgz#8b2a631ab75157aa53d0c2933275643b99ef580b" + integrity sha512-J9jOpxIljQZlV6GIP2fwAWq0T69syawU0sH3EW3O2Bgxquiy+veeIT5mBDRz+i3oHUSL1tvVgRKH3/4QiQh9Pg== elegant-spinner@^1.0.1: version "1.0.1" @@ -3114,11 +3047,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -env-paths@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" - integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= - err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" @@ -3131,7 +3059,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.11.0, es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -3153,9 +3081,9 @@ es-to-primitive@^1.2.0: is-symbol "^1.0.2" es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + version "4.2.6" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== es6-promisify@^5.0.0: version "5.0.0" @@ -3170,9 +3098,9 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + version "1.11.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" + integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -3204,24 +3132,24 @@ eslint-import-resolver-node@^0.3.2: resolve "^1.5.0" eslint-module-utils@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" - integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== dependencies: debug "^2.6.8" pkg-dir "^2.0.0" eslint-plugin-flowtype@^3.4.2: - version "3.13.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" - integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== + version "3.9.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.9.1.tgz#6491d930e1f96d53c510e0393e635fddd4a4cac5" + integrity sha512-ZlV6SbIXqz2ysvG0F64ZH07dqzLrwMdM1s0UNfoxdXjr4kMKuPPoLViwK+gFC952QIf341AmP4BKtKOhcB96Ug== dependencies: - lodash "^4.17.15" + lodash "^4.17.11" eslint-plugin-import@^2.14.0: - version "2.18.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" - integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== + version "2.17.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.3.tgz#00548b4434c18faebaba04b24ae6198f280de189" + integrity sha512-qeVf/UwXFJbeyLbxuY8RgqDyEKCkqV7YC+E5S5uOjAp4tOc8zj01JP3ucoBM8JcEqd1qRasJSg6LLlisirfy0Q== dependencies: array-includes "^3.0.3" contains-path "^0.1.0" @@ -3230,17 +3158,16 @@ eslint-plugin-import@^2.14.0: eslint-import-resolver-node "^0.3.2" eslint-module-utils "^2.4.0" has "^1.0.3" + lodash "^4.17.11" minimatch "^3.0.4" - object.values "^1.1.0" read-pkg-up "^2.0.0" resolve "^1.11.0" eslint-plugin-jsx-a11y@^6.1.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" - integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== + version "6.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" + integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== dependencies: - "@babel/runtime" "^7.4.5" aria-query "^3.0.0" array-includes "^3.0.3" ast-types-flow "^0.0.7" @@ -3248,7 +3175,7 @@ eslint-plugin-jsx-a11y@^6.1.1: damerau-levenshtein "^1.0.4" emoji-regex "^7.0.2" has "^1.0.3" - jsx-ast-utils "^2.2.1" + jsx-ast-utils "^2.0.1" eslint-plugin-prettier@^2.6.2: version "2.7.0" @@ -3259,17 +3186,15 @@ eslint-plugin-prettier@^2.6.2: jest-docblock "^21.0.0" eslint-plugin-react@^7.11.1: - version "7.14.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" - integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== + version "7.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.13.0.tgz#bc13fd7101de67996ea51b33873cd9dc2b7e5758" + integrity sha512-uA5LrHylu8lW/eAH3bEQe9YdzpPaFd9yAJTwTi/i/BKTD7j6aQMKVAdGM/ML72zD6womuSK7EiGtMKuK06lWjQ== dependencies: array-includes "^3.0.3" doctrine "^2.1.0" has "^1.0.3" jsx-ast-utils "^2.1.0" - object.entries "^1.1.0" object.fromentries "^2.0.0" - object.values "^1.1.0" prop-types "^15.7.2" resolve "^1.10.1" @@ -3290,16 +3215,14 @@ eslint-scope@^4.0.3: estraverse "^4.1.1" eslint-utils@^1.3.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" - integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== - dependencies: - eslint-visitor-keys "^1.0.0" + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== eslint-visitor-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== eslint@^5.6.0: version "5.16.0" @@ -3377,14 +3300,14 @@ esrecurse@^4.1.0: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= esutils@^2.0.0, esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= eventemitter3@^3.1.0: version "3.1.2" @@ -3502,9 +3425,9 @@ extend@~3.0.2: integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -3551,7 +3474,7 @@ fast-diff@^1.1.1: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^2.2.6: +fast-glob@^2.0.2: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== @@ -3563,7 +3486,7 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= @@ -3678,9 +3601,9 @@ flat-cache@^2.0.1: write "1.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== flush-write-stream@^1.0.0: version "1.1.1" @@ -3731,12 +3654,12 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: - graceful-fs "^4.2.0" + graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" @@ -3842,10 +3765,10 @@ get-pkg-repo@^1.0.0: parse-github-repo-url "^1.3.0" through2 "^2.0.0" -get-port@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" - integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= get-stdin@^4.0.1: version "4.0.1" @@ -3900,13 +3823,13 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" - integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== +git-semver-tags@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.2.tgz#f506ec07caade191ac0c8d5a21bdb8131b4934e3" + integrity sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w== dependencies: meow "^4.0.0" - semver "^6.0.0" + semver "^5.5.0" git-up@^4.0.0: version "4.0.1" @@ -3953,19 +3876,12 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== - dependencies: - is-glob "^4.0.1" - glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -3987,19 +3903,18 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== +globby@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" + array-union "^1.0.1" + dir-glob "2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" globule@^1.0.0: version "1.2.1" @@ -4010,17 +3925,17 @@ globule@^1.0.0: lodash "~4.17.10" minimatch "~3.0.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -handlebars@^4.0.3, handlebars@^4.1.2: +handlebars@^4.0.3, handlebars@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== @@ -4117,10 +4032,10 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== +hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -4152,11 +4067,11 @@ http-signature@~1.2.0: sshpk "^1.7.0" https-proxy-agent@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" - integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== dependencies: - agent-base "^4.3.0" + agent-base "^4.1.0" debug "^3.1.0" humanize-ms@^1.2.1: @@ -4194,7 +4109,12 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^4.0.3, ignore@^4.0.6: +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== @@ -4208,9 +4128,9 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" - integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -4223,14 +4143,6 @@ import-local@^1.0.0: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4253,11 +4165,6 @@ indent-string@^3.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -4267,9 +4174,9 @@ inflight@^1.0.4: wrappy "1" inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.5" @@ -4291,9 +4198,9 @@ init-package-json@^1.10.3: validate-npm-package-name "^3.0.0" inquirer@^6.2.0, inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -4301,7 +4208,7 @@ inquirer@^6.2.0, inquirer@^6.2.2: cli-width "^2.0.0" external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.12" + lodash "^4.17.11" mute-stream "0.0.7" run-async "^2.2.0" rxjs "^6.4.0" @@ -4374,13 +4281,6 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -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-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -4495,7 +4395,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -4538,7 +4438,7 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -5041,7 +4941,7 @@ jest-worker@^23.2.0: dependencies: merge-stream "^1.0.1" -jest@^23.5.0: +jest@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== @@ -5154,18 +5054,18 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^2.1.0: +json5@2.x, json5@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== dependencies: minimist "^1.2.0" +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -5188,13 +5088,12 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.1.0, jsx-ast-utils@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" - integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== +jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + integrity sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA== dependencies: array-includes "^3.0.3" - object.assign "^4.1.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -5245,26 +5144,26 @@ left-pad@^1.3.0: integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== lerna@^3.2.1: - version "3.16.4" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.16.4.tgz#158cb4f478b680f46f871d5891f531f3a2cb31ec" - integrity sha512-0HfwXIkqe72lBLZcNO9NMRfylh5Ng1l8tETgYQ260ZdHRbPuaLKE3Wqnd2YYRRkWfwPyEyZO8mZweBR+slVe1A== - dependencies: - "@lerna/add" "3.16.2" - "@lerna/bootstrap" "3.16.2" - "@lerna/changed" "3.16.4" - "@lerna/clean" "3.16.0" + version "3.14.1" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.14.1.tgz#6bce5d2d4958e853f51387f8f41a8f2d9aa4a8ea" + integrity sha512-lQxmGeEECjOMI3pRh2+I6jazoEWhEfvZNIs7XaX71op33AVwyjlY/nQ1GJGrPhxYBuQnlPgH0vH/nC/lcLaVkw== + dependencies: + "@lerna/add" "3.14.0" + "@lerna/bootstrap" "3.14.0" + "@lerna/changed" "3.14.1" + "@lerna/clean" "3.14.0" "@lerna/cli" "3.13.0" - "@lerna/create" "3.16.0" - "@lerna/diff" "3.16.0" - "@lerna/exec" "3.16.0" - "@lerna/import" "3.16.0" - "@lerna/init" "3.16.0" - "@lerna/link" "3.16.2" - "@lerna/list" "3.16.0" - "@lerna/publish" "3.16.4" - "@lerna/run" "3.16.0" - "@lerna/version" "3.16.4" - import-local "^2.0.0" + "@lerna/create" "3.14.0" + "@lerna/diff" "3.14.0" + "@lerna/exec" "3.14.0" + "@lerna/import" "3.14.0" + "@lerna/init" "3.14.0" + "@lerna/link" "3.14.0" + "@lerna/list" "3.14.0" + "@lerna/publish" "3.14.1" + "@lerna/run" "3.14.0" + "@lerna/version" "3.14.1" + import-local "^1.0.0" npmlog "^4.1.2" leven@^2.1.0: @@ -5280,6 +5179,31 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libnpmaccess@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" + integrity sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA== + dependencies: + aproba "^2.0.0" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^3.8.0" + +libnpmpublish@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.1.tgz#ff0c6bb0b4ad2bda2ad1f5fba6760a4af37125f0" + integrity sha512-nefbvJd/wY38zdt+b9SHL6171vqBrMtZ56Gsgfd0duEKb/pB8rDT4/ObUQLrHz1tOfht1flt2zM+UGaemzAG5g== + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^3.8.0" + semver "^5.5.1" + ssri "^6.0.1" + lint-staged@^7.2.2: version "7.3.0" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.3.0.tgz#90ff33e5ca61ed3dbac35b6f6502dbefdc0db58d" @@ -5383,17 +5307,6 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -load-json-file@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== - dependencies: - graceful-fs "^4.1.15" - parse-json "^4.0.0" - pify "^4.0.1" - strip-bom "^3.0.0" - type-fest "^0.3.0" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -5410,7 +5323,7 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash._reinterpolate@^3.0.0: +lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= @@ -5440,30 +5353,30 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.0.2, lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== +lodash.template@^4.0.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A= dependencies: - lodash._reinterpolate "^3.0.0" + lodash._reinterpolate "~3.0.0" lodash.templatesettings "^4.0.0" lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY= dependencies: - lodash._reinterpolate "^3.0.0" + lodash._reinterpolate "~3.0.0" lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10: + 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" @@ -5503,7 +5416,7 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lru-cache@^4.0.1: +lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -5519,9 +5432,9 @@ lru-cache@^5.1.1: yallist "^3.0.2" macos-release@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" - integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" + integrity sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA== make-dir@^1.0.0: version "1.3.0" @@ -5530,25 +5443,22 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" +make-error@1.x: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== -make-fetch-happen@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz#a8e3fe41d3415dd656fe7b8e8172e1fb4458b38d" - integrity sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA== +make-fetch-happen@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" + integrity sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ== dependencies: agentkeepalive "^3.4.1" - cacache "^12.0.0" + cacache "^11.0.1" http-cache-semantics "^3.8.1" http-proxy-agent "^2.1.0" https-proxy-agent "^2.2.1" - lru-cache "^5.1.1" + lru-cache "^4.1.2" mississippi "^3.0.0" node-fetch-npm "^2.0.2" promise-retry "^1.1.1" @@ -5613,9 +5523,9 @@ mem@^4.0.0: p-is-promise "^2.0.0" "memoize-one@>=3.1.1 <6", memoize-one@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" - integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== + version "5.0.4" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.4.tgz#005928aced5c43d890a4dfab18ca908b0ec92cbc" + integrity sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA== meow@^3.3.0, meow@^3.7.0: version "3.7.0" @@ -5656,9 +5566,9 @@ merge-stream@^1.0.1: readable-stream "^2.0.1" merge2@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" - integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A== + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== merge@^1.2.0: version "1.2.1" @@ -5725,7 +5635,7 @@ mimic-fn@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5756,9 +5666,9 @@ minimist@~0.0.1: integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= minipass@^2.2.1, minipass@^2.3.5: - version "2.4.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.4.0.tgz#38f0af94f42fb6f34d3d7d82a90e2c99cd3ff485" - integrity sha512-6PmOuSP4NnZXzs2z6rbwzLJu/c5gdzYg1mRI/WIYdx45iiX7T+a4esOzavD6V/KmBzAaopFSTZPZcUx73bqKWA== + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" @@ -5787,21 +5697,14 @@ mississippi@^3.0.0: through2 "^2.0.0" mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= - dependencies: - mkdirp "*" - -mkdirp@*, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -5831,19 +5734,19 @@ ms@2.0.0: integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@^2.0.0, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -multimatch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" - integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== +multimatch@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= dependencies: - array-differ "^2.0.3" - array-union "^1.0.2" - arrify "^1.0.1" - minimatch "^3.0.4" + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" mute-stream@0.0.7: version "0.0.7" @@ -5855,15 +5758,6 @@ mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mz@^2.5.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - nan@^2.12.1, nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -5919,7 +5813,7 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^2.3.0, node-fetch@^2.5.0: +node-fetch@^2.3.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== @@ -5942,17 +5836,17 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" -node-gyp@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.3.tgz#80d64c23790244991b6d44532f0a351bedd3dd45" - integrity sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ== +node-gyp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" + integrity sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA== dependencies: - env-paths "^1.0.0" glob "^7.0.3" graceful-fs "^4.1.2" mkdirp "^0.5.0" nopt "2 || 3" npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" request "^2.87.0" rimraf "2" semver "~5.3.0" @@ -5965,9 +5859,9 @@ node-int64@^0.4.0: integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= node-notifier@^5.2.1: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== + version "5.4.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" + integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ== dependencies: growly "^1.3.0" is-wsl "^1.1.0" @@ -5991,10 +5885,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.25: - version "1.1.28" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.28.tgz#503c3c70d0e4732b84e7aaa2925fbdde10482d4a" - integrity sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g== +node-releases@^1.1.21: + version "1.1.22" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.22.tgz#d90cd5adc59ab9b0f377d4f532b09656399c88bf" + integrity sha512-O6XpteBuntW1j86mw6LlovBIwTe+sO2+7vi9avQffNeIW4upgnaCVm6xrBWH+KATz7mNNRNNeEpuWB7dT6Cr3w== dependencies: semver "^5.3.0" @@ -6036,7 +5930,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.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== @@ -6073,14 +5967,14 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== -npm-lifecycle@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.3.tgz#09e9b0b6686e85fd53bab82364386222d97a3730" - integrity sha512-M0QmmqbEHBXxDrmc6X3+eKjW9+F7Edg1ENau92WkYw1sox6wojHzEZJIRm1ItljEiaigZlKL8mXni/4ylAy1Dg== +npm-lifecycle@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf" + integrity sha512-+Vg6I60Z75V/09pdcH5iUo/99Q/vop35PaI99elvxk56azSVVsdsSsS/sXqKDNwbRRNN1qSxkcO45ZOu0yOWew== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" - node-gyp "^5.0.2" + node-gyp "^4.0.0" resolve-from "^4.0.0" slide "^1.1.6" uid-number "0.0.6" @@ -6088,19 +5982,19 @@ npm-lifecycle@^3.1.2: which "^1.3.1" "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + integrity sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA== dependencies: - hosted-git-info "^2.7.1" + hosted-git-info "^2.6.0" osenv "^0.1.5" - semver "^5.6.0" + semver "^5.5.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6, npm-packlist@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -6112,15 +6006,27 @@ npm-path@^2.0.2: dependencies: which "^1.2.10" -npm-pick-manifest@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.0.tgz#c94cab52d201a85875e45198fffe1a8a348e7af7" - integrity sha512-H+OnFudiq38Qj8P8xcesD/1Xa0Kvr2QRn1DTlephIwNfJg3P30Szc1wtpGEgdPXfAyKZKT2ajIM2X8YtCrbXrA== +npm-pick-manifest@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" + integrity sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA== dependencies: figgy-pudding "^3.5.1" npm-package-arg "^6.0.0" semver "^5.4.1" +npm-registry-fetch@^3.8.0, npm-registry-fetch@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856" + integrity sha512-srwmt8YhNajAoSAaDWndmZgx89lJwIZ1GWxOuckH4Coek4uHv5S+o/l9FLQe/awA+JwTnj4FJHldxhlXdZEBmw== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" + npm-package-arg "^6.1.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -6176,7 +6082,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.11, object-keys@^1.0.12: +object-keys@^1.0.12: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -6188,26 +6094,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - object.fromentries@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" @@ -6241,16 +6127,6 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" @@ -6373,9 +6249,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + 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" @@ -6400,12 +6276,12 @@ p-map-series@^1.0.0: dependencies: p-reduce "^1.0.0" -p-map@^1.1.1: +p-map@^1.1.1, p-map@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-map@^2.0.0, p-map@^2.1.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== @@ -6444,6 +6320,39 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" +pacote@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.0.tgz#85f3013a3f6dd51c108b0ccabd3de8102ddfaeda" + integrity sha512-aUplXozRbzhaJO48FaaeClmN+2Mwt741MC6M3bevIGZwdCaP7frXzbUOfOWa91FPHoLITzG0hYaKY363lxO3bg== + dependencies: + bluebird "^3.5.3" + cacache "^11.3.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.3" + lru-cache "^5.1.1" + make-fetch-happen "^4.0.1" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^2.2.3" + npm-registry-fetch "^3.8.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.6.0" + ssri "^6.0.1" + tar "^4.4.8" + unique-filename "^1.1.1" + which "^1.3.1" + parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" @@ -6593,11 +6502,6 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -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" @@ -6617,17 +6521,10 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - please-upgrade-node@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + 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" @@ -6652,9 +6549,9 @@ preserve@^0.2.0: integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= prettier@^1.14.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" - integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== + version "1.17.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.1.tgz#ed64b4e93e370cb8a25b9ef7fef3e4fd1c0995db" + integrity sha512-TzGRNvuUSmPgwivDqkZ9tM/qTGW9hqDKWOE9YHiyQdixlKbv7kvEqsmDPrcHJTKwthU774TQwZXVtaQ/mMsvjg== pretty-format@^23.6.0: version "23.6.0" @@ -6670,9 +6567,9 @@ private@^0.1.6, private@^0.1.8: integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== progress@^2.0.0: version "2.0.3" @@ -6707,7 +6604,7 @@ promzard@^0.3.0: dependencies: read "1" -prop-types@^15.6.2, prop-types@^15.7.0, prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -6739,9 +6636,9 @@ pseudomap@^1.0.2: integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.24, psl@^1.1.28: - version "1.3.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" - integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== + version "1.1.32" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db" + integrity sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g== pump@^2.0.0: version "2.0.1" @@ -6813,29 +6710,29 @@ rc@^1.2.7: strip-json-comments "~2.0.1" react-dom@^16.4.2: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" - integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" + integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.15.0" + scheduler "^0.13.6" -react-is@^16.8.1, react-is@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== +react-is@^16.8.1, react-is@^16.8.6: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== react-test-renderer@^16.4.2: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9" - integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.8.6.tgz#188d8029b8c39c786f998aa3efd3ffe7642d5ba1" + integrity sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.9.0" - scheduler "^0.15.0" + react-is "^16.8.6" + scheduler "^0.13.6" react-virtualized-auto-sizer@^1.0.2: version "1.0.2" @@ -6843,33 +6740,34 @@ react-virtualized-auto-sizer@^1.0.2: integrity sha512-MYXhTY1BZpdJFjUovvYHVBmkq79szK/k7V3MO+36gJkWGkrXKtyr4vCPtpphaTLRAdDNoYEYFZWE8LjN+PIHNg== react-window@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz#a56b39307e79979721021f5d06a67742ecca52d1" - integrity sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q== + version "1.8.4" + resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.4.tgz#8b1fde6cd0664895b0dfa8547ed416e895d611c1" + integrity sha512-vOWwy6gOLT/Ug5aUQt0KflxDOZppKloW1CC1oUFDEFe6TXZ02VvOV2C0gYWbCNN8MXFctSxJULoyU01zno0lyg== dependencies: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" react@^16.4.2: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" - integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" + integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" + scheduler "^0.13.6" read-cmd-shim@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.4.tgz#b4a53d43376211b45243f0072b6e603a8e37640d" - integrity sha512-Pqpl3qJ/QdOIjRYA0q5DND/gLvGOfpIz/fYVDGYpOXfW/lFrIttmLsBnd6IkyK10+JHU9zhsaudfvrQTBB9YFQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + integrity sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs= dependencies: graceful-fs "^4.1.2" "read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: - version "2.1.0" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.0.tgz#e3d42e6c35ea5ae820d9a03ab0c7291217fc51d5" - integrity sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A== + version "2.0.13" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" + integrity sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg== dependencies: glob "^7.1.1" json-parse-better-errors "^1.0.1" @@ -6879,13 +6777,15 @@ read-cmd-shim@^1.0.1: graceful-fs "^4.1.2" read-package-tree@^5.1.6: - version "5.3.1" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" - integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + version "5.2.2" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8" + integrity sha512-rW3XWUUkhdKmN2JKB4FL563YAgtINifso5KShykufR03nJ5loGFlkUMe1g/yxmqX073SoYYTsgXu7XdDinKZuA== dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + once "^1.3.0" read-package-json "^2.0.0" readdir-scoped-modules "^1.0.0" - util-promisify "^2.1.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -6968,9 +6868,9 @@ read@1, read@~1.0.1: util-deprecate "^1.0.1" readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c= dependencies: debuglog "^1.0.1" dezalgo "^1.0.0" @@ -7009,7 +6909,7 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" -regenerate-unicode-properties@^8.1.0: +regenerate-unicode-properties@^8.0.2: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== @@ -7027,14 +6927,14 @@ regenerator-runtime@^0.11.0: integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf" + integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w== dependencies: private "^0.1.6" @@ -7054,9 +6954,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp-tree@^0.1.6: - version "0.1.12" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.12.tgz#28eaaa6e66eeb3527c15108a3ff740d9e574e420" - integrity sha512-TsXZ8+cv2uxMEkLfgwO0E068gsNMLfuYwMMhiUxf0Kw2Vcgzq93vgl6wIlIYuPmfMqMjfQ9zAporiozqCnwLuQ== + version "0.1.10" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.10.tgz#d837816a039c7af8a8d64d7a7c3cf6a1d93450bc" + integrity sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ== regexpp@^2.0.1: version "2.0.1" @@ -7064,12 +6964,12 @@ regexpp@^2.0.1: integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpu-core@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" - integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" + regenerate-unicode-properties "^8.0.2" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" @@ -7188,13 +7088,27 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@1.x: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" + integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== + dependencies: + path-parse "^1.0.6" + +resolve@^1.8.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" + integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -7213,14 +7127,7 @@ retry@^0.10.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@2.6.3: +rimraf@2, rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -7253,12 +7160,7 @@ rxjs@^6.3.3, rxjs@^6.4.0: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -7306,10 +7208,10 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" - integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== +scheduler@^0.13.6: + version "0.13.6" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" + integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -7327,15 +7229,20 @@ semver-compare@^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@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + +semver@^5.5: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.0.0, semver@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" + integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== semver@~5.3.0: version "5.3.0" @@ -7347,10 +7254,20 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -7490,9 +7407,9 @@ source-map-support@^0.4.15: source-map "^0.5.6" source-map-support@^0.5.6: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -7541,9 +7458,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -7676,11 +7593,11 @@ string-width@^3.0.0: strip-ansi "^5.1.0" string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== dependencies: - safe-buffer "~5.2.0" + safe-buffer "~5.1.0" string_decoder@~1.1.1: version "1.1.1" @@ -7787,17 +7704,17 @@ symbol-observable@^1.1.0: integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + version "5.4.0" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.0.tgz#d772a3216e68829920a41a32c18eda286c95d780" + integrity sha512-nHFDrxmbrkU7JAFKqKbDJXfzrX2UBsWmrieXFTGxiI5e4ncg3VqsZeI4EzNmX0ncp4XNGVeoxIWJXfCIXwrsvw== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" + ajv "^6.9.1" + lodash "^4.17.11" slice-ansi "^2.1.0" string-width "^3.0.0" @@ -7810,10 +7727,10 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4, tar@^4.4.10, tar@^4.4.8: - version "4.4.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" - integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== +tar@^4, tar@^4.4.8: + version "4.4.9" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.9.tgz#058fbb152f6fc45733e84585a40c39e59302e1b3" + integrity sha512-xisFa7Q2i3HOgfn+nmnWLGHD6Tm23hxjkx6wwGmgxkJFr6wxwXnJOdJYcZjL453PSdF0+bemO03+flAzkIdLBQ== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" @@ -7861,20 +7778,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.0" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" - integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= - dependencies: - any-promise "^1.0.0" - throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" @@ -7997,11 +7900,57 @@ trim-right@^1.0.1: dependencies: glob "^7.1.2" -tslib@^1.9.0: +ts-jest@^24.0.2: + version "24.0.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d" + integrity sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + +tslib@^1.8.0, tslib@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + +tslint@^5.19.0: + version "5.19.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.19.0.tgz#a2cbd4a7699386da823f6b499b8394d6c47bb968" + integrity sha512-1LwwtBxfRJZnUvoS9c0uj8XQtAnyhWr9KlNvDIdB+oXyT+VpsOAaEhEgKi1HrZ8rq0ki/AAnbGSv4KM6/AfVZw== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -8021,16 +7970,16 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== + uglify-js@^3.1.4: version "3.6.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" @@ -8073,14 +8022,14 @@ unicode-property-aliases-ecmascript@^1.0.4: integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" - set-value "^2.0.1" + set-value "^0.4.3" unique-filename@^1.1.1: version "1.1.1" @@ -8090,16 +8039,16 @@ unique-filename@^1.1.1: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== dependencies: imurmurhash "^0.1.4" -universal-user-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9" - integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA== +universal-user-agent@^2.0.0, universal-user-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" + integrity sha512-8itiX7G05Tu3mGDTdNY2fB4KJ8MgZLS54RdG6PkkfwMAavrXu1mV/lls/GABx9O3Rw4PnTtasxrvbMQoBYY92Q== dependencies: os-name "^3.0.0" @@ -8148,13 +8097,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util-promisify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" - integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= - dependencies: - object.getownpropertydescriptors "^2.0.3" - util.promisify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" @@ -8164,9 +8106,9 @@ util.promisify@^1.0.0: object.getownpropertydescriptors "^2.0.3" uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: version "3.0.4" @@ -8318,7 +8260,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: +write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== @@ -8327,7 +8269,7 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0, wr imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-json-file@^2.2.0: +write-json-file@^2.2.0, write-json-file@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= @@ -8339,18 +8281,6 @@ write-json-file@^2.2.0: sort-keys "^2.0.0" write-file-atomic "^2.0.0" -write-json-file@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" - integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.15" - make-dir "^2.1.0" - pify "^4.0.1" - sort-keys "^2.0.0" - write-file-atomic "^2.4.2" - write-pkg@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" @@ -8379,9 +8309,9 @@ xml-name-validator@^3.0.0: integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= y18n@^3.2.1: version "3.2.1" @@ -8403,6 +8333,13 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"