diff --git a/.babelrc b/.babelrc index 48f373b..c5fcb94 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,29 @@ { + "presets": [ + ["next/babel"] + ], + "env": { + "development": { + "plugins": ["inline-dotenv"] + }, + "production": { + "presets": [ + ["next/babel", { + "preset-env": { + "targets": { + "ie": "11" + }, + "debug": false + } + }] + ] + }, + "test": { + "plugins": ["inline-dotenv"] + } + }, "plugins": [ + "add-react-displayname", ["@babel/plugin-proposal-decorators", { "legacy": true }], "transform-inline-environment-variables", [ @@ -22,22 +46,22 @@ "libraryName": "antd" } ], - "ramda" - ], - "env": { - "development": { - "presets": ["next/babel"], - "plugins": ["inline-dotenv"] - }, - "local": { - "presets": ["next/babel"], - }, - "production": { - "presets": ["next/babel"] - }, - "test": { - "presets": [["next/babel", { "preset-env": { "modules": "commonjs" } }]], - "plugins": ["inline-dotenv"] - } - } + "ramda", + ["module-resolver", { + "root": ["./"], + "alias": { + "@containers":"./containers", + "@components":"./components", + "@constant": "./utils/constant/", + "@config":"./config", + "@stores":"./stores", + "@model": "./stores/SharedModel", + "@model":"./stores/SharedModel", + "@utils":"./utils", + "@schemas":"./containers/schemas", + "@Img": "./components/Img", + "@SvgIcons": "./components/SvgIcons" + } + }] + ] } diff --git a/.eslintrc.js b/.eslintrc.js index 73e4077..1538bbf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,56 +1,3 @@ module.exports = { - extends: ['airbnb', 'plugin:react/recommended', 'prettier', 'prettier/react'], - plugins: ['prettier', 'react', 'cypress'], - parser: 'babel-eslint', - parserOptions: { - ecmaVersion: 2016, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - }, - env: { - es6: true, - node: true, - jest: true, - 'cypress/globals': true, - }, - rules: { - 'arrow-body-style': 0, - // need for _store init - 'no-underscore-dangle': 0, - // heavilly used in store.actions - 'no-param-reassign': 0, - // heavilly used in store.views - 'no-use-before-define': 0, - // force-return is unneeded - 'consistent-return': 0, - 'no-shadow': 0, - // error could be object for parse by upfloor - 'prefer-promise-reject-errors': 0, - 'react/jsx-no-bind': 0, - // allow JSX in js files - 'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx'] }], - 'react/forbid-prop-types': 0, - // no need sort - 'react/sort-comp': 0, - 'react/prop-types': [1, { skipUndeclared: true }], - 'jsx-a11y/href-no-hash': 'off', - 'jsx-a11y/no-static-element-interactions': 0, - 'jsx-a11y/click-events-have-key-events': 0, - - // for cypress test usage - 'no-unused-expressions': 0, - - 'prettier/prettier': [ - 'error', - { - singleQuote: true, - semi: false, - tabWidth: 2, - bracketSpacing: true, - trailingComma: 'es5', - }, - ], - }, + extends: ['@groupher/eslint-config-web'], } diff --git a/.huskyrc b/.huskyrc new file mode 100644 index 0000000..b331c51 --- /dev/null +++ b/.huskyrc @@ -0,0 +1,6 @@ +{ + "hooks": { + "pre-commit": "pretty-quick --staged && npm run lint:staged", + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } +} diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..650be16 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,30 @@ +module.exports = { + rules: { + 'body-leading-blank': [1, 'always'], + 'footer-leading-blank': [1, 'always'], + 'header-max-length': [2, 'always', 72], + 'scope-case': [0], + 'subject-case': [0], + 'subject-empty': [2, 'never'], + 'subject-full-stop': [2, 'never', '.'], + 'type-case': [2, 'always', 'lower-case'], + 'type-empty': [2, 'never'], + 'type-enum': [ + 2, + 'always', + [ + 'build', + 'chore', + 'ci', + 'docs', + 'feat', + 'fix', + 'perf', + 'refactor', + 'revert', + 'style', + 'test', + ], + ], + }, +} diff --git a/components/A/index.js b/components/A/index.js index 586a577..3ee4c08 100644 --- a/components/A/index.js +++ b/components/A/index.js @@ -6,7 +6,7 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import styled from 'styled-components' export const StyledA = styled.a` @@ -26,13 +26,9 @@ const A = ({ href, target, children }) => ( ) A.propTypes = { - href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired, - children: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.arrayOf(PropTypes.node), - PropTypes.node, - ]).isRequired, - target: PropTypes.string, + href: T.oneOfType([T.string, T.object]).isRequired, + children: T.oneOfType([T.string, T.arrayOf(T.node), T.node]).isRequired, + target: T.string, } A.defaultProps = { diff --git a/components/AdderCell/index.js b/components/AdderCell/index.js index 3bbed27..a912ca7 100644 --- a/components/AdderCell/index.js +++ b/components/AdderCell/index.js @@ -5,15 +5,15 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { AddWrapper, AddIcon, AddText } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:AdderCell:index') +const log = buildLog('c:AdderCell:index') /* eslint-enable no-unused-vars */ const AdderCell = ({ onAdd }) => ( @@ -25,11 +25,11 @@ const AdderCell = ({ onAdd }) => ( AdderCell.propTypes = { // https://www.npmjs.com/package/prop-types - onAdd: PropTypes.func, + onAdd: T.func, } AdderCell.defaultProps = { - onAdd: debug, + onAdd: log, } export default AdderCell diff --git a/components/AdderCell/styles/index.js b/components/AdderCell/styles/index.js index 0a8c31d..498ec03 100644 --- a/components/AdderCell/styles/index.js +++ b/components/AdderCell/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { animate } from '@utils' import Img from '../../Img' -import { animate } from '../../../utils' export const AddWrapper = styled.div` display: flex; diff --git a/components/AvatarsRow/index.js b/components/AvatarsRow/index.js index 63e44d6..071ad82 100644 --- a/components/AvatarsRow/index.js +++ b/components/AvatarsRow/index.js @@ -5,18 +5,17 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' import { Tooltip } from 'antd' -import { ATATARS_LIST_LENGTH } from '../../config/general' +import { ATATARS_LIST_LENGTH } from 'config/general' +import { buildLog, prettyNum } from '@utils' import { Avatars, AvatarsItem, AvatarsImg, AvatarsMore } from './styles' -import { makeDebugger, prettyNum } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:AvatarsRow:index') +const log = buildLog('c:AvatarsRow:index') /* eslint-enable no-unused-vars */ const validUser = R.compose( @@ -62,27 +61,27 @@ const AvatarsRow = ({ } AvatarsRow.propTypes = { - users: PropTypes.arrayOf( - PropTypes.shape({ - id: PropTypes.string, - avatar: PropTypes.string, - nickname: PropTypes.string, - extra_id: PropTypes.string, + users: T.arrayOf( + T.shape({ + id: T.string, + avatar: T.string, + nickname: T.string, + extra_id: T.string, }) ), - total: PropTypes.number.isRequired, - height: PropTypes.string, - limit: PropTypes.number, - onUserSelect: PropTypes.func, - onTotalSelect: PropTypes.func, + total: T.number.isRequired, + height: T.string, + limit: T.number, + onUserSelect: T.func, + onTotalSelect: T.func, } AvatarsRow.defaultProps = { height: '32px', users: [], limit: ATATARS_LIST_LENGTH.POSTS, - onUserSelect: debug, - onTotalSelect: debug, + onUserSelect: log, + onTotalSelect: log, } export default AvatarsRow diff --git a/components/AvatarsRow/styles/index.js b/components/AvatarsRow/styles/index.js index ded7c9b..7d2b03c 100644 --- a/components/AvatarsRow/styles/index.js +++ b/components/AvatarsRow/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme, cs } from '../../../utils' +import { theme, cs } from '@utils' export const Avatars = styled.ul` ${cs.flex()}; diff --git a/components/BannerCountBrief/index.js b/components/BannerCountBrief/index.js index f2b40df..b1d4a69 100644 --- a/components/BannerCountBrief/index.js +++ b/components/BannerCountBrief/index.js @@ -5,9 +5,9 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { makeDebugger, toPercentNum } from '../../utils' +import { buildLog, toPercentNum } from '@utils' import { Result, @@ -18,7 +18,7 @@ import { } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:BannerCountBrief:index') +const log = buildLog('c:BannerCountBrief:index') /* eslint-enable no-unused-vars */ const CountBrief = ({ filteredCount, totalCount, thread, unit }) => { @@ -69,10 +69,10 @@ const BannerCountBrief = ({ filteredCount, totalCount, thread, unit }) => ( ) BannerCountBrief.propTypes = { - filteredCount: PropTypes.number, - totalCount: PropTypes.number.isRequired, - unit: PropTypes.string, - thread: PropTypes.string, + filteredCount: T.number, + totalCount: T.number.isRequired, + unit: T.string, + thread: T.string, } BannerCountBrief.defaultProps = { diff --git a/components/BaseStyled/index.js b/components/BaseStyled/index.js index c42bd93..f38b108 100644 --- a/components/BaseStyled/index.js +++ b/components/BaseStyled/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { theme } from '../../utils' +import { theme } from '@utils' export const Center = styled.div` /* display: flex;*/ diff --git a/components/CategoriesCell/index.js b/components/CategoriesCell/index.js index cfa05a1..ba44121 100644 --- a/components/CategoriesCell/index.js +++ b/components/CategoriesCell/index.js @@ -5,12 +5,13 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' import { Icon } from 'antd' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { uid, Trans } from '@utils' import AdderCell from '../AdderCell' import { @@ -21,7 +22,6 @@ import { AddIcon, } from './styles' -import { uid, Trans } from '../../utils' // import { inject, observer } from 'mobx-react' // import Link from 'next/link' @@ -67,9 +67,9 @@ export default CategoriesCell CategoriesCell.propTypes = { // https://www.npmjs.com/package/prop-types - source: PropTypes.object.isRequired, - onDelete: PropTypes.func.isRequired, - onAdd: PropTypes.func.isRequired, + source: T.object.isRequired, + onDelete: T.func.isRequired, + onAdd: T.func.isRequired, } CategoriesCell.defaultProps = { diff --git a/components/CategoriesCell/styles/index.js b/components/CategoriesCell/styles/index.js index bf29805..5edc41a 100644 --- a/components/CategoriesCell/styles/index.js +++ b/components/CategoriesCell/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { animate } from '@utils' import Img from '../../Img' -import { animate } from '../../../utils' export const UnsetText = styled.div` color: tomato; diff --git a/components/ColorCell/index.js b/components/ColorCell/index.js index 6d202b6..870a9b8 100644 --- a/components/ColorCell/index.js +++ b/components/ColorCell/index.js @@ -5,13 +5,13 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { ColorCell, ColorDot /* ColorTitle */ } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ColorCell:index') +const log = buildLog('c:ColorCell:index') /* eslint-enable no-unused-vars */ const ColorCellComponent = ({ color }) => { @@ -25,7 +25,7 @@ const ColorCellComponent = ({ color }) => { ColorCellComponent.propTypes = { // https://www.npmjs.com/package/prop-types - color: PropTypes.string, + color: T.string, } ColorCellComponent.defaultProps = { diff --git a/components/CommunityCell/CommunitiesLogoList.js b/components/CommunityCell/CommunitiesLogoList.js index 5328b30..b1384d7 100644 --- a/components/CommunityCell/CommunitiesLogoList.js +++ b/components/CommunityCell/CommunitiesLogoList.js @@ -1,10 +1,9 @@ import React from 'react' -// import { ICON_CMD } from '../../config' +// import { ICON_CMD } from '@config' +import { uid } from '@utils' import { Wrapper, CommunityLogo } from './styles/communities_logo_list' -import { uid } from '../../utils' - const tooltipOffset = JSON.stringify({ top: 1 }) const CommunitiesLogoList = ({ array }) => ( diff --git a/components/CommunityCell/index.js b/components/CommunityCell/index.js index 7167070..fa2537b 100644 --- a/components/CommunityCell/index.js +++ b/components/CommunityCell/index.js @@ -6,11 +6,12 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import ReactTooltip from 'react-tooltip' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { uid, buildLog } from '@utils' import AdderCell from '../AdderCell' import CommunitiesLogoList from './CommunitiesLogoList' @@ -24,10 +25,8 @@ import { AddIcon, } from './styles' -import { uid, makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:CommunityCell:index') +const log = buildLog('c:CommunityCell:index') /* eslint-enable no-unused-vars */ const SingleCommunity = ({ community }) => ( @@ -101,23 +100,23 @@ const CommunityCell = props => ( CommunityCell.propTypes = { // https://www.npmjs.com/package/prop-types /* eslint-disable */ - data: PropTypes.shape({ - id: PropTypes.string, - logo: PropTypes.string, - title: PropTypes.string, + data: T.shape({ + id: T.string, + logo: T.string, + title: T.string, }), - array: PropTypes.arrayOf( - PropTypes.shape({ - logo: PropTypes.string, - title: PropTypes.string, + array: T.arrayOf( + T.shape({ + logo: T.string, + title: T.string, }) ), - withSetter: PropTypes.bool, - thread: PropTypes.string, - source: PropTypes.object, - onDelete: PropTypes.func, - onAdd: PropTypes.func, + withSetter: T.bool, + thread: T.string, + source: T.object, + onDelete: T.func, + onAdd: T.func, /* eslint-enable */ } @@ -127,8 +126,8 @@ CommunityCell.defaultProps = { thread: 'POST', withSetter: false, source: {}, - onDelete: debug, - onAdd: debug, + onDelete: log, + onAdd: log, } export default CommunityCell diff --git a/components/CommunityCell/styles/communities_logo_list.js b/components/CommunityCell/styles/communities_logo_list.js index 9d44ade..2cdf078 100644 --- a/components/CommunityCell/styles/communities_logo_list.js +++ b/components/CommunityCell/styles/communities_logo_list.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import Img from '../../Img' -import { theme } from '../../../utils' export const Wrapper = styled.div` display: flex; diff --git a/components/CommunityCell/styles/index.js b/components/CommunityCell/styles/index.js index 2c1dc7e..b4718d9 100644 --- a/components/CommunityCell/styles/index.js +++ b/components/CommunityCell/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { animate } from '@utils' import Img from '../../Img' -import { animate } from '../../../utils' export const Wrapper = styled.div` display: flex; diff --git a/components/CommunityMatrix/index.js b/components/CommunityMatrix/index.js index ef1cb9b..7db96f8 100644 --- a/components/CommunityMatrix/index.js +++ b/components/CommunityMatrix/index.js @@ -6,11 +6,12 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import ReactTooltip from 'react-tooltip' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { buildLog, uid } from '@utils' import { MatrixWrapper, CommunityLogo, @@ -18,10 +19,8 @@ import { AddOnWrapper, } from './styles' -import { makeDebugger, uid } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:CommunityMatrix:index') +const log = buildLog('c:CommunityMatrix:index') /* eslint-enable no-unused-vars */ const tooltipOffset = JSON.stringify({ top: 5, right: -5 }) @@ -94,19 +93,19 @@ class CommunityMatrix extends React.Component { CommunityMatrix.propTypes = { // https://www.npmjs.com/package/prop-types - data: PropTypes.shape({ + data: T.shape({ // TODO add shape - entries: PropTypes.array.isRequired, - pageNumber: PropTypes.number.isRequired, - pageSize: PropTypes.number.isRequired, - totalCount: PropTypes.number.isRequired, + entries: T.array.isRequired, + pageNumber: T.number.isRequired, + pageSize: T.number.isRequired, + totalCount: T.number.isRequired, }), - array: PropTypes.array, - onSelect: PropTypes.func, - onAddOnSelect: PropTypes.func, - activeRaw: PropTypes.string, - lens: PropTypes.arrayOf(PropTypes.string), - hasAddon: PropTypes.bool, + array: T.array, + onSelect: T.func, + onAddOnSelect: T.func, + activeRaw: T.string, + lens: T.arrayOf(T.string), + hasAddon: T.bool, } CommunityMatrix.defaultProps = { @@ -117,8 +116,8 @@ CommunityMatrix.defaultProps = { totalCount: 0, }, array: [], - onSelect: debug, - onAddOnSelect: debug, + onSelect: log, + onAddOnSelect: log, lens: [], hasAddon: true, activeRaw: '', diff --git a/components/CommunityMatrix/styles/index.js b/components/CommunityMatrix/styles/index.js index 48aa26f..e3062a6 100644 --- a/components/CommunityMatrix/styles/index.js +++ b/components/CommunityMatrix/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { cs } from '@utils' import Img from '../../Img' -import { cs } from '../../../utils' export const MatrixWrapper = styled.div` display: flex; diff --git a/components/ContentFilter/index.js b/components/ContentFilter/index.js index 3d187e2..48d8407 100644 --- a/components/ContentFilter/index.js +++ b/components/ContentFilter/index.js @@ -5,12 +5,12 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Button, Row, Col, Tag } from 'antd' +import { ICON_CMD } from '@config' +import { buildLog, isEmptyValue } from '@utils' import Popover from '../Popover' -import { ICON_CMD } from '../../config' - import { Wrapper, InnerBtnWrapper, @@ -20,9 +20,8 @@ import { SelectItem, } from './styles' -import { makeDebugger, isEmptyValue } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ContentFilter:index') +const log = buildLog('c:ContentFilter:index') /* eslint-enable no-unused-vars */ const filterDict = { @@ -164,11 +163,11 @@ const ContentFilter = ({ onSelect, activeWhen, activeSort, activeLength }) => ( ContentFilter.propTypes = { // https://www.npmjs.com/package/prop-types - activeWhen: PropTypes.string, - activeSort: PropTypes.string, - activeLength: PropTypes.string, + activeWhen: T.string, + activeSort: T.string, + activeLength: T.string, - onSelect: PropTypes.func.isRequired, + onSelect: T.func.isRequired, } ContentFilter.defaultProps = { diff --git a/components/ContentFilter/styles/index.js b/components/ContentFilter/styles/index.js index 4acad8e..33527b8 100644 --- a/components/ContentFilter/styles/index.js +++ b/components/ContentFilter/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import Img from '../../Img' -import { theme } from '../../../utils' export const Wrapper = styled.div` flex-grow: 1; diff --git a/components/ContentsCountCell/index.js b/components/ContentsCountCell/index.js index 765e553..6b2fcea 100644 --- a/components/ContentsCountCell/index.js +++ b/components/ContentsCountCell/index.js @@ -5,14 +5,13 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { buildLog } from '@utils' import { Wrapper, Content, Label, Count } from './styles' -import { makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ContentsCountCell:index') +const log = buildLog('c:ContentsCountCell:index') /* eslint-enable no-unused-vars */ const ContentsCountCell = ({ @@ -40,11 +39,11 @@ const ContentsCountCell = ({ } ContentsCountCell.propTypes = { - data: PropTypes.shape({ - postsCount: PropTypes.number, - jobsCount: PropTypes.number, - videosCount: PropTypes.number, - reposCount: PropTypes.number, + data: T.shape({ + postsCount: T.number, + jobsCount: T.number, + videosCount: T.number, + reposCount: T.number, }), } diff --git a/components/ContentsCountCell/styles/index.js b/components/ContentsCountCell/styles/index.js index fa9842d..4d8afc2 100644 --- a/components/ContentsCountCell/styles/index.js +++ b/components/ContentsCountCell/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' // import Img from '../../Img' -// import { theme } from '../../../utils' +// import { theme } from '@utils' export const Wrapper = styled.div` display: flex; diff --git a/components/FileUploader/index.js b/components/FileUploader/index.js index 3612042..36c97d9 100644 --- a/components/FileUploader/index.js +++ b/components/FileUploader/index.js @@ -5,14 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { ASSETS_ENDPOINT } from '@config' +import { buildLog } from '@utils' import { FileUploaderWrapper, InputFile } from './styles' -import { ASSETS_ENDPOINT } from '../../config' -import { makeDebugger } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:FileUploader') +const log = buildLog('C:FileUploader') /* eslint-enable no-unused-vars */ const getFullDir = (dir, nestDir) => { @@ -116,21 +116,21 @@ class FileUploader extends React.Component { FileUploader.propTypes = { // https://www.npmjs.com/package/prop-types - children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, - onUploadStart: PropTypes.func, - onUploadError: PropTypes.func, - onUploadDone: PropTypes.func, + children: T.oneOfType([T.string, T.node]).isRequired, + onUploadStart: T.func, + onUploadError: T.func, + onUploadDone: T.func, - dir: PropTypes.oneOf(['posts', 'communities', 'jobs', 'activities']), - nestDir: PropTypes.bool, + dir: T.oneOf(['posts', 'communities', 'jobs', 'activities']), + nestDir: T.bool, } FileUploader.defaultProps = { dir: 'posts', nestDir: true, - onUploadStart: debug, - onUploadError: debug, - onUploadDone: debug, + onUploadStart: log, + onUploadError: log, + onUploadDone: log, } export default FileUploader diff --git a/components/FocusLine/index.js b/components/FocusLine/index.js index 67f44f6..a7e7b8a 100644 --- a/components/FocusLine/index.js +++ b/components/FocusLine/index.js @@ -6,13 +6,13 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { buildLog } from '@utils' import { Wrapper, Icon, TextWrapper, Text, Focus } from './styles' -import { makeDebugger } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:FocusLine:index') +const log = buildLog('c:FocusLine:index') /* eslint-enable no-unused-vars */ const FocusLine = ({ iconSrc, before, focus, after }) => ( @@ -25,10 +25,10 @@ const FocusLine = ({ iconSrc, before, focus, after }) => ( ) FocusLine.propTypes = { - iconSrc: PropTypes.string, - before: PropTypes.string.isRequired, - focus: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired, - after: PropTypes.string.isRequired, + iconSrc: T.string, + before: T.string.isRequired, + focus: T.oneOfType([T.number, T.string]).isRequired, + after: T.string.isRequired, } FocusLine.defaultProps = { diff --git a/components/FocusLine/styles/index.js b/components/FocusLine/styles/index.js index 64844af..9b14a4c 100644 --- a/components/FocusLine/styles/index.js +++ b/components/FocusLine/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme, cs } from '@utils' import Img from '../../Img' -import { theme, cs } from '../../../utils' export const Wrapper = styled.div` ${cs.flex('align-end')}; diff --git a/components/Footer/index.js b/components/Footer/index.js index abf4d96..ce4ce38 100644 --- a/components/Footer/index.js +++ b/components/Footer/index.js @@ -6,7 +6,7 @@ import React from 'react' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { Container, BaseInfo, @@ -19,7 +19,7 @@ import { GitSource, } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Footer:index') +const log = buildLog('c:Footer:index') /* eslint-enable no-unused-vars */ const Footer = () => { diff --git a/components/Footer/styles/index.js b/components/Footer/styles/index.js index 2e9685b..eb1d612 100644 --- a/components/Footer/styles/index.js +++ b/components/Footer/styles/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { cs, theme } from '../../../utils' +import { cs, theme } from '@utils' const Link = styled.a` text-decoration: none; diff --git a/components/FormInputer/index.js b/components/FormInputer/index.js index 615e0a9..25ebb69 100644 --- a/components/FormInputer/index.js +++ b/components/FormInputer/index.js @@ -5,16 +5,16 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Input, InputNumber } from 'antd' import R from 'ramda' +import { buildLog } from '@utils' import FormItem from '../FormItem' import { FormInput, Note } from './styles' -import { makeDebugger } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:FormInputer:index') +const log = buildLog('c:FormInputer:index') /* eslint-enable no-unused-vars */ const { TextArea } = Input @@ -71,16 +71,16 @@ const FormInputer = ({ label, value, onChange, note, type, disabled }) => { FormInputer.propTypes = { // https://www.npmjs.com/package/prop-types - onChange: PropTypes.func, - label: PropTypes.string, - value: PropTypes.string, - note: PropTypes.string, - type: PropTypes.oneOf(['default', 'textarea', 'number']), - disabled: PropTypes.bool, + onChange: T.func, + label: T.string, + value: T.string, + note: T.string, + type: T.oneOf(['default', 'textarea', 'number']), + disabled: T.bool, } FormInputer.defaultProps = { - onChange: debug, + onChange: log, value: '', label: '', note: '', diff --git a/components/FormInputer/styles/index.js b/components/FormInputer/styles/index.js index 763a5ef..79ab9a7 100644 --- a/components/FormInputer/styles/index.js +++ b/components/FormInputer/styles/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -// import { Img } from '../../../components' +// import { Img } from '@components' export const FormInput = styled.div` width: 250px; diff --git a/components/FormItem/index.js b/components/FormItem/index.js index 77920ab..c4337fd 100644 --- a/components/FormItem/index.js +++ b/components/FormItem/index.js @@ -5,14 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { FormItemWrapper, FormLable, ChildWrapper } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:FormItem:index') +const log = buildLog('c:FormItem:index') /* eslint-enable no-unused-vars */ const FormItem = ({ label, children }) => ( @@ -23,8 +23,8 @@ const FormItem = ({ label, children }) => ( ) FormItem.propTypes = { - label: PropTypes.string.isRequired, - children: PropTypes.node.isRequired, + label: T.string.isRequired, + children: T.node.isRequired, } FormItem.defaultProps = {} diff --git a/components/FormItem/styles/index.js b/components/FormItem/styles/index.js index e5a8c92..e3d5d6e 100644 --- a/components/FormItem/styles/index.js +++ b/components/FormItem/styles/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -// import { Img } from '../../../components' +// import { Img } from '@components' export const FormItemWrapper = styled.div` display: flex; diff --git a/components/FormSelector/index.js b/components/FormSelector/index.js index f6cf1ed..04a9eeb 100644 --- a/components/FormSelector/index.js +++ b/components/FormSelector/index.js @@ -6,16 +6,15 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Select } from 'antd' +import { uid, buildLog } from '@utils' import FormItem from '../FormItem' import { Note } from './styles' -import { uid, makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:FormSelector:index') +const log = buildLog('c:FormSelector:index') /* eslint-enable no-unused-vars */ const { Option } = Select @@ -41,15 +40,15 @@ const FormSelector = ({ label, options, value, onChange, note }) => ( FormSelector.propTypes = { // https://www.npmjs.com/package/prop-types - options: PropTypes.arrayOf(PropTypes.string).isRequired, - onChange: PropTypes.func, - label: PropTypes.string, - value: PropTypes.string, - note: PropTypes.string, + options: T.arrayOf(T.string).isRequired, + onChange: T.func, + label: T.string, + value: T.string, + note: T.string, } FormSelector.defaultProps = { - onChange: debug, + onChange: log, value: '', label: '', note: '', diff --git a/components/FormSelector/styles/index.js b/components/FormSelector/styles/index.js index 688d523..d070cfa 100644 --- a/components/FormSelector/styles/index.js +++ b/components/FormSelector/styles/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -// import { Img } from '../../../components' +// import { Img } from '@components' export const SelectorWrapper = styled.div` display: flex; diff --git a/components/GAWraper/index.js b/components/GAWraper/index.js index fa91256..ec19fba 100644 --- a/components/GAWraper/index.js +++ b/components/GAWraper/index.js @@ -1,7 +1,7 @@ import React from 'react' import Router from 'next/router' -import { GA } from '../../utils' +import { GA } from '@utils' Router.onRouteChangeComplete = url => { GA.pageview(url) diff --git a/components/Img/index.js b/components/Img/index.js index f5c2745..8de1468 100644 --- a/components/Img/index.js +++ b/components/Img/index.js @@ -6,7 +6,7 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import ReactSVG from 'react-svg' const NormalImg = ({ className, src, alt }) => ( @@ -27,10 +27,10 @@ const Img = ({ className, src, alt, loading }) => { } Img.propTypes = { - src: PropTypes.string.isRequired, - alt: PropTypes.string, - className: PropTypes.string, - loading: PropTypes.any, + src: T.string.isRequired, + alt: T.string, + className: T.string, + loading: T.any, } Img.defaultProps = { diff --git a/components/JobsTable/index.js b/components/JobsTable/index.js index 5d92e3d..21efdc6 100644 --- a/components/JobsTable/index.js +++ b/components/JobsTable/index.js @@ -5,9 +5,10 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table, Button } from 'antd' +import { buildLog, cutFrom } from '@utils' import Pagi from '../Pagi' import { TableLoading } from '../LoadingEffects' import { Space } from '../BaseStyled' @@ -18,10 +19,8 @@ import TimeStampCell from '../TimeStampCell' import { OperationWrapper } from './styles' -import { makeDebugger, cutFrom } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:JobsTable:index') +const log = buildLog('c:JobsTable:index') /* eslint-enable no-unused-vars */ class JobsTable extends React.PureComponent { @@ -151,7 +150,7 @@ class JobsTable extends React.PureComponent { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props return ( @@ -169,7 +168,7 @@ class JobsTable extends React.PureComponent { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -179,26 +178,26 @@ class JobsTable extends React.PureComponent { } JobsTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, - setCommunity: PropTypes.func, - unsetCommunity: PropTypes.func, - unsetTag: PropTypes.func, - setTag: PropTypes.func, - onEdit: PropTypes.func, - onDelete: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, + setCommunity: T.func, + unsetCommunity: T.func, + unsetTag: T.func, + setTag: T.func, + onEdit: T.func, + onDelete: T.func, } JobsTable.defaultProps = { loading: false, - pageChange: debug, - setCommunity: debug, - unsetCommunity: debug, - unsetTag: debug, - setTag: debug, - onEdit: debug, - onDelete: debug, + pageOnChange: log, + setCommunity: log, + unsetCommunity: log, + unsetTag: log, + setTag: log, + onEdit: log, + onDelete: log, } export default JobsTable diff --git a/components/JobsTable/styles/index.js b/components/JobsTable/styles/index.js index 7931645..7b3d87a 100644 --- a/components/JobsTable/styles/index.js +++ b/components/JobsTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import { Img } from '../..' -import { theme } from '../../../utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/components/LoadingEffects/CheatSheetLoading.js b/components/LoadingEffects/CheatSheetLoading.js index 17e238a..914a068 100644 --- a/components/LoadingEffects/CheatSheetLoading.js +++ b/components/LoadingEffects/CheatSheetLoading.js @@ -1,5 +1,5 @@ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import Masonry from 'react-masonry-component' import R from 'ramda' import { withTheme } from 'styled-components' @@ -7,9 +7,9 @@ import { withTheme } from 'styled-components' // import Loading, { Rect, Circle } from 'react-content-loader' import ContentLoader from 'react-content-loader' -import { uid, makeDebugger } from '../../utils' +import { uid, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:LoadingEffects:index') +const log = buildLog('c:LoadingEffects:index') /* eslint-enable no-unused-vars */ /* eslint-disable no-unused-vars */ @@ -46,8 +46,8 @@ const CheatSheetLoading = ({ column, theme }) => ( ) CheatSheetLoading.propTypes = { - column: PropTypes.number, - /* theme: PropTypes.object, */ + column: T.number, + /* theme: T.object, */ } CheatSheetLoading.defaultProps = { diff --git a/components/LoadingEffects/PostLoading.js b/components/LoadingEffects/PostLoading.js index 20316de..c57b5bc 100644 --- a/components/LoadingEffects/PostLoading.js +++ b/components/LoadingEffects/PostLoading.js @@ -1,10 +1,10 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import styled, { withTheme } from 'styled-components' import ContentLoader from 'react-content-loader' -import { uid } from '../../utils' +import { uid } from '@utils' // Config-page: http://danilowoz.com/create-react-content-loader/ const LoadingWrapper = styled.div` width: 100%; @@ -39,7 +39,7 @@ const PostLoading = ({ num, theme }) => { } PostLoading.propTypes = { - num: PropTypes.number, + num: T.number, } PostLoading.defaultProps = { diff --git a/components/LoadingEffects/PostsLoading.js b/components/LoadingEffects/PostsLoading.js index b38a391..45216b1 100644 --- a/components/LoadingEffects/PostsLoading.js +++ b/components/LoadingEffects/PostsLoading.js @@ -1,10 +1,10 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import styled, { withTheme } from 'styled-components' import ContentLoader from 'react-content-loader' -import { uid } from '../../utils' +import { uid } from '@utils' // Config-page: http://danilowoz.com/create-react-content-loader/ const LoadingWrapper = styled.div` width: 100%; @@ -43,7 +43,7 @@ const PostsLoading = ({ num, theme }) => { } PostsLoading.propTypes = { - num: PropTypes.number, + num: T.number, } PostsLoading.defaultProps = { diff --git a/components/LoadingEffects/TableLoading.js b/components/LoadingEffects/TableLoading.js index 2c78142..6e80da7 100644 --- a/components/LoadingEffects/TableLoading.js +++ b/components/LoadingEffects/TableLoading.js @@ -1,7 +1,7 @@ import React from 'react' import styled from 'styled-components' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' import Img from '../Img' const LoadingWrapper = styled.div` diff --git a/components/LoadingEffects/TagsLoading.js b/components/LoadingEffects/TagsLoading.js index b7f0b53..71f0e14 100644 --- a/components/LoadingEffects/TagsLoading.js +++ b/components/LoadingEffects/TagsLoading.js @@ -1,10 +1,10 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import styled from 'styled-components' import ContentLoader from 'react-content-loader' -import { uid } from '../../utils' +import { uid } from '@utils' // Config-page: http://danilowoz.com/create-react-content-loader/ const LoadingWrapper = styled.div` @@ -39,7 +39,7 @@ const TagListLoading = ({ num }) => { } TagListLoading.propTypes = { - num: PropTypes.number, + num: T.number, } TagListLoading.defaultProps = { diff --git a/components/LoadingEffects/TypeWriterLoading.js b/components/LoadingEffects/TypeWriterLoading.js index b6fa9d2..c7ac3a7 100644 --- a/components/LoadingEffects/TypeWriterLoading.js +++ b/components/LoadingEffects/TypeWriterLoading.js @@ -1,10 +1,10 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import styled, { withTheme } from 'styled-components' import ContentLoader from 'react-content-loader' -import { uid } from '../../utils' +import { uid } from '@utils' // Config-page: http://danilowoz.com/create-react-content-loader/ const LoadingWrapper = styled.div` width: 100%; @@ -40,7 +40,7 @@ const TypeWriterLoading = ({ num, theme }) => { } TypeWriterLoading.propTypes = { - num: PropTypes.number, + num: T.number, } TypeWriterLoading.defaultProps = { diff --git a/components/MarkDownPreviewer/index.js b/components/MarkDownPreviewer/index.js index 4edde11..51a54d8 100644 --- a/components/MarkDownPreviewer/index.js +++ b/components/MarkDownPreviewer/index.js @@ -4,16 +4,16 @@ * */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import Remarkable from 'remarkable' import remarkableemoj from 'remarkable-emoji' import mentionsPlugin from 'remarkable-mentions' import Prism from 'mastani-codehighlight' -import { MENTION_USER_ADDR } from '../../config' -import { makeDebugger } from '../../utils' -import MarkDownStyle from '../../containers/ThemeWrapper/MarkDownStyle' +import MarkDownStyle from '@containers/ThemeWrapper/MarkDownStyle' +import { MENTION_USER_ADDR } from '@config' +import { buildLog } from '@utils' import { PreviewerContainer } from './styles' @@ -22,7 +22,7 @@ md.use(mentionsPlugin({ url: MENTION_USER_ADDR })) md.use(remarkableemoj) /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:MarkDownPreviewer:index') +const log = buildLog('c:MarkDownPreviewer:index') /* eslint-enable no-unused-vars */ // TODO: move it to components @@ -55,7 +55,7 @@ class MarkDownPreviewer extends React.Component { MarkDownPreviewer.propTypes = { // https://www.npmjs.com/package/prop-types - body: PropTypes.string, + body: T.string, } MarkDownPreviewer.defaultProps = { diff --git a/components/MarkDownRender/index.js b/components/MarkDownRender/index.js index f690106..cdb0736 100644 --- a/components/MarkDownRender/index.js +++ b/components/MarkDownRender/index.js @@ -5,19 +5,18 @@ */ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' import Remarkable from 'remarkable' import remarkableemoj from 'remarkable-emoji' import mentionsPlugin from 'remarkable-mentions' import Prism from 'mastani-codehighlight' -import { MENTION_USER_ADDR } from '../../config' -import MarkDownStyle from '../../containers/ThemeWrapper/MarkDownStyle' +import MarkDownStyle from '@containers/ThemeWrapper/MarkDownStyle' +import { MENTION_USER_ADDR } from '@config' +import { buildLog } from '@utils' import { PreviewerContainer } from './styles' -import { makeDebugger } from '../../utils' - const md = new Remarkable('full', { html: true, breaks: false, @@ -26,7 +25,7 @@ md.use(mentionsPlugin({ url: MENTION_USER_ADDR })) md.use(remarkableemoj) /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:MarkDownRender:index') +const log = buildLog('c:MarkDownRender:index') /* eslint-enable no-unused-vars */ class MarkDownRender extends React.Component { @@ -79,7 +78,7 @@ class MarkDownRender extends React.Component { MarkDownRender.propTypes = { // https://www.npmjs.com/package/prop-types - body: PropTypes.string, + body: T.string, } MarkDownRender.defaultProps = { diff --git a/components/Maybe/index.js b/components/Maybe/index.js index 6adbe04..cebfedb 100644 --- a/components/Maybe/index.js +++ b/components/Maybe/index.js @@ -5,12 +5,12 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Maybe:index') +const log = buildLog('c:Maybe:index') /* eslint-enable no-unused-vars */ const MaybeLoading = ({ loading }) => { @@ -26,9 +26,9 @@ const Maybe = ({ children, data, loading }) => { Maybe.propTypes = { // https://www.npmjs.com/package/prop-types - children: PropTypes.node.isRequired, - data: PropTypes.any, - loading: PropTypes.node, + children: T.node.isRequired, + data: T.any, + loading: T.node, } Maybe.defaultProps = { diff --git a/components/MaybeCell/index.js b/components/MaybeCell/index.js index 632929a..7655b8f 100644 --- a/components/MaybeCell/index.js +++ b/components/MaybeCell/index.js @@ -5,33 +5,35 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import styled from 'styled-components' -import { makeDebugger, isEmptyNil } from '../../utils' +import { buildLog, isEmptyNil } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:MaybeCell:index') +const log = buildLog('c:MaybeCell:index') /* eslint-enable no-unused-vars */ export const NoneText = styled.div` - text-align: center; + text-align: ${({ align }) => align}; font-size: 0.8rem; color: lightgrey; font-style: italic; ` -const MaybeCell = ({ text }) => { +const MaybeCell = ({ text, align }) => { if (isEmptyNil(text)) { - return 暂无 + return -- } return
{text}
} MaybeCell.propTypes = { - text: PropTypes.string, + text: T.string, + align: T.oneOf(['left', 'center', 'right']), } MaybeCell.defaultProps = { text: '', + align: 'center', } export default MaybeCell diff --git a/components/Modal/index.js b/components/Modal/index.js index b5f3685..6c4033a 100644 --- a/components/Modal/index.js +++ b/components/Modal/index.js @@ -5,14 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { makeDebugger } from '../../utils' -import { ICON_CMD } from '../../config' +import { buildLog } from '@utils' +import { ICON_CMD } from '@config' import { Mask, Wrapper, CloseBtn, ChildrenWrapper } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Modal:index') +const log = buildLog('c:Modal:index') /* eslint-enable no-unused-vars */ const Modal = ({ children, show, width, showCloseBtn, onClose }) => ( @@ -32,16 +32,16 @@ const Modal = ({ children, show, width, showCloseBtn, onClose }) => ( Modal.propTypes = { // https://www.npmjs.com/package/prop-types - children: PropTypes.node.isRequired, - show: PropTypes.bool, - onClose: PropTypes.func, - width: PropTypes.string, - showCloseBtn: PropTypes.bool, + children: T.node.isRequired, + show: T.bool, + onClose: T.func, + width: T.string, + showCloseBtn: T.bool, } Modal.defaultProps = { show: false, - onClose: debug, + onClose: log, width: '600px', showCloseBtn: false, } diff --git a/components/Modal/styles/index.js b/components/Modal/styles/index.js index 8d2e79b..5291be9 100644 --- a/components/Modal/styles/index.js +++ b/components/Modal/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme, animate } from '@utils' import Img from '../../Img' -import { theme, animate } from '../../../utils' // display: ${props => (props.show ? 'block' : 'none')}; export const Mask = styled.div` diff --git a/components/Navigator/index.js b/components/Navigator/index.js index e6bf004..38ec24e 100644 --- a/components/Navigator/index.js +++ b/components/Navigator/index.js @@ -5,14 +5,14 @@ */ import React from 'react' -// import PropTypes from 'prop-types' +// import T from 'prop-types' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { buildLog } from '@utils' import { Breadcrumbs, Logo, LogoText, BetaLogo } from './style' -import { makeDebugger } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Navigator:index') +const log = buildLog('c:Navigator:index') /* eslint-enable no-unused-vars */ const Navigator = () => ( diff --git a/components/Navigator/style/index.js b/components/Navigator/style/index.js index 084aade..79afd82 100644 --- a/components/Navigator/style/index.js +++ b/components/Navigator/style/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import Img from '../../Img' -import { theme } from '../../../utils' export const Breadcrumbs = styled.div` max-width: 520px; diff --git a/components/NotFound/index.js b/components/NotFound/index.js index b305b23..9641449 100644 --- a/components/NotFound/index.js +++ b/components/NotFound/index.js @@ -5,11 +5,12 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' -import { ICON_BASE, ISSUE_ADDR } from '../../config' +import { ICON_BASE, ISSUE_ADDR } from '@config' +import { buildLog } from '@utils' import { Icon404, Wrapper, @@ -21,10 +22,8 @@ import { Desc, } from './styles' -import { makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:NotFound:index') +const log = buildLog('c:NotFound:index') /* eslint-enable no-unused-vars */ const DefaultDesc = () => ( @@ -57,8 +56,8 @@ const NotFound = ({ msg, desc }) => { NotFound.propTypes = { // https://www.npmjs.com/package/prop-types - msg: PropTypes.string, - desc: PropTypes.string, + msg: T.string, + desc: T.string, } NotFound.defaultProps = { diff --git a/components/NotFound/styles/index.js b/components/NotFound/styles/index.js index 3fdd1aa..dde6355 100644 --- a/components/NotFound/styles/index.js +++ b/components/NotFound/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import Img from '../../Img' -import { theme } from '../../../utils' export const Wrapper = styled.div` display: flex; diff --git a/components/Pagi/index.js b/components/Pagi/index.js index a07a0c7..eea2525 100644 --- a/components/Pagi/index.js +++ b/components/Pagi/index.js @@ -6,13 +6,13 @@ import React from 'react' import { Pagination } from 'antd' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { PagiWrapper, BottomMsg } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Pagi:index') +const log = buildLog('c:Pagi:index') /* eslint-enable no-unused-vars */ const hasExtraPage = (totalCount, pageSize) => totalCount > pageSize @@ -71,18 +71,18 @@ const Pagi = ({ } Pagi.propTypes = { - pageNumber: PropTypes.number, - pageSize: PropTypes.number, - totalCount: PropTypes.number, - // showBottomMsg: PropTypes.bool, - emptyMsg: PropTypes.string, - noMoreMsg: PropTypes.string, - left: PropTypes.string, - top: PropTypes.string, - bottom: PropTypes.string, - showBottomMsg: PropTypes.bool, + pageNumber: T.number, + pageSize: T.number, + totalCount: T.number, + // showBottomMsg: T.bool, + emptyMsg: T.string, + noMoreMsg: T.string, + left: T.string, + top: T.string, + bottom: T.string, + showBottomMsg: T.bool, - onChange: PropTypes.func.isRequired, + onChange: T.func.isRequired, } Pagi.defaultProps = { diff --git a/components/PermissionCell/index.js b/components/PermissionCell/index.js index f2147ae..5d7dea8 100644 --- a/components/PermissionCell/index.js +++ b/components/PermissionCell/index.js @@ -6,8 +6,9 @@ import React from 'react' import R from 'ramda' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { uid, buildLog, isEmptyNil, isObject, objToArray } from '@utils' import AdderCell from '../AdderCell' import { @@ -20,16 +21,8 @@ import { PermissionWrapper, } from './styles' -import { - uid, - makeDebugger, - isEmptyNil, - isObject, - objToArray, -} from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:PermissionCell:index') +const log = buildLog('c:PermissionCell:index') /* eslint-enable no-unused-vars */ const valueIsObj = v => isObject(v) @@ -97,8 +90,8 @@ const PermissionCell = ({ source, onMutate }) => { PermissionCell.propTypes = { // https://www.npmjs.com/package/prop-types - onMutate: PropTypes.func.isRequired, - source: PropTypes.object.isRequired, + onMutate: T.func.isRequired, + source: T.object.isRequired, } PermissionCell.defaultProps = {} diff --git a/components/Popover/index.js b/components/Popover/index.js index 970c5e9..2ab30d2 100644 --- a/components/Popover/index.js +++ b/components/Popover/index.js @@ -6,13 +6,13 @@ import React from 'react' import { Popover } from 'antd' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { ContentContainer } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Popover:index') +const log = buildLog('c:Popover:index') /* eslint-enable no-unused-vars */ const renderContent = content => { @@ -31,11 +31,11 @@ const PopoverComponent = ({ title, children, content, trigger, placement }) => ( ) PopoverComponent.propTypes = { - children: PropTypes.node.isRequired, - content: PropTypes.node.isRequired, - title: PropTypes.string, - trigger: PropTypes.oneOf(['hover', 'click', 'focus']), - placement: PropTypes.oneOf(['bottomLeft', 'bottom', 'right']), + children: T.node.isRequired, + content: T.node.isRequired, + title: T.string, + trigger: T.oneOf(['hover', 'click', 'focus']), + placement: T.oneOf(['bottomLeft', 'bottom', 'right']), } PopoverComponent.defaultProps = { diff --git a/components/PostsTable/index.js b/components/PostsTable/index.js index 575fbc5..5d8e43e 100644 --- a/components/PostsTable/index.js +++ b/components/PostsTable/index.js @@ -5,9 +5,10 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table, Button } from 'antd' +import { buildLog } from '@utils' import { OperationWrapper } from './styles' import Pagi from '../Pagi' @@ -18,10 +19,8 @@ import CommunityCell from '../CommunityCell' import TagsCell from '../TagsCell' import TimeStampCell from '../TimeStampCell' -import { makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:PostsTable:index') +const log = buildLog('c:PostsTable:index') /* eslint-enable no-unused-vars */ class PostsTable extends React.Component { @@ -168,7 +167,7 @@ class PostsTable extends React.Component { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props return ( @@ -186,7 +185,7 @@ class PostsTable extends React.Component { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -196,26 +195,26 @@ class PostsTable extends React.Component { } PostsTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, - setCommunity: PropTypes.func, - unsetCommunity: PropTypes.func, - unsetTag: PropTypes.func, - setTag: PropTypes.func, - onEdit: PropTypes.func, - onDelete: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, + setCommunity: T.func, + unsetCommunity: T.func, + unsetTag: T.func, + setTag: T.func, + onEdit: T.func, + onDelete: T.func, } PostsTable.defaultProps = { loading: false, - pageChange: debug, - setCommunity: debug, - unsetCommunity: debug, - unsetTag: debug, - setTag: debug, - onEdit: debug, - onDelete: debug, + pageOnChange: log, + setCommunity: log, + unsetCommunity: log, + unsetTag: log, + setTag: log, + onEdit: log, + onDelete: log, } export default React.memo(PostsTable) diff --git a/components/PostsTable/styles/index.js b/components/PostsTable/styles/index.js index 7931645..7b3d87a 100644 --- a/components/PostsTable/styles/index.js +++ b/components/PostsTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import { Img } from '../..' -import { theme } from '../../../utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/components/ReposTable/index.js b/components/ReposTable/index.js index 17986cc..b2fd944 100644 --- a/components/ReposTable/index.js +++ b/components/ReposTable/index.js @@ -5,9 +5,12 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table, Button } from 'antd' +import { TYPE } from '@constant' +import { buildLog } from '@utils' + import Pagi from '../Pagi' import { TableLoading } from '../LoadingEffects' import { Space } from '../BaseStyled' @@ -18,10 +21,8 @@ import TimeStampCell from '../TimeStampCell' import { OperationWrapper } from './styles' -import { makeDebugger, TYPE } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ReposTable:index') +const log = buildLog('c:ReposTable:index') /* eslint-enable no-unused-vars */ class ReposTable extends React.PureComponent { @@ -147,7 +148,7 @@ class ReposTable extends React.PureComponent { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props return ( @@ -165,7 +166,7 @@ class ReposTable extends React.PureComponent { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -175,28 +176,28 @@ class ReposTable extends React.PureComponent { } ReposTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, - setCommunity: PropTypes.func, - unsetCommunity: PropTypes.func, - unsetTag: PropTypes.func, - setTag: PropTypes.func, - onEdit: PropTypes.func, - onDelete: PropTypes.func, + setCommunity: T.func, + unsetCommunity: T.func, + unsetTag: T.func, + setTag: T.func, + onEdit: T.func, + onDelete: T.func, } ReposTable.defaultProps = { loading: false, - pageChange: debug, + pageOnChange: log, - setCommunity: debug, - unsetCommunity: debug, - unsetTag: debug, - setTag: debug, - onEdit: debug, - onDelete: debug, + setCommunity: log, + unsetCommunity: log, + unsetTag: log, + setTag: log, + onEdit: log, + onDelete: log, } export default ReposTable diff --git a/components/ReposTable/styles/index.js b/components/ReposTable/styles/index.js index 7931645..7b3d87a 100644 --- a/components/ReposTable/styles/index.js +++ b/components/ReposTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import { Img } from '../..' -import { theme } from '../../../utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/components/SexCell/index.js b/components/SexCell/index.js index f6ec4f6..e5cb4a8 100644 --- a/components/SexCell/index.js +++ b/components/SexCell/index.js @@ -5,14 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { buildLog } from '@utils' import { DudeIcon, GirlIcon } from './styles' -import { makeDebugger } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:SexCell:index') +const log = buildLog('c:SexCell:index') /* eslint-enable no-unused-vars */ const SexCell = ({ sex }) => { @@ -24,7 +24,7 @@ const SexCell = ({ sex }) => { SexCell.propTypes = { // https://www.npmjs.com/package/prop-types - sex: PropTypes.oneOf(['dude', 'girl']), + sex: T.oneOf(['dude', 'girl']), } SexCell.defaultProps = { diff --git a/components/SocialSell/index.js b/components/SocialSell/index.js new file mode 100644 index 0000000..d00eae4 --- /dev/null +++ b/components/SocialSell/index.js @@ -0,0 +1,47 @@ +/* + * + * SocialSell + * + */ + +import React from 'react' +import T from 'prop-types' +import R from 'ramda' + +import { ICON_CMD } from '@config' +import { buildLog } from '@utils' + +import { Wrapper, SocalIcon } from './styles' + +/* eslint-disable-next-line */ +const log = buildLog('c:SocialSell:index') + +const SocialSell = ({ data }) => { + const validList = [] + + R.forEachObjIndexed((v, k) => { + if (v) { + validList.push({ social: k, value: v }) + } + }, data) + + return ( + + {validList.map(item => ( +
+ + + +
+ ))} +
+ ) +} + +SocialSell.propTypes = { + data: T.object.isRequired, +} + +SocialSell.defaultProps = {} + +export default React.memo(SocialSell) diff --git a/components/SocialSell/styles/index.js b/components/SocialSell/styles/index.js new file mode 100644 index 0000000..0e9a436 --- /dev/null +++ b/components/SocialSell/styles/index.js @@ -0,0 +1,13 @@ +import styled from 'styled-components' + +import Img from '@Img' +// import { theme } from '@utils' + +export const Wrapper = styled.div`` +export const Title = styled.div`` + +export const SocalIcon = styled(Img)` + width: 15px; + height: 15px; + display: block; +` diff --git a/containers/Doraemon/tests/index.test.js b/components/SocialSell/tests/index.test.js similarity index 67% rename from containers/Doraemon/tests/index.test.js rename to components/SocialSell/tests/index.test.js index 5f33cc7..f1e9f0b 100644 --- a/containers/Doraemon/tests/index.test.js +++ b/components/SocialSell/tests/index.test.js @@ -1,9 +1,9 @@ // import React from 'react' // import { shallow } from 'enzyme' -// import Doraemon from '../index' +// import SocialSell from '../index' -describe('', () => { +describe('TODO ', () => { it('Expect to have unit tests specified', () => { expect(true).toEqual(true) }) diff --git a/components/StateTree/StateTree.js b/components/StateTree/StateTree.js index c7f4dc2..ea8f6b6 100644 --- a/components/StateTree/StateTree.js +++ b/components/StateTree/StateTree.js @@ -5,14 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import ReactJson from 'react-json-view' -/* import PropTypes from 'prop-types' */ +/* import T from 'prop-types' */ -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:StateTree:index') +const log = buildLog('c:StateTree:index') /* eslint-enable no-unused-vars */ /* apathy flat ocean tube */ @@ -31,7 +31,7 @@ const StateTree = ({ json }) => ( ) StateTree.propTypes = { - json: PropTypes.object.isRequired, + json: T.object.isRequired, // https://www.npmjs.com/package/prop-types } diff --git a/components/StateTree/styles/index.js b/components/StateTree/styles/index.js index b48b554..72577a7 100644 --- a/components/StateTree/styles/index.js +++ b/components/StateTree/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' export const StateViewerWrapper = styled.div` padding: 25px; diff --git a/components/StatusBox/index.js b/components/StatusBox/index.js index 137fa67..b53b250 100644 --- a/components/StatusBox/index.js +++ b/components/StatusBox/index.js @@ -5,11 +5,11 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Icon } from 'antd' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' import { Wrapper, Msg, @@ -19,7 +19,7 @@ import { } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:StatusBox:index') +const log = buildLog('c:StatusBox:index') /* eslint-enable no-unused-vars */ function getDefaultMsg(success, error) { @@ -54,11 +54,11 @@ const StatusBox = ({ success, error, warn, msg }) => { StatusBox.propTypes = { // https://www.npmjs.com/package/prop-types - // info: PropTypes.bool, - warn: PropTypes.bool, - success: PropTypes.bool, - error: PropTypes.bool, - msg: PropTypes.string, + // info: T.bool, + warn: T.bool, + success: T.bool, + error: T.bool, + msg: T.string, } StatusBox.defaultProps = { diff --git a/components/StatusBox/styles/index.js b/components/StatusBox/styles/index.js index 9b409ad..e05200f 100644 --- a/components/StatusBox/styles/index.js +++ b/components/StatusBox/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' // -import { animate, cs, theme } from '../../../utils' +import { animate, cs, theme } from '@utils' export const Wrapper = styled.div` min-height: 1rem; diff --git a/components/Tabber/index.js b/components/Tabber/index.js index 3ef7080..4d8a1ef 100644 --- a/components/Tabber/index.js +++ b/components/Tabber/index.js @@ -3,13 +3,13 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' import { Tabs } from '..' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:Tabber:index') +const log = buildLog('c:Tabber:index') /* eslint-enable no-unused-vars */ const { TabPane } = Tabs @@ -28,7 +28,7 @@ const translator = { const Tabber = ({ source, onChange }) => { const tabitems = R.values(source) - // debug('tabitems: ', tabitems) + // log('tabitems: ', tabitems) // return ( @@ -41,8 +41,8 @@ const Tabber = ({ source, onChange }) => { Tabber.propTypes = { // https://www.npmjs.com/package/prop-types - onChange: PropTypes.func.isRequired, - source: PropTypes.array.isRequired, + onChange: T.func.isRequired, + source: T.array.isRequired, } Tabber.defaultProps = {} diff --git a/components/TagColorSelector/index.js b/components/TagColorSelector/index.js index 46408d6..36c343e 100644 --- a/components/TagColorSelector/index.js +++ b/components/TagColorSelector/index.js @@ -5,11 +5,12 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' -import { TAG_COLORS } from '../../config' +import { TAG_COLORS } from '@config' +import { uid, buildLog } from '@utils' import { FormItemWrapper, FormLable, @@ -19,10 +20,8 @@ import { ColorBot, } from './styles' -import { uid, makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:TagColorSelector:index') +const log = buildLog('c:TagColorSelector:index') /* eslint-enable no-unused-vars */ const TagColorSelector = ({ label, value, onChange, note }) => ( @@ -41,14 +40,14 @@ const TagColorSelector = ({ label, value, onChange, note }) => ( ) TagColorSelector.propTypes = { - onChange: PropTypes.func, - label: PropTypes.string, - value: PropTypes.string, - note: PropTypes.string, + onChange: T.func, + label: T.string, + value: T.string, + note: T.string, } TagColorSelector.defaultProps = { - onChange: debug, + onChange: log, value: '', label: '', note: '', diff --git a/components/TagColorSelector/styles/index.js b/components/TagColorSelector/styles/index.js index a04f0d4..ecd1076 100644 --- a/components/TagColorSelector/styles/index.js +++ b/components/TagColorSelector/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -// import { Img } from '../../../components' -import { animate } from '../../../utils' +// import { Img } from '@components' +import { animate } from '@utils' export const FormItemWrapper = styled.div` display: flex; diff --git a/components/TagList/index.js b/components/TagList/index.js index 775e842..4763686 100644 --- a/components/TagList/index.js +++ b/components/TagList/index.js @@ -5,14 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { uid, buildLog } from '@utils' import { Wrapper, TagItem, TagDot, TagTitle, AllTagIcon } from './styles' -import { uid, makeDebugger } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:TagList:index') +const log = buildLog('c:TagList:index') /* eslint-enable no-unused-vars */ const TagList = ({ tags, active, onSelect }) => { @@ -55,17 +55,17 @@ const TagList = ({ tags, active, onSelect }) => { } TagList.propTypes = { - tags: PropTypes.arrayOf( - PropTypes.shape({ - color: PropTypes.string, - title: PropTypes.string, + tags: T.arrayOf( + T.shape({ + color: T.string, + title: T.string, }) ).isRequired, - active: PropTypes.shape({ - color: PropTypes.string, - title: PropTypes.string, + active: T.shape({ + color: T.string, + title: T.string, }), - onSelect: PropTypes.func.isRequired, + onSelect: T.func.isRequired, // https://www.npmjs.com/package/prop-types } diff --git a/components/TagsCell/TagsList.js b/components/TagsCell/TagsList.js index 53d3a24..d6c1a8f 100644 --- a/components/TagsCell/TagsList.js +++ b/components/TagsCell/TagsList.js @@ -1,9 +1,9 @@ import React from 'react' -// import { ICON_CMD } from '../../config' +// import { ICON_CMD } from '@config' // import { Wrapper } from './styles' +import { uid } from '@utils' import { Wrapper, TagWrapper, ColorDot, DeleteCross } from './styles/tags_list' -import { uid } from '../../utils' const TagsList = ({ source, onDelete }) => ( diff --git a/components/TagsCell/index.js b/components/TagsCell/index.js index 7c9309c..fc73405 100644 --- a/components/TagsCell/index.js +++ b/components/TagsCell/index.js @@ -5,10 +5,10 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' // import { inject, observer } from 'mobx-react' // import Link from 'next/link' @@ -36,11 +36,11 @@ export default TagsCell TagsCell.propTypes = { // https://www.npmjs.com/package/prop-types - /* communityId: PropTypes.number.isRequired, */ - source: PropTypes.object.isRequired, - thread: PropTypes.string, - onDelete: PropTypes.func.isRequired, - onAdd: PropTypes.func.isRequired, + /* communityId: T.number.isRequired, */ + source: T.object.isRequired, + thread: T.string, + onDelete: T.func.isRequired, + onAdd: T.func.isRequired, } TagsCell.defaultProps = { diff --git a/components/TagsCell/styles/tags_list.js b/components/TagsCell/styles/tags_list.js index a838a3a..4d3a260 100644 --- a/components/TagsCell/styles/tags_list.js +++ b/components/TagsCell/styles/tags_list.js @@ -1,7 +1,7 @@ import styled from 'styled-components' // import Img from '../../Img' -import { animate } from '../../../utils' +import { animate } from '@utils' export const Wrapper = styled.div` display: flex; diff --git a/components/TagsTable/index.js b/components/TagsTable/index.js index f5e2181..d39d5f3 100644 --- a/components/TagsTable/index.js +++ b/components/TagsTable/index.js @@ -5,9 +5,10 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table, Button } from 'antd' +import { buildLog, Trans } from '@utils' import Pagi from '../Pagi' import { TableLoading } from '../LoadingEffects' import { Space } from '../BaseStyled' @@ -17,10 +18,8 @@ import TimeStampCell from '../TimeStampCell' import { OperationWrapper } from './styles' -import { makeDebugger, Trans } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:TagsTable:index') +const log = buildLog('c:TagsTable:index') /* eslint-enable no-unused-vars */ class TagsTable extends React.PureComponent { @@ -119,7 +118,7 @@ class TagsTable extends React.PureComponent { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props return ( @@ -137,7 +136,7 @@ class TagsTable extends React.PureComponent { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -147,19 +146,19 @@ class TagsTable extends React.PureComponent { } TagsTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, - onEdit: PropTypes.func, - onDelete: PropTypes.func, + onEdit: T.func, + onDelete: T.func, } TagsTable.defaultProps = { loading: false, - pageChange: debug, - onEdit: debug, - onDelete: debug, + pageOnChange: log, + onEdit: log, + onDelete: log, } export default TagsTable diff --git a/components/TagsTable/styles/index.js b/components/TagsTable/styles/index.js index 7931645..7b3d87a 100644 --- a/components/TagsTable/styles/index.js +++ b/components/TagsTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import { Img } from '../..' -import { theme } from '../../../utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/components/ThemeSelector/CardSelector.js b/components/ThemeSelector/CardSelector.js index fb45065..96a87c6 100644 --- a/components/ThemeSelector/CardSelector.js +++ b/components/ThemeSelector/CardSelector.js @@ -1,8 +1,9 @@ import React from 'react' import R from 'ramda' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { themeMeta } from '@utils' import { Wrapper, ThemeDot, @@ -15,8 +16,6 @@ import { AuthorName, } from './style/card_selector' -import { themeMeta } from '../../utils' - const CardSelector = ({ curTheme, changeTheme }) => ( {R.keys(themeMeta).map(name => ( diff --git a/components/ThemeSelector/DotSelector.js b/components/ThemeSelector/DotSelector.js index 7b4b6d5..aaa3bc8 100644 --- a/components/ThemeSelector/DotSelector.js +++ b/components/ThemeSelector/DotSelector.js @@ -1,10 +1,9 @@ import React from 'react' import R from 'ramda' +import { themeMeta } from '@utils' import { Wrapper, ThemeDot } from './style/dot_selector' -import { themeMeta } from '../../utils' - const DotSelector = ({ curTheme, changeTheme }) => ( {R.keys(themeMeta).map(name => ( diff --git a/components/ThemeSelector/index.js b/components/ThemeSelector/index.js index 205aa12..5690423 100644 --- a/components/ThemeSelector/index.js +++ b/components/ThemeSelector/index.js @@ -5,15 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { buildLog } from '@utils' import DotSelector from './DotSelector' import CardSelector from './CardSelector' -import { makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ThemeSelector:index') +const log = buildLog('c:ThemeSelector:index') /* eslint-enable no-unused-vars */ const ThemeSelector = ({ displayStyle, curTheme, changeTheme }) => { @@ -25,9 +24,9 @@ const ThemeSelector = ({ displayStyle, curTheme, changeTheme }) => { } ThemeSelector.propTypes = { - curTheme: PropTypes.string, - displayStyle: PropTypes.oneOf(['default', 'card']), - changeTheme: PropTypes.func.isRequired, + curTheme: T.string, + displayStyle: T.oneOf(['default', 'card']), + changeTheme: T.func.isRequired, // https://www.npmjs.com/package/prop-types } diff --git a/components/ThemeSelector/style/card_selector.js b/components/ThemeSelector/style/card_selector.js index f2e5bb6..16cb40b 100644 --- a/components/ThemeSelector/style/card_selector.js +++ b/components/ThemeSelector/style/card_selector.js @@ -1,8 +1,8 @@ import styled from 'styled-components' +import { theme, cs } from '@utils' import { Dot } from './index' import Img from '../../Img' -import { theme, cs } from '../../../utils' export const Wrapper = styled.div` ${cs.flex()}; diff --git a/components/ThemeSelector/style/dot_selector.js b/components/ThemeSelector/style/dot_selector.js index b984b45..3713800 100644 --- a/components/ThemeSelector/style/dot_selector.js +++ b/components/ThemeSelector/style/dot_selector.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { cs } from '@utils' import { Dot } from './index' -import { cs } from '../../../utils' export const Wrapper = styled.div` ${cs.flex('justify-center')}; diff --git a/components/ThemeSelector/style/index.js b/components/ThemeSelector/style/index.js index 4f5bad4..5efe233 100644 --- a/components/ThemeSelector/style/index.js +++ b/components/ThemeSelector/style/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme, themeCoverMap, themeCoverIndexMap, cs } from '../../../utils' +import { theme, themeCoverMap, themeCoverIndexMap, cs } from '@utils' export const Dot = styled.div` ${cs.circle('25px')}; diff --git a/components/ThreadsCell/index.js b/components/ThreadsCell/index.js index 043230a..b27dc50 100644 --- a/components/ThreadsCell/index.js +++ b/components/ThreadsCell/index.js @@ -5,20 +5,19 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' import { Icon } from 'antd' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { uid, buildLog, Trans } from '@utils' import AdderCell from '../AdderCell' import { Wrapper, Thread, DeleteCross, AddIcon } from './styles' -import { uid, makeDebugger, Trans } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ThreadsCell:index') +const log = buildLog('c:ThreadsCell:index') /* eslint-enable no-unused-vars */ const ThreadsCell = ({ data, source, onDelete, onAdd }) => ( @@ -46,20 +45,20 @@ const ThreadsCell = ({ data, source, onDelete, onAdd }) => ( ThreadsCell.propTypes = { // https://www.npmjs.com/package/prop-types - source: PropTypes.object.isRequired, - data: PropTypes.arrayOf( - PropTypes.shape({ - title: PropTypes.string, - raw: PropTypes.string, + source: T.object.isRequired, + data: T.arrayOf( + T.shape({ + title: T.string, + raw: T.string, }) ).isRequired, - onDelete: PropTypes.func, - onAdd: PropTypes.func, + onDelete: T.func, + onAdd: T.func, } ThreadsCell.defaultProps = { - onDelete: debug, - onAdd: debug, + onDelete: log, + onAdd: log, } export default ThreadsCell diff --git a/components/ThreadsCell/styles/index.js b/components/ThreadsCell/styles/index.js index 0cc1215..6106972 100644 --- a/components/ThreadsCell/styles/index.js +++ b/components/ThreadsCell/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { animate } from '@utils' import Img from '../../Img' -import { animate } from '../../../utils' export const Wrapper = styled.div` display: flex; diff --git a/components/ThreadsTable/index.js b/components/ThreadsTable/index.js index 8939820..8ee716f 100644 --- a/components/ThreadsTable/index.js +++ b/components/ThreadsTable/index.js @@ -5,19 +5,18 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table, Button } from 'antd' +import { buildLog, Trans } from '@utils' import Pagi from '../Pagi' import { TableLoading } from '../LoadingEffects' import { Space } from '../BaseStyled' import { OperationWrapper } from './styles' -import { makeDebugger, Trans } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:ThreadsTable:index') +const log = buildLog('c:ThreadsTable:index') /* eslint-enable no-unused-vars */ class ThreadsTable extends React.PureComponent { @@ -88,7 +87,7 @@ class ThreadsTable extends React.PureComponent { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props return ( @@ -106,7 +105,7 @@ class ThreadsTable extends React.PureComponent { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -116,30 +115,30 @@ class ThreadsTable extends React.PureComponent { } ThreadsTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, /* - setCommunity: PropTypes.func, - unsetCommunity: PropTypes.func, - unsetTag: PropTypes.func, - setTag: PropTypes.func, + setCommunity: T.func, + unsetCommunity: T.func, + unsetTag: T.func, + setTag: T.func, */ - onEdit: PropTypes.func, - onDelete: PropTypes.func, + onEdit: T.func, + onDelete: T.func, } ThreadsTable.defaultProps = { loading: false, - pageChange: debug, + pageOnChange: log, /* - setCommunity: debug, - unsetCommunity: debug, - unsetTag: debug, - setTag: debug, + setCommunity: log, + unsetCommunity: log, + unsetTag: log, + setTag: log, */ - onEdit: debug, - onDelete: debug, + onEdit: log, + onDelete: log, } export default ThreadsTable diff --git a/components/ThreadsTable/styles/index.js b/components/ThreadsTable/styles/index.js index 7931645..7b3d87a 100644 --- a/components/ThreadsTable/styles/index.js +++ b/components/ThreadsTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import { Img } from '../..' -import { theme } from '../../../utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/components/TimeStampCell/index.js b/components/TimeStampCell/index.js index 9600515..aaaf218 100644 --- a/components/TimeStampCell/index.js +++ b/components/TimeStampCell/index.js @@ -5,15 +5,14 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import TimeAgo from 'timeago-react' +import { buildLog } from '@utils' import { Wrapper, Content, Label, Count } from './styles' -import { makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:TimeStampCell:index') +const log = buildLog('c:TimeStampCell:index') /* eslint-enable no-unused-vars */ const TimeStampCell = ({ data: { insertedAt, updatedAt } }) => ( @@ -34,9 +33,9 @@ const TimeStampCell = ({ data: { insertedAt, updatedAt } }) => ( ) TimeStampCell.propTypes = { - data: PropTypes.shape({ - insertedAt: PropTypes.string, - updatedAt: PropTypes.string, + data: T.shape({ + insertedAt: T.string, + updatedAt: T.string, }), } diff --git a/components/TimeStampCell/styles/index.js b/components/TimeStampCell/styles/index.js index ee55309..bb7e06c 100644 --- a/components/TimeStampCell/styles/index.js +++ b/components/TimeStampCell/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' // import Img from '../../Img' -// import { theme } from '../../../utils' +// import { theme } from '@utils' export const Wrapper = styled.div` display: flex; diff --git a/components/UserBrief/BackgroundList.js b/components/UserBrief/BackgroundList.js index f446f31..d13e9d9 100644 --- a/components/UserBrief/BackgroundList.js +++ b/components/UserBrief/BackgroundList.js @@ -1,7 +1,7 @@ import React from 'react' import R from 'ramda' -import { uid } from '../../utils' +import { uid } from '@utils' import { BackgroundItem, diff --git a/components/UserBrief/BadgeInfo.js b/components/UserBrief/BadgeInfo.js index a2ac637..e15229f 100644 --- a/components/UserBrief/BadgeInfo.js +++ b/components/UserBrief/BadgeInfo.js @@ -1,6 +1,6 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' import { Wrapper, diff --git a/components/UserBrief/DetailView.js b/components/UserBrief/DetailView.js index 5541650..a08e414 100644 --- a/components/UserBrief/DetailView.js +++ b/components/UserBrief/DetailView.js @@ -1,8 +1,8 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' -// import { ICON_CMD } from '../../config' +// import { ICON_CMD } from '@config' // import { Wrapper } from './styles' import { UserDetailDesc, DescLable, DescIconLable, ToggleText } from './styles' import BackgroundList from './BackgroundList' diff --git a/components/UserBrief/DigestView.js b/components/UserBrief/DigestView.js index 8c760d2..b67aee7 100644 --- a/components/UserBrief/DigestView.js +++ b/components/UserBrief/DigestView.js @@ -1,7 +1,7 @@ import React from 'react' import R from 'ramda' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' import { UserDesc, diff --git a/components/UserBrief/Operators.js b/components/UserBrief/Operators.js index a98e85a..689a7ee 100644 --- a/components/UserBrief/Operators.js +++ b/components/UserBrief/Operators.js @@ -1,6 +1,6 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' import { Wrapper, diff --git a/components/UserBrief/SocialIcons.js b/components/UserBrief/SocialIcons.js index 0793fac..72a8034 100644 --- a/components/UserBrief/SocialIcons.js +++ b/components/UserBrief/SocialIcons.js @@ -2,10 +2,10 @@ import React from 'react' import R from 'ramda' import ReactTooltip from 'react-tooltip' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { nilOrEmpty, SOCIAL_LISTS } from '@utils' import { Wrapper, Linker, SocialIcon } from './styles/social_icons' -import { nilOrEmpty, SOCIAL_LISTS } from '../../utils' const tooltipOffset = JSON.stringify({ left: 3 }) diff --git a/components/UserBrief/index.js b/components/UserBrief/index.js index 858a57b..0546acc 100644 --- a/components/UserBrief/index.js +++ b/components/UserBrief/index.js @@ -4,11 +4,12 @@ * */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import Link from 'next/link' -import { DEFAULT_USER_AVATAR } from '../../config' +import { DEFAULT_USER_AVATAR } from '@config' +import { buildLog } from '@utils' import { Wrapper, AvatarWrapper, @@ -25,10 +26,8 @@ import DetailView from './DetailView' import DigestView from './DigestView' import Operators from './Operators' -import { makeDebugger } from '../../utils' - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:UserBrief') +const log = buildLog('c:UserBrief') /* eslint-enable no-unused-vars */ class UserBrief extends React.Component { @@ -101,20 +100,20 @@ class UserBrief extends React.Component { } UserBrief.propTypes = { - user: PropTypes.object.isRequired, - displayStyle: PropTypes.oneOf(['default', 'sidebar']), - viewingType: PropTypes.oneOf(['account', 'user']), - showEdit: PropTypes.bool, - onEdit: PropTypes.func, - onLogout: PropTypes.func, + user: T.object.isRequired, + displayStyle: T.oneOf(['default', 'sidebar']), + viewingType: T.oneOf(['account', 'user']), + showEdit: T.bool, + onEdit: T.func, + onLogout: T.func, } UserBrief.defaultProps = { showEdit: false, displayStyle: 'default', viewingType: 'user', - onEdit: debug, - onLogout: debug, + onEdit: log, + onLogout: log, } export default UserBrief diff --git a/components/UserBrief/styles/badge_info.js b/components/UserBrief/styles/badge_info.js index 93ed87d..40ab027 100644 --- a/components/UserBrief/styles/badge_info.js +++ b/components/UserBrief/styles/badge_info.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme, cs } from '@utils' import Img from '../../Img' -import { theme, cs } from '../../../utils' export const Wrapper = styled.div` ${cs.flexColumn('justify-center')}; diff --git a/components/UserBrief/styles/index.js b/components/UserBrief/styles/index.js index 1c8aaaf..f45614e 100644 --- a/components/UserBrief/styles/index.js +++ b/components/UserBrief/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme, cs } from '@utils' import Img from '../../Img' -import { theme, cs } from '../../../utils' export const Wrapper = styled.div` ${cs.flex()}; diff --git a/components/UserBrief/styles/operators.js b/components/UserBrief/styles/operators.js index 24ea971..a6cf9c3 100644 --- a/components/UserBrief/styles/operators.js +++ b/components/UserBrief/styles/operators.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { cs, theme } from '@utils' import Img from '../../Img' -import { cs, theme } from '../../../utils' export const Wrapper = styled.div` ${cs.flex('align-center')}; diff --git a/components/UserBrief/styles/social_icons.js b/components/UserBrief/styles/social_icons.js index b5d9b4b..e120201 100644 --- a/components/UserBrief/styles/social_icons.js +++ b/components/UserBrief/styles/social_icons.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme, cs } from '@utils' import Img from '../../Img' -import { theme, cs } from '../../../utils' export const Wrapper = styled.div` ${cs.flex()}; diff --git a/components/UserCell/index.js b/components/UserCell/index.js index 47808f1..510c6f5 100644 --- a/components/UserCell/index.js +++ b/components/UserCell/index.js @@ -5,13 +5,13 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { buildLog, cutFrom } from '@utils' import { UserCellWrapper, Avatar, NickName } from './styles' -import { makeDebugger, cutFrom } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:UserCell:index') +const log = buildLog('c:UserCell:index') /* eslint-enable no-unused-vars */ const UserCell = ({ user, align, left, small }) => ( @@ -25,14 +25,14 @@ const UserCell = ({ user, align, left, small }) => ( UserCell.propTypes = { // https://www.npmjs.com/package/prop-types - user: PropTypes.shape({ - id: PropTypes.string, - avatar: PropTypes.string, - nickname: PropTypes.string, + user: T.shape({ + id: T.string, + avatar: T.string, + nickname: T.string, }).isRequired, - align: PropTypes.string, - left: PropTypes.string, - small: PropTypes.bool, + align: T.string, + left: T.string, + small: T.bool, } UserCell.defaultProps = { diff --git a/components/UsersTable/index.js b/components/UsersTable/index.js index fa55dd5..264badd 100644 --- a/components/UsersTable/index.js +++ b/components/UsersTable/index.js @@ -5,23 +5,25 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table } from 'antd' -import Pagi from '../Pagi' -import { TableLoading } from '../LoadingEffects' -import MaybeCell from '../MaybeCell' -import UserCell from '../UserCell' -import TimeStampCell from '../TimeStampCell' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' -import PermissionCell from '../PermissionCell' -import SexCell from '../SexCell' +import Pagi from '@components/Pagi' +import { TableLoading } from '@components/LoadingEffects' +import MaybeCell from '@components/MaybeCell' +import UserCell from '@components/UserCell' +import SocialSell from '@components/SocialSell' +import TimeStampCell from '@components/TimeStampCell' + +import PermissionCell from '@components/PermissionCell' +import SexCell from '@components/SexCell' // import { Wrapper } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:UsersTable:index') +const log = buildLog('c:UsersTable:index') /* eslint-enable no-unused-vars */ class UsersTable extends React.PureComponent { @@ -47,6 +49,27 @@ class UsersTable extends React.PureComponent { return }, }, + { + title: '城市', + dataIndex: 'location', + align: 'left', + width: 120, + render: text => , + }, + { + title: 'email', + dataIndex: 'email', + align: 'left', + width: 150, + render: text => , + }, + { + title: '社交账号', + dataIndex: 'social', + align: 'center', + width: 150, + render: data => , + }, { title: '关注社区', dataIndex: 'subscribedCommunitiesCount', @@ -80,41 +103,6 @@ class UsersTable extends React.PureComponent { ), }, - { - title: 'email', - dataIndex: 'email', - align: 'center', - width: 100, - render: text => , - }, - { - title: 'qq', - dataIndex: 'qq', - align: 'center', - width: 100, - render: text => , - }, - { - title: 'weixin', - dataIndex: 'weixin', - align: 'center', - width: 150, - render: text => , - }, - { - title: 'weibo', - dataIndex: 'weibo', - align: 'center', - width: 100, - render: text => , - }, - { - title: '位置', - dataIndex: 'location', - align: 'center', - width: 220, - render: text => , - }, { title: '时间戳', width: 120, @@ -125,7 +113,9 @@ class UsersTable extends React.PureComponent { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props + + console.log('UsersTable data: ', data) return ( @@ -143,7 +133,7 @@ class UsersTable extends React.PureComponent { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -153,16 +143,16 @@ class UsersTable extends React.PureComponent { } UsersTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, - cmsPermisstionOnChange: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, + cmsPermisstionOnChange: T.func, } UsersTable.defaultProps = { loading: false, - pageChange: debug, - cmsPermisstionOnChange: debug, + pageOnChange: log, + cmsPermisstionOnChange: log, } export default UsersTable diff --git a/components/UsersTable/styles/index.js b/components/UsersTable/styles/index.js index fd21fe5..f981922 100644 --- a/components/UsersTable/styles/index.js +++ b/components/UsersTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' // import Img from '../../Img' -// import { theme } from '../../../utils' +// import { theme } from '@utils' export const Wrapper = styled.div`` export const Title = styled.div`` diff --git a/components/VideosTable/index.js b/components/VideosTable/index.js index 16f2335..c555402 100644 --- a/components/VideosTable/index.js +++ b/components/VideosTable/index.js @@ -5,10 +5,11 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { Table, Button } from 'antd' -import { OperationWrapper } from './styles' +import { TYPE } from '@constant' +import { buildLog, cutFrom } from '@utils' import Pagi from '../Pagi' import { TableLoading } from '../LoadingEffects' @@ -18,10 +19,10 @@ import CommunityCell from '../CommunityCell' import TagsCell from '../TagsCell' import TimeStampCell from '../TimeStampCell' -import { makeDebugger, cutFrom, TYPE } from '../../utils' +import { OperationWrapper } from './styles' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:VideosTable:index') +const log = buildLog('c:VideosTable:index') /* eslint-enable no-unused-vars */ class VideosTable extends React.Component { @@ -157,7 +158,7 @@ class VideosTable extends React.Component { } render() { - const { data, loading, pageChange } = this.props + const { data, loading, pageOnChange } = this.props return ( @@ -175,7 +176,7 @@ class VideosTable extends React.Component { pageNumber={data.pageNumber} pageSize={data.pageSize} totalCount={data.totalCount} - onChange={pageChange} + onChange={pageOnChange} /> ) : null} @@ -185,26 +186,26 @@ class VideosTable extends React.Component { } VideosTable.propTypes = { - data: PropTypes.any.isRequired, - loading: PropTypes.bool, - pageChange: PropTypes.func, - setCommunity: PropTypes.func, - unsetCommunity: PropTypes.func, - unsetTag: PropTypes.func, - setTag: PropTypes.func, - onEdit: PropTypes.func, - onDelete: PropTypes.func, + data: T.any.isRequired, + loading: T.bool, + pageOnChange: T.func, + setCommunity: T.func, + unsetCommunity: T.func, + unsetTag: T.func, + setTag: T.func, + onEdit: T.func, + onDelete: T.func, } VideosTable.defaultProps = { loading: false, - pageChange: debug, - setCommunity: debug, - unsetCommunity: debug, - unsetTag: debug, - setTag: debug, - onEdit: debug, - onDelete: debug, + pageOnChange: log, + setCommunity: log, + unsetCommunity: log, + unsetTag: log, + setTag: log, + onEdit: log, + onDelete: log, } export default React.memo(VideosTable) diff --git a/components/VideosTable/styles/index.js b/components/VideosTable/styles/index.js index 7931645..7b3d87a 100644 --- a/components/VideosTable/styles/index.js +++ b/components/VideosTable/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' +import { theme } from '@utils' import { Img } from '../..' -import { theme } from '../../../utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/config/endpoint.js b/config/endpoint.js index a85f087..6845598 100644 --- a/config/endpoint.js +++ b/config/endpoint.js @@ -16,8 +16,8 @@ const getGraphQLEndpoint = () => { /* return 'http://devapi.coderplanets.com' */ default: - /* return 'https://api.coderplanets.com/graphiql' */ - return 'http://localhost:4001/graphiql' + return 'https://api.coderplanets.com/graphiql' + /* return 'http://localhost:4001/graphiql' */ } } diff --git a/config/general.js b/config/general.js index 7c70b2c..bf73043 100644 --- a/config/general.js +++ b/config/general.js @@ -34,6 +34,7 @@ export const TAG_COLORS = [ 'yellowgreen', 'brown', 'grey', + 'cadetblue', ] export const TAG_COLOR_ORDER = { diff --git a/containers/AccountEditor/index.js b/containers/AccountEditor/index.js index bd63689..3c50b39 100644 --- a/containers/AccountEditor/index.js +++ b/containers/AccountEditor/index.js @@ -5,13 +5,11 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -import { ICON_CMD } from '../../config' -// import Link from 'next/link' - -import { Input, Button, Icon, StatusBox } from '../../components' +import { ICON_CMD } from '@config' +import { buildLog, connectStore } from '@utils' +import { Input, Button, Icon, StatusBox } from '@components' import { Wrapper, BackIcon, @@ -29,11 +27,16 @@ import { GirlIcon, } from './styles' -import { makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { + useInit, + sexChange, + profileChange, + cancleEdit, + updateConfirm, +} from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:AccountEditor') +const log = buildLog('C:AccountEditor') /* eslint-enable no-unused-vars */ const { TextArea } = Input @@ -48,10 +51,10 @@ const SexItem = ({ label, value }) => ( {label} - + - + @@ -77,111 +80,97 @@ const FormItem = ({ label, textarea, value, onChange }) => ( ) -class AccountEditorContainer extends React.Component { - componentDidMount() { - const { accountEditor } = this.props - logic.init(accountEditor) - } - - render() { - const { accountEditor } = this.props - - const { - accountInfo, - updating, - success, - error, - warn, - statusMsg, - } = accountEditor - - /* debug('accountInfo editing->: ', accountInfo) */ - - return ( - - {/* eslint-disable */} -
- -
- {/* eslint-enable */} - - - - - - - - - - - - -
- - - - - +        + {updating ? ( + -        - {updating ? ( - - ) : ( - - )} - -
- ) - } + ) : ( + + )} + +
+ ) } -export default inject(storePlug('accountEditor'))( - observer(AccountEditorContainer) -) +export default connectStore(AccountEditorContainer) diff --git a/containers/AccountEditor/logic.js b/containers/AccountEditor/logic.js index f642022..a0f98a2 100644 --- a/containers/AccountEditor/logic.js +++ b/containers/AccountEditor/logic.js @@ -1,29 +1,23 @@ import R from 'ramda' +import { useEffect } from 'react' + +import { EVENT, ERR, TYPE } from '@constant' +import { asyncSuit, buildLog, send, meteorState } from '@utils' -import { - asyncRes, - asyncErr, - makeDebugger, - $solver, - dispatchEvent, - EVENT, - ERR, - TYPE, - meteorState, -} from '../../utils' import S from './schema' -import SR71 from '../../utils/network/sr71' +const { SR71, $solver, asyncRes, asyncErr } = asyncSuit const sr71$ = new SR71() /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:AccountEditor') +const log = buildLog('L:AccountEditor') /* eslint-enable no-unused-vars */ let store = null +let sub$ = null export function goBack() { - dispatchEvent(EVENT.PREVIEW, { + send(EVENT.PREVIEW, { type: TYPE.PREVIEW_ACCOUNT_VIEW, }) } @@ -62,8 +56,8 @@ export const updateConfirm = () => { // TODO: 只去除 null 的即可,如果为空也是合法的 const editing = pickUpdatable(store.accountInfo) const origin = pickUpdatable(store.accountOrigin) - /* debug('editing: ', editing) */ - /* debug('origin: ', origin) */ + /* log('editing: ', editing) */ + /* log('origin: ', origin) */ // TODO: 唯一的限制是 昵称不能为空 if (R.equals(editing, origin)) { @@ -71,13 +65,13 @@ export const updateConfirm = () => { return false } - store.markState({ updating: true }) + store.mark({ updating: true }) sr71$.mutate(S.updateProfile, { profile: editing }) /* setTimeout(() => { - store.markState({ + store.mark({ updating: false, }) meteorState(store, 'error', 5, '自定义错误') @@ -86,7 +80,7 @@ export const updateConfirm = () => { } export function cancleEdit() { - dispatchEvent(EVENT.PREVIEW_CLOSE) + send(EVENT.PREVIEW_CLOSE) } export function updateDone() { @@ -94,7 +88,7 @@ export function updateDone() { store.updateOrign(editing) } -const cancleLoading = () => store.markState({ updating: false }) +const cancleLoading = () => store.mark({ updating: false }) const DataSolver = [ { @@ -120,21 +114,36 @@ const ErrSolver = [ { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) cancleLoading() }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) cancleLoading() }, }, ] -export function init(selectedStore) { - store = selectedStore - store.copyAccountInfo() - sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + // log('effect init') + store.copyAccountInfo() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (sub$) { + sub$.unsubscribe() + } + } + }, + [_store] + ) } diff --git a/containers/AccountEditor/store.js b/containers/AccountEditor/store.js index b20348e..61e9789 100644 --- a/containers/AccountEditor/store.js +++ b/containers/AccountEditor/store.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { markStates, makeDebugger, stripMobx } from '../../utils' -import { User } from '../../stores/SharedModel' +import { User } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:AccountEditorStore') +const log = buildLog('S:AccountEditorStore') /* eslint-enable no-unused-vars */ const AccountEditorStore = t @@ -53,10 +53,10 @@ const AccountEditorStore = t updateUser(sobj) { const user = R.merge(self.user, { ...sobj }) - self.markState({ user }) + self.mark({ user }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/AccountEditor/styles/index.js b/containers/AccountEditor/styles/index.js index 4690ad8..f1a6720 100644 --- a/containers/AccountEditor/styles/index.js +++ b/containers/AccountEditor/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { animate } from '../../../utils' +import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` padding-top: 20px; diff --git a/containers/AccountViewer/ContributeMap.js b/containers/AccountViewer/ContributeMap.js index e7a185e..7a6d15e 100644 --- a/containers/AccountViewer/ContributeMap.js +++ b/containers/AccountViewer/ContributeMap.js @@ -10,6 +10,7 @@ import CalendarHeatmap from 'react-calendar-heatmap' import ReactTooltip from 'react-tooltip' // import R from 'ramda' +import { buildLog } from '@utils' import { Wrapper, TitleWrapper, @@ -21,9 +22,7 @@ import { DotList, } from './styles/contribute_map' -import { makeDebugger } from '../../utils' - -const debug = makeDebugger('C:Comments') +const log = buildLog('C:Comments') const customTooltipDataAttrs = value => ({ 'data-tip': value.date === null ? '' : `${value.count} 次 (${value.date})`, @@ -93,7 +92,7 @@ const ContributeMap = ({ data }) => { startDate={data.startDate} endDate={data.endDate} showMonthLabels - onClick={value => debug(value)} + onClick={value => log(value)} gutterSize={3} tooltipDataAttrs={customTooltipDataAttrs} monthLabels={monthLabels} diff --git a/containers/AccountViewer/NumSection.js b/containers/AccountViewer/NumSection.js index a974131..069e731 100644 --- a/containers/AccountViewer/NumSection.js +++ b/containers/AccountViewer/NumSection.js @@ -1,10 +1,9 @@ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' +import { prettyNum } from '@utils' import { Wrapper, Title, Number } from './styles/num_section' -import { prettyNum } from '../../utils' - const NumSection = ({ title, num }) => ( {title} @@ -13,8 +12,8 @@ const NumSection = ({ title, num }) => ( ) NumSection.propTypes = { - title: PropTypes.string.isRequired, - num: PropTypes.number.isRequired, + title: T.string.isRequired, + num: T.number.isRequired, } NumSection.defaultProps = {} diff --git a/containers/AccountViewer/Planets.js b/containers/AccountViewer/Planets.js index 6ef61e7..b819df7 100644 --- a/containers/AccountViewer/Planets.js +++ b/containers/AccountViewer/Planets.js @@ -2,6 +2,7 @@ import React from 'react' import ReactTooltip from 'react-tooltip' import R from 'ramda' +import { sortByIndex } from '@utils' import { Wrapper, HeaderWrapper, @@ -11,8 +12,6 @@ import { PlanetsIcon, } from './styles/planets' -import { sortByIndex } from '../../utils' - const tooltipOffset = JSON.stringify({ top: 10, left: 5 }) const Planets = ({ subscribedCommunities, viewingType }) => { if (!subscribedCommunities) return null diff --git a/containers/AccountViewer/SiteSocial.js b/containers/AccountViewer/SiteSocial.js index 499f906..5a3d052 100644 --- a/containers/AccountViewer/SiteSocial.js +++ b/containers/AccountViewer/SiteSocial.js @@ -1,8 +1,8 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { FocusLine } from '@components' +import { ICON_CMD } from '@config' -import { FocusLine } from '../../components' import NumSection from './NumSection' import { Wrapper, diff --git a/containers/AccountViewer/UserHeader.js b/containers/AccountViewer/UserHeader.js index 7552152..07e1472 100644 --- a/containers/AccountViewer/UserHeader.js +++ b/containers/AccountViewer/UserHeader.js @@ -1,8 +1,9 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { A, Button, Icon } from '../../components' +import { A, Button, Icon } from '@components' +import { ICON_CMD } from '@config' +import { uid } from '@utils' import { UserWrapper, UserInfo, @@ -15,8 +16,6 @@ import { EditIcon, } from './styles/user_header' -import { uid } from '../../utils' - const tooltipOffset = JSON.stringify({ top: 5, left: 3 }) const SocalIcons = ({ accountInfo: { githubProfile } }) => ( diff --git a/containers/AccountViewer/index.js b/containers/AccountViewer/index.js index 2f0a7ae..e0a63b6 100644 --- a/containers/AccountViewer/index.js +++ b/containers/AccountViewer/index.js @@ -5,103 +5,82 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' import R from 'ramda' import ReactTooltip from 'react-tooltip' -import { ThemeSelector, UserBrief, Maybe } from '../../components' +import { buildLog, connectStore } from '@utils' +import { ThemeSelector, UserBrief, Maybe } from '@components' import SiteSocial from './SiteSocial' import Planets from './Planets' import ContributeMap from './ContributeMap' - import { AccountWrapper, AccountContent, ThemeWrapper, Divider } from './styles' -import { makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, changeTheme, editProfile, onLogout } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:AccountViewer') +const log = buildLog('C:AccountViewer') /* eslint-enable no-unused-vars */ const ThemeSection = ({ curTheme }) => ( - + ) -class AccountViewerContainer extends React.Component { - componentDidMount() { - const { accountViewer, user } = this.props - logic.init(accountViewer, user) - - /* force rebuild the tooltip, otherwise it won't work in some async cases */ - /* if you want to custom see: */ - /* https://github.com/wwayne/react-tooltip/blob/2364dc61332aa947b106dd4bbdd1f2b0e4b1e51d/src/index.scss */ - setTimeout(() => { - ReactTooltip.rebuild() - }, 2000) - } - - componentWillUnmount() { - logic.uninit() - } - - render() { - const { accountViewer } = this.props - const { - curTheme, - viewingType, - userInfoData, - subscribedCommunities, - } = accountViewer - - const { contributes } = userInfoData // accountInfo - - return ( - - {R.isEmpty(userInfoData.id) ? null : ( - - - - - - - - - - - - - - - - - - - +const AccountViewerContainer = ({ accountViewer, user }) => { + useInit(accountViewer, user) + + const { + curTheme, + viewingType, + userInfoData, + subscribedCommunities, + } = accountViewer + + const { contributes } = userInfoData // accountInfo + + return ( + + {R.isEmpty(userInfoData.id) ? null : ( + + + + + + + + - - + + - - )} - - ) - } + + + + + + + + + + + + + )} + + ) } -export default inject(storePlug('accountViewer'))( - observer(AccountViewerContainer) -) +export default connectStore(AccountViewerContainer) diff --git a/containers/AccountViewer/logic.js b/containers/AccountViewer/logic.js index 51573fd..fdea954 100644 --- a/containers/AccountViewer/logic.js +++ b/containers/AccountViewer/logic.js @@ -1,25 +1,18 @@ // import R from 'ramda' -import { - asyncRes, - asyncErr, - makeDebugger, - $solver, - ERR, - dispatchEvent, - EVENT, - TYPE, - Global, -} from '../../utils' - -import SR71 from '../../utils/network/sr71' +import { useEffect } from 'react' + +import { EVENT, ERR, TYPE } from '@constant' +import { asyncSuit, buildLog, send, Global } from '@utils' + import S from './schema' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:AccountViewer') +const log = buildLog('L:AccountViewer') /* eslint-enable no-unused-vars */ +const { SR71, $solver, asyncRes, asyncErr } = asyncSuit const sr71$ = new SR71({ - resv_event: [EVENT.LOGIN], + recieve: [EVENT.LOGIN], }) let store = null @@ -28,19 +21,19 @@ let sub$ = null export const loadAccount = () => { markLoading(true) - store.markState({ viewingType: 'account' }) + store.mark({ viewingType: 'account' }) return sr71$.query(S.user, {}) } export const loadUser = user => { - store.markState({ viewingType: 'user', viewingUser: user }) + store.mark({ viewingType: 'user', viewingUser: user }) sr71$.query(S.user, { login: user.login }) } export const changeTheme = name => store.changeTheme(name) export const editProfile = () => - dispatchEvent(EVENT.PREVIEW_OPEN, { type: TYPE.PREVIEW_ACCOUNT_EDIT }) + send(EVENT.PREVIEW_OPEN, { type: TYPE.PREVIEW_ACCOUNT_EDIT }) export const onLogout = () => { store.logout() @@ -48,10 +41,10 @@ export const onLogout = () => { setTimeout(() => { Global.location.reload(false) }, 2000) - // dispatchEvent(EVENT.LOGOUT) + // send(EVENT.LOGOUT) } -const markLoading = (maybe = true) => store.markState({ loading: maybe }) +const markLoading = (maybe = true) => store.mark({ loading: maybe }) // ############################### // Data & Error handlers @@ -62,7 +55,7 @@ const DataSolver = [ action: ({ user }) => { markLoading(false) if (store.viewingType === 'user') { - return store.markState({ viewingUser: user }) + return store.mark({ viewingUser: user }) } return store.updateAccount(user) }, @@ -77,21 +70,21 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) markLoading(false) }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) markLoading(false) }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) markLoading(false) }, }, @@ -102,18 +95,25 @@ export const loadUserInfo = user => { loadAccount() } -export function init(_store, user) { - store = _store - - if (sub$) return loadUserInfo(user) - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - - return loadUserInfo(user) -} - -export function uninit() { - if (store.loading || !sub$) return false - debug('===== do uninit') - sub$.unsubscribe() - sub$ = null +// ############################### +// init & uninit +// ############################### +export const useInit = (_store, user) => { + useEffect( + () => { + store = _store + if (sub$) return loadUserInfo(user) + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + loadUserInfo(user) + + return () => { + if (store.loading || !sub$) return false + log('===== do uninit') + sub$.unsubscribe() + sub$ = null + } + }, + [_store, user] + ) } diff --git a/containers/AccountViewer/store.js b/containers/AccountViewer/store.js index f3382cb..60645ee 100644 --- a/containers/AccountViewer/store.js +++ b/containers/AccountViewer/store.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { User, EmptyUser } from '../../stores/SharedModel' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { User, EmptyUser } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:AccountViewerStore') +const log = buildLog('S:AccountViewerStore') /* eslint-enable no-unused-vars */ const AccountViewerStore = t @@ -55,7 +55,7 @@ const AccountViewerStore = t updateAccount(data) { self.root.account.updateAccount(data) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/AccountViewer/styles/contribute_map.js b/containers/AccountViewer/styles/contribute_map.js index 31e86b4..ec4a401 100644 --- a/containers/AccountViewer/styles/contribute_map.js +++ b/containers/AccountViewer/styles/contribute_map.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme, cs } from '../../../utils' +import { theme, cs } from '@utils' export const Wrapper = styled.div`` diff --git a/containers/AccountViewer/styles/index.js b/containers/AccountViewer/styles/index.js index 62446b2..fc324b7 100644 --- a/containers/AccountViewer/styles/index.js +++ b/containers/AccountViewer/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme, cs } from '../../../utils' +import { theme, cs } from '@utils' export const AccountWrapper = styled.div` ${cs.flexColumn()}; diff --git a/containers/AccountViewer/styles/num_section.js b/containers/AccountViewer/styles/num_section.js index e2393f6..080a3fb 100644 --- a/containers/AccountViewer/styles/num_section.js +++ b/containers/AccountViewer/styles/num_section.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { theme, cs } from '../../../utils' +import { theme, cs } from '@utils' export const Wrapper = styled.div` ${cs.flexColumn('justify-center')}; diff --git a/containers/AccountViewer/styles/planets.js b/containers/AccountViewer/styles/planets.js index 505611a..96e4be9 100644 --- a/containers/AccountViewer/styles/planets.js +++ b/containers/AccountViewer/styles/planets.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' +import Img from '@components/Img' +import { theme, cs } from '@utils' export const Wrapper = styled.div`` diff --git a/containers/AccountViewer/styles/site_social.js b/containers/AccountViewer/styles/site_social.js index 67fc339..a1614de 100644 --- a/containers/AccountViewer/styles/site_social.js +++ b/containers/AccountViewer/styles/site_social.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme, cs } from '../../../utils' +import { theme, cs } from '@utils' export const Wrapper = styled.div` ${cs.flex()}; diff --git a/containers/AccountViewer/styles/user_header.js b/containers/AccountViewer/styles/user_header.js index a2ee6ed..a818218 100644 --- a/containers/AccountViewer/styles/user_header.js +++ b/containers/AccountViewer/styles/user_header.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { Img } from '../../../components' +import { Img } from '@components' export const UserWrapper = styled.div` display: flex; diff --git a/containers/ApiLayout/index.js b/containers/ApiLayout/index.js index 5fe022a..d9716e7 100644 --- a/containers/ApiLayout/index.js +++ b/containers/ApiLayout/index.js @@ -5,17 +5,17 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { inject, observer } from 'mobx-react' // import Link from 'next/link' -import { makeDebugger, storePlug } from '../../utils' +import { buildLog, storePlug } from '@utils' import Wrapper from './styles' import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:ApiLayout') +const log = buildLog('C:ApiLayout') /* eslint-enable no-unused-vars */ class ApiLayoutContainer extends React.Component { @@ -31,8 +31,8 @@ class ApiLayoutContainer extends React.Component { } ApiLayoutContainer.propTypes = { - children: PropTypes.arrayOf(PropTypes.element), - apiLayout: PropTypes.object.isRequired, + children: T.arrayOf(T.element), + apiLayout: T.object.isRequired, } ApiLayoutContainer.defaultProps = { diff --git a/containers/ApiLayout/logic.js b/containers/ApiLayout/logic.js index 5baf2ca..e31d0e8 100644 --- a/containers/ApiLayout/logic.js +++ b/containers/ApiLayout/logic.js @@ -1,9 +1,9 @@ // import R from 'ramda' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:ApiLayout') +const log = buildLog('L:ApiLayout') /* eslint-enable no-unused-vars */ let apiLayout = null @@ -11,6 +11,6 @@ let apiLayout = null export function someMethod() {} export function init(selectedStore) { - debug(apiLayout) + log(apiLayout) apiLayout = selectedStore } diff --git a/containers/ApiLayout/styles/index.js b/containers/ApiLayout/styles/index.js index 6aa659c..8ad1ce9 100644 --- a/containers/ApiLayout/styles/index.js +++ b/containers/ApiLayout/styles/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' const Wrapper = styled.div` position: relative; diff --git a/containers/ArticleViwer/PostViewer.js b/containers/ArticleViwer/PostViewer.js index 293952f..a65747d 100644 --- a/containers/ArticleViwer/PostViewer.js +++ b/containers/ArticleViwer/PostViewer.js @@ -1,10 +1,11 @@ import React from 'react' import TimeAgo from 'timeago-react' -// import CommentsList from '../../components/CommentsList' -import Comments from '../Comments' -import { MarkDownPreviewer, PostLoading } from '../../components' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { TYPE } from '@constant' +import { MarkDownPreviewer, PostLoading } from '@components' + +import Comments from '../Comments' import { PreviewHeaderWrapper, @@ -35,8 +36,6 @@ import { CommentsWrapper, } from './styles/body' -import { TYPE } from '../../utils' - // Preview headerpost // TODO: extract a Avatar component /* diff --git a/containers/ArticleViwer/index.js b/containers/ArticleViwer/index.js index 966a9e7..ea5e833 100644 --- a/containers/ArticleViwer/index.js +++ b/containers/ArticleViwer/index.js @@ -5,22 +5,19 @@ */ import React from 'react' -import PropTypes from 'prop-types' -import { inject, observer } from 'mobx-react' - -// import Link from 'next/link' +import T from 'prop-types' +import { buildLog, connectStore } from '@utils' import PostViewer from './PostViewer' -import { makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, onReaction } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:ArticleViwer') +const log = buildLog('C:ArticleViwer') /* eslint-enable no-unused-vars */ const Viwer = ({ type, data, loading, onReaction }) => { - // debug('Viwer data: ', data) + // log('Viwer data: ', data) switch (type) { case 'post': { return ( @@ -39,42 +36,32 @@ const Viwer = ({ type, data, loading, onReaction }) => { } } -class ArticleViwerContainer extends React.Component { - componentDidMount() { - const { articleViwer } = this.props - logic.init(articleViwer) - } +const ArticleViwerContainer = ({ articleViwer, type }) => { + useInit(articleViwer) - render() { - const { type, articleViwer } = this.props - const { curPost, postLoading } = articleViwer + const { curPost, postLoading } = articleViwer - return ( -
- -
- ) - } + return ( +
+ +
+ ) } ArticleViwerContainer.propTypes = { // https://www.npmjs.com/package/prop-types - articleViwer: PropTypes.object.isRequired, - type: PropTypes.oneOf(['post', 'tut', 'job']), - // onReaction: PropTypes.func.isRequired, + articleViwer: T.object.isRequired, + type: T.oneOf(['post', 'tut', 'job']), + // onReaction: T.func.isRequired, } ArticleViwerContainer.defaultProps = { type: 'post', } -// ArticleViwerContainer - -export default inject(storePlug('articleViwer'))( - observer(ArticleViwerContainer) -) +export default connectStore(ArticleViwerContainer) diff --git a/containers/ArticleViwer/logic.js b/containers/ArticleViwer/logic.js index 88b42fa..fffe7ed 100644 --- a/containers/ArticleViwer/logic.js +++ b/containers/ArticleViwer/logic.js @@ -1,17 +1,20 @@ import R from 'ramda' +import { useEffect } from 'react' -import SR71 from '../../utils/network/sr71' -import S from './schema' -import { asyncRes, makeDebugger, EVENT, TYPE } from '../../utils' +import { EVENT, TYPE } from '@constant' +import { asyncSuit, buildLog } from '@utils' -const sr71$ = new SR71({ - resv_event: [EVENT.PREVIEW_POST, EVENT.PREVIEW_CLOSED], -}) +import S from './schema' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:ArticleViwer') +const log = buildLog('L:ArticleViwer') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes } = asyncSuit +const sr71$ = new SR71({ + recieve: [EVENT.PREVIEW_POST, EVENT.PREVIEW_CLOSED], +}) + let store = null let sub$ = null @@ -27,7 +30,7 @@ export function onReaction(type, action, isUndo, data) { } function loading(maybe = true) { - store.markState({ postLoading: maybe }) + store.mark({ postLoading: maybe }) } function queryPost(data) { @@ -35,7 +38,7 @@ function queryPost(data) { id: data.id, userHasLogin: false, } - debug('--> queryPost make loading') + log('--> queryPost make loading') loading() sr71$.query(S.post, variables) } @@ -52,7 +55,7 @@ const dataResolver = [ match: asyncRes(EVENT.PREVIEW_POST), action: res => { const info = res[EVENT.PREVIEW_POST] - /* debug('EVENT.PREVIEW_POST: ', res[EVENT.PREVIEW_POST]) */ + /* log('EVENT.PREVIEW_POST: ', res[EVENT.PREVIEW_POST]) */ if (info.type === TYPE.POST) { store.load(TYPE.POST, res[EVENT.PREVIEW_POST].data) loading() @@ -64,9 +67,9 @@ const dataResolver = [ match: asyncRes(TYPE.REACTION), action: res => { // TODO: should be trigger - debug('reaction ', res) + log('reaction ', res) const info = res[TYPE.REACTION] - debug('hello? queryPost', info) + log('hello? queryPost', info) reloadReactions(info) }, @@ -74,7 +77,7 @@ const dataResolver = [ { match: asyncRes(TYPE.UNDO_REACTION), action: res => { - debug('undoReaction ', res) + log('undoReaction ', res) const info = res[TYPE.UNDO_REACTION] reloadReactions(info) }, @@ -100,20 +103,32 @@ const dataResolver = [ const handleData = res => { // TODO: handle Error if (res.error) { - debug('handleData error ----> : ', res) + log('handleData error ----> : ', res) } for (let i = 0; i < dataResolver.length; i += 1) { if (dataResolver[i].match(res)) { return dataResolver[i].action(res) } } - debug('handleData unhandle: ', res) + log('handleData unhandle: ', res) } -export function init(selectedStore) { - store = selectedStore - debug(store) - if (sub$) sub$.unsubscribe() +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + + sub$ = sr71$.data().subscribe(handleData) - sub$ = sr71$.data().subscribe(handleData) + return () => { + if (sub$) sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/ArticleViwer/store.js b/containers/ArticleViwer/store.js index 4b2c6dc..f8b3f2b 100644 --- a/containers/ArticleViwer/store.js +++ b/containers/ArticleViwer/store.js @@ -6,9 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { markStates, makeDebugger, TYPE } from '../../utils' +import { TYPE } from '@constant' +import { markStates, buildLog } from '@utils' + /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ArticleViwerStore') +const log = buildLog('S:ArticleViwerStore') /* eslint-enable no-unused-vars */ const Post = t.model('Post', { @@ -52,12 +54,12 @@ const ArticleViwerStore = t .actions(self => ({ load(upperType, data) { const type = R.toLower(upperType) - self.markState({ + self.mark({ type: upperType, [type]: R.merge(self[type], data), }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/ArticleViwer/styles/body.js b/containers/ArticleViwer/styles/body.js index f5b39bc..ca8e0c0 100644 --- a/containers/ArticleViwer/styles/body.js +++ b/containers/ArticleViwer/styles/body.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { theme } from '../../../utils' +import { Img } from '@components' +import { theme } from '@utils' export const BodyWrapper = styled.div` padding: 20px; diff --git a/containers/ArticleViwer/styles/header.js b/containers/ArticleViwer/styles/header.js index 0d724c6..a9a317c 100644 --- a/containers/ArticleViwer/styles/header.js +++ b/containers/ArticleViwer/styles/header.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { theme } from '../../../utils' +import { Img } from '@components' +import { theme } from '@utils' export const Divider = styled.span` margin: 0 8px; diff --git a/containers/Banner/index.js b/containers/Banner/index.js index 432bb52..2788201 100644 --- a/containers/Banner/index.js +++ b/containers/Banner/index.js @@ -5,19 +5,18 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' +import { ROUTE } from '@constant' +import { buildLog, connectStore } from '@utils' import CommunityBanner from '../CommunityBanner' import CommunitiesBanner from '../CommunitiesBanner' import UsersBanner from '../UsersBanner' -import { makeDebugger, storePlug, ROUTE } from '../../utils' -import * as logic from './logic' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Banner') +const log = buildLog('C:Banner') /* eslint-enable no-unused-vars */ const DomainBanner = ({ curRoute }) => { @@ -38,18 +37,11 @@ const DomainBanner = ({ curRoute }) => { NOTE: this container is only used for dev mode for some unkown reasion, pages/index will always be the entry in dev mode */ -class BannerContainer extends React.Component { - componentDidMount() { - const { banner } = this.props - logic.init(banner) - } - - render() { - const { banner } = this.props - const { curRoute } = banner +const BannerContainer = ({ banner }) => { + useInit(banner) + const { curRoute } = banner - return - } + return } -export default inject(storePlug('banner'))(observer(BannerContainer)) +export default connectStore(BannerContainer) diff --git a/containers/Banner/logic.js b/containers/Banner/logic.js index 591ea5e..d4be680 100644 --- a/containers/Banner/logic.js +++ b/containers/Banner/logic.js @@ -1,15 +1,16 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { makeDebugger, $solver } from '../../utils' -import SR71 from '../../utils/network/sr71' - -const sr71$ = new SR71() -let sub$ = null +import { asyncSuit, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Banner') +const log = buildLog('L:Banner') /* eslint-enable no-unused-vars */ +const { SR71, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export function someMethod() {} @@ -21,9 +22,23 @@ export function someMethod() {} const DataSolver = [] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - debug(store) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + log(store) + + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (sub$) sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/Banner/store.js b/containers/Banner/store.js index 4621186..ffd8fc6 100644 --- a/containers/Banner/store.js +++ b/containers/Banner/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:BannerStore') +const log = buildLog('S:BannerStore') /* eslint-enable no-unused-vars */ const BannerStore = t @@ -22,7 +22,7 @@ const BannerStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, loadCurCommunity(data) { diff --git a/containers/BodyLayout/index.js b/containers/BodyLayout/index.js index f5936f3..7cd8b39 100644 --- a/containers/BodyLayout/index.js +++ b/containers/BodyLayout/index.js @@ -5,13 +5,10 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { inject, observer } from 'mobx-react' -import keydown from 'react-keydown' -// import Link from 'next/link' - -import { storePlug } from '../../utils' +import { storePlug } from '@utils' import Body from './styles' import * as logic from './logic' @@ -22,14 +19,6 @@ class BodyLayoutContainer extends React.Component { logic.init(bodylayout) } - /* eslint-disable class-methods-use-this */ - @keydown(['ctrl+p']) - openDoraemon() { - // debug('openDoraemon') - logic.openDoraemon() - } - /* eslint-enable class-methods-use-this */ - render() { const { bodylayout, children } = this.props const { sidebarPin } = bodylayout @@ -39,8 +28,8 @@ class BodyLayoutContainer extends React.Component { } BodyLayoutContainer.propTypes = { - children: PropTypes.arrayOf(PropTypes.element), - bodylayout: PropTypes.object.isRequired, + children: T.arrayOf(T.element), + bodylayout: T.object.isRequired, } BodyLayoutContainer.defaultProps = { diff --git a/containers/BodyLayout/logic.js b/containers/BodyLayout/logic.js index 9577d56..7f33b1c 100644 --- a/containers/BodyLayout/logic.js +++ b/containers/BodyLayout/logic.js @@ -1,15 +1,14 @@ -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:BodyLayout') +const log = buildLog('L:BodyLayout') /* eslint-enable no-unused-vars */ -let bodylayout = null +let store = null -export function openDoraemon() { - bodylayout.openDoraemon() +export function init(_store) { + store = _store + log(store) } -export function init(selectedStore) { - bodylayout = selectedStore -} +export const holder = 1 diff --git a/containers/BodyLayout/styles/index.js b/containers/BodyLayout/styles/index.js index e88d266..1fd9d46 100644 --- a/containers/BodyLayout/styles/index.js +++ b/containers/BodyLayout/styles/index.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' // transition: background-color 0.2s; const Body = styled.div` diff --git a/containers/CategoryEditor/index.js b/containers/CategoryEditor/index.js index efdb8e8..9691f9d 100644 --- a/containers/CategoryEditor/index.js +++ b/containers/CategoryEditor/index.js @@ -5,84 +5,60 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' - -import { makeDebugger, storePlug } from '../../utils' - -import { - Button, - Icon, - Space, - FormInputer, - /* FormSelector, */ - /* TagColorSelector, */ -} from '../../components' +import { buildLog, connectStore } from '@utils' +import { Button, Icon, Space, FormInputer } from '@components' import { Wrapper, ActionBtns, Divider } from './styles' -import * as logic from './logic' +import { useInit, profileChange, cancleMutate, mutateConfirm } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CategoryEditor') +const log = buildLog('C:CategoryEditor') /* eslint-enable no-unused-vars */ -class CategoryEditorContainer extends React.Component { - componentDidMount() { - const { categoryEditor, editData } = this.props - - logic.init(categoryEditor, editData) - } +const CategoryEditorContainer = ({ categoryEditor, editData }) => { + useInit(categoryEditor, editData) - componentWillUnmount() { - logic.uninit() - } + const { mutating, categoryData, isEdit } = categoryEditor - render() { - const { categoryEditor } = this.props - const { mutating, categoryData, isEdit } = categoryEditor - - return ( - - coderplanets -

- {isEdit ? '编辑' : '创建'} - 社区分类 -

- - - - - - + + {mutating ? ( + + ) : ( + - - {mutating ? ( - - ) : ( - - )} - -
- ) - } + )} + +
+ ) } -export default inject(storePlug('categoryEditor'))( - observer(CategoryEditorContainer) -) +export default connectStore(CategoryEditorContainer) diff --git a/containers/CategoryEditor/logic.js b/containers/CategoryEditor/logic.js index 48d564e..8e7230e 100644 --- a/containers/CategoryEditor/logic.js +++ b/containers/CategoryEditor/logic.js @@ -1,23 +1,19 @@ import R from 'ramda' +import { useEffect } from 'react' -import { - asyncRes, - TYPE, - makeDebugger, - closePreviewer, - $solver, - cast, -} from '../../utils' -import S from './schema' -import SR71 from '../../utils/network/sr71' +import { TYPE } from '@constant' +import { asyncSuit, buildLog, closePreviewer, cast } from '@utils' -const sr71$ = new SR71() -let sub$ = null +import S from './schema' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CategoryEditor') +const log = buildLog('L:CategoryEditor') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export const profileChange = R.curry((thread, e) => @@ -30,7 +26,7 @@ export const mutateConfirm = () => { const requiredArgs = ['title', 'raw'] const args = { ...store.categoryData } - store.markState({ mutating: true }) + store.mark({ mutating: true }) const fargs = cast(requiredArgs, args) if (store.isEdit) { @@ -41,7 +37,7 @@ export const mutateConfirm = () => { } export function cancleMutate() { - store.markState({ + store.mark({ category: {}, isEdit: false, }) @@ -49,7 +45,7 @@ export function cancleMutate() { } const initEditData = editData => - store.markState({ category: editData, isEdit: true }) + store.mark({ category: editData, isEdit: true }) // ############################### // Data & Error handlers @@ -67,16 +63,24 @@ const DataSolver = [ const ErrSolver = [] -export function init(selectedStore, editData) { - store = selectedStore - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - - if (editData) { - initEditData(editData) - } -} +// ############################### +// init & uninit +// ############################### +export const useInit = (_store, editData) => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + if (editData) { + initEditData(editData) + } -export function uninit() { - cancleMutate() + return () => { + if (sub$) sub$.unsubscribe() + cancleMutate() + } + }, + [_store, editData] + ) } diff --git a/containers/CategoryEditor/store.js b/containers/CategoryEditor/store.js index 48ceea6..80c718b 100644 --- a/containers/CategoryEditor/store.js +++ b/containers/CategoryEditor/store.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { Category } from '../../stores/SharedModel' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { Category } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CategoryEditorStore') +const log = buildLog('S:CategoryEditorStore') /* eslint-enable no-unused-vars */ const CategoryEditorStore = t @@ -34,9 +34,9 @@ const CategoryEditorStore = t .actions(self => ({ updateCategory(sobj) { const category = R.merge(self.category, { ...sobj }) - self.markState({ category }) + self.mark({ category }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CategoryEditor/styles/index.js b/containers/CategoryEditor/styles/index.js index aa034cb..8516411 100644 --- a/containers/CategoryEditor/styles/index.js +++ b/containers/CategoryEditor/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import { Img } from '../../../components' -import { animate } from '../../../utils' +// import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/CategorySetter/index.js b/containers/CategorySetter/index.js index 504c4a5..b5e78f4 100644 --- a/containers/CategorySetter/index.js +++ b/containers/CategorySetter/index.js @@ -5,16 +5,15 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' import R from 'ramda' +import { uid, buildLog, connectStore } from '@utils' import { Wrapper, Divider, CategoryWrapper, CategoryTag } from './styles' -import { uid, makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, onAdd } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CategorySetter') +const log = buildLog('C:CategorySetter') /* eslint-enable no-unused-vars */ const CategoriesList = ({ communityId, categories, selectedids }) => ( @@ -23,7 +22,7 @@ const CategoriesList = ({ communityId, categories, selectedids }) => ( {c.title} @@ -31,36 +30,28 @@ const CategoriesList = ({ communityId, categories, selectedids }) => ( ) -class CategorySetterContainer extends React.Component { - componentDidMount() { - const { categorySetter } = this.props - logic.init(categorySetter) - } - - render() { - /* const mutating = false */ - const { categorySetter, editData } = this.props - const { pagedCategories } = categorySetter - - const selectedids = R.pluck('id', editData.categories) - - return ( - - coderplanets -

设置社区分类

- - {pagedCategories ? ( - - ) : null} -
- ) - } +const CategorySetterContainer = ({ categorySetter, editData }) => { + useInit(categorySetter) + + /* const mutating = false */ + const { pagedCategories } = categorySetter + + const selectedids = R.pluck('id', editData.categories) + + return ( + + coderplanets +

设置社区分类

+ + {pagedCategories && ( + + )} +
+ ) } -export default inject(storePlug('categorySetter'))( - observer(CategorySetterContainer) -) +export default connectStore(CategorySetterContainer) diff --git a/containers/CategorySetter/logic.js b/containers/CategorySetter/logic.js index f94af60..c21015e 100644 --- a/containers/CategorySetter/logic.js +++ b/containers/CategorySetter/logic.js @@ -1,24 +1,20 @@ import R from 'ramda' +import { useEffect } from 'react' -import { - makeDebugger, - $solver, - TYPE, - asyncRes, - closePreviewer, -} from '../../utils' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' +import { TYPE } from '@constant' +import { asyncSuit, buildLog, closePreviewer } from '@utils' -import SR71 from '../../utils/network/sr71' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CategorySetter') +const log = buildLog('L:CategorySetter') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71() +let sub$ = null + let store = null const commonFilter = page => { @@ -46,7 +42,7 @@ const DataSolver = [ { match: asyncRes('pagedCategories'), action: ({ pagedCategories }) => - store.markState({ + store.mark({ pagedCategories, }), }, @@ -58,10 +54,23 @@ const DataSolver = [ const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + getAllCategories() - getAllCategories() + return () => { + if (sub$) sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/CategorySetter/store.js b/containers/CategorySetter/store.js index 8f4ca26..f3b121c 100644 --- a/containers/CategorySetter/store.js +++ b/containers/CategorySetter/store.js @@ -5,11 +5,11 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { PagedCategories } from '../../stores/SharedModel' +import { PagedCategories } from '@model' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CategorySetterStore') +const log = buildLog('S:CategorySetterStore') /* eslint-enable no-unused-vars */ const CategorySetterStore = t @@ -26,7 +26,7 @@ const CategorySetterStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CategorySetter/styles/index.js b/containers/CategorySetter/styles/index.js index ce46054..7922375 100644 --- a/containers/CategorySetter/styles/index.js +++ b/containers/CategorySetter/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import { Img } from '../../../components' -import { animate } from '../../../utils' +// import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/CheatSheetContent/index.js b/containers/CheatSheetContent/index.js index 8d0a325..1383259 100644 --- a/containers/CheatSheetContent/index.js +++ b/containers/CheatSheetContent/index.js @@ -11,9 +11,9 @@ import randomColor from 'randomcolor' import { Row, Col, Divider } from 'antd' // import Link from 'next/link' +import { uid, buildLog, storePlug } from '@utils' import { Entry, CheatsheetItem } from './styles' -import { uid, makeDebugger, storePlug } from '../../utils' import * as logic from './logic' const cheatsheetData = { @@ -52,7 +52,7 @@ const cheatsheetData = { } /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CheatSheetContent') +const log = buildLog('C:CheatSheetContent') /* eslint-enable no-unused-vars */ const Langs = ({ base }) => { diff --git a/containers/CheatSheetContent/logic.js b/containers/CheatSheetContent/logic.js index edf2573..49a27a5 100644 --- a/containers/CheatSheetContent/logic.js +++ b/containers/CheatSheetContent/logic.js @@ -1,12 +1,12 @@ /* import R from 'ramda' */ -import { makeDebugger, $solver } from '../../utils' -import SR71 from '../../utils/network/sr71' +import { buildLog, asyncSuit } from '@utils' +const { SR71, $solver } = asyncSuit const sr71$ = new SR71() /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CheatSheetContent') +const log = buildLog('L:CheatSheetContent') /* eslint-enable no-unused-vars */ let cheatSheetContent = null @@ -18,6 +18,6 @@ const ErrSolver = [] export function init(selectedStore) { cheatSheetContent = selectedStore - debug(cheatSheetContent) + log(cheatSheetContent) sr71$.data().subscribe($solver(DataSolver, ErrSolver)) } diff --git a/containers/CheatSheetContent/styles/index.js b/containers/CheatSheetContent/styles/index.js index 30b45fb..8c800e8 100644 --- a/containers/CheatSheetContent/styles/index.js +++ b/containers/CheatSheetContent/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' import { setLightness, setSaturation, opacify } from 'polished' -/* import { theme } from '../../../utils' */ +/* import { theme } from '@utils' */ // visibility: ${props => (props.active === props.name ? 'visible' : 'hidden')}; diff --git a/containers/Comments/CommentEditor.js b/containers/Comments/CommentEditor.js index ba067bf..474b3f9 100644 --- a/containers/Comments/CommentEditor.js +++ b/containers/Comments/CommentEditor.js @@ -2,11 +2,10 @@ import React from 'react' import withClickOutside from 'react-click-outside' import dynamic from 'next/dynamic' -import { debounce } from '../../utils' +import { MarkDownRender } from '@components' +import { debounce } from '@utils' import * as logic from './logic' -import { MarkDownRender } from '../../components' - import { Container, InputEditorWrapper, diff --git a/containers/Comments/CommentReplyEditor.js b/containers/Comments/CommentReplyEditor.js index 4adf866..2d13b3b 100644 --- a/containers/Comments/CommentReplyEditor.js +++ b/containers/Comments/CommentReplyEditor.js @@ -2,7 +2,8 @@ import React from 'react' import withClickOutside from 'react-click-outside' import dynamic from 'next/dynamic' -import { MarkDownRender } from '../../components' +import { MarkDownRender } from '@components' +import { debounce } from '@utils' import ReplyToBar from './ReplyToBar' import ReplyEditorHeader from './ReplyEditorHeader' @@ -14,7 +15,6 @@ import { import EditorFooter from './EditorFooter' -import { debounce } from '../../utils' import * as logic from './logic' const DynamicBodyEditor = dynamic({ diff --git a/containers/Comments/CommentReplyer.js b/containers/Comments/CommentReplyer.js index 94f4037..a1664a2 100644 --- a/containers/Comments/CommentReplyer.js +++ b/containers/Comments/CommentReplyer.js @@ -1,10 +1,11 @@ import React from 'react' import withClickOutside from 'react-click-outside' -import { ICON_CMD, WORD_LIMIT } from '../../config' +import { AvatarsRow, SpaceGrow, MarkDownPreviewer } from '@components' +import { ICON_CMD, WORD_LIMIT } from '@config' +import { debounce } from '@utils' import BodyEditor from '../TypeWriter/BodyEditor' -import { AvatarsRow, SpaceGrow, MarkDownPreviewer } from '../../components' import EditorFooter from './EditorFooter' import { @@ -25,7 +26,6 @@ import { PreviewWrapper, } from './styles/comment_replyer' -import { debounce } from '../../utils' import * as logic from './logic' const fakeUser = { diff --git a/containers/Comments/CommentsFilter.js b/containers/Comments/CommentsFilter.js index e8b1e12..9b577e7 100644 --- a/containers/Comments/CommentsFilter.js +++ b/containers/Comments/CommentsFilter.js @@ -1,8 +1,8 @@ import React from 'react' -import { TYPE } from '../../utils' -import { ICON_CMD } from '../../config' -import { Popover } from '../../components' +import { ICON_CMD } from '@config' +import { TYPE } from '@constant' +import { Popover } from '@components' import { FilterWraper, diff --git a/containers/Comments/CommentsList.js b/containers/Comments/CommentsList.js index 123d585..f5885ec 100644 --- a/containers/Comments/CommentsList.js +++ b/containers/Comments/CommentsList.js @@ -2,10 +2,6 @@ import R from 'ramda' import React from 'react' import TimeAgo from 'timeago-react' -import { ICON_CMD } from '../../config' -/* import { fakeUsers, getRandomInt, Global, prettyNum } from '../../utils' */ -import { Global, prettyNum } from '../../utils' - import { AvatarsRow, Button, @@ -13,7 +9,10 @@ import { Pagi, CommentLoading, MarkDownRender, -} from '../../components' +} from '@components' +import { ICON_CMD } from '@config' +/* import { fakeUsers, getRandomInt, Global, prettyNum } from '@utils' */ +import { Global, prettyNum } from '@utils' import * as logic from './logic' import CommentsFilter from './CommentsFilter' @@ -242,7 +241,7 @@ const CommentsList = ({ pageNumber={pageNumber} pageSize={pageSize} totalCount={totalCount} - onChange={logic.pageChange} + onChange={logic.pageOnChange} showBottomMsg noMoreMsg="没有更多的评论了" emptyMsg="目前还没有评论" diff --git a/containers/Comments/EditorFooter.js b/containers/Comments/EditorFooter.js index 0f54fe4..aea5448 100644 --- a/containers/Comments/EditorFooter.js +++ b/containers/Comments/EditorFooter.js @@ -1,9 +1,9 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { Space, Button, Icon } from '@components' +import { ICON_CMD } from '@config' import DocUploader from '../DocUploader' -import { Space, Button, Icon } from '../../components' import * as logic from './logic' diff --git a/containers/Comments/EditorHeader.js b/containers/Comments/EditorHeader.js index 7db3032..ea6f460 100644 --- a/containers/Comments/EditorHeader.js +++ b/containers/Comments/EditorHeader.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD, DEFAULT_USER_AVATAR } from '../../config' -import { AvatarsRow, SpaceGrow } from '../../components' +import { AvatarsRow, SpaceGrow } from '@components' +import { ICON_CMD, DEFAULT_USER_AVATAR } from '@config' import WordsCounter from './WordsCounter' import { diff --git a/containers/Comments/ReplyEditorHeader.js b/containers/Comments/ReplyEditorHeader.js index beb0400..434a13c 100644 --- a/containers/Comments/ReplyEditorHeader.js +++ b/containers/Comments/ReplyEditorHeader.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { AvatarsRow, SpaceGrow } from '../../components' +import { AvatarsRow, SpaceGrow } from '@components' +import { ICON_CMD } from '@config' import WordsCounter from './WordsCounter' import { diff --git a/containers/Comments/ReplyToBar.js b/containers/Comments/ReplyToBar.js index 2b28c09..223cf3f 100644 --- a/containers/Comments/ReplyToBar.js +++ b/containers/Comments/ReplyToBar.js @@ -1,11 +1,10 @@ import React from 'react' -// import { ICON_CMD } from '../../config' +// import { ICON_CMD } from '@config' // import { Wrapper } from './styles' +import { cutFrom } from '@utils' import { ReplyBar, ReplyToBody, ReplyToFloor } from './styles/reply_to_bar' -import { cutFrom } from '../../utils' - const ReplyToBar = ({ comment }) => { if (!comment) return null return ( diff --git a/containers/Comments/WordsCounter.js b/containers/Comments/WordsCounter.js index 07428f8..69a9a42 100644 --- a/containers/Comments/WordsCounter.js +++ b/containers/Comments/WordsCounter.js @@ -1,6 +1,6 @@ import React from 'react' -import { WORD_LIMIT } from '../../config' +import { WORD_LIMIT } from '@config' // import { Wrapper } from './styles' import { diff --git a/containers/Comments/index.js b/containers/Comments/index.js index 1ca8f63..17e02da 100644 --- a/containers/Comments/index.js +++ b/containers/Comments/index.js @@ -5,90 +5,76 @@ */ import React from 'react' -import PropTypes from 'prop-types' -import { inject, observer } from 'mobx-react' +import T from 'prop-types' -import { Modal } from '../../components' +import { buildLog, connectStore } from '@utils' + +import { Modal } from '@components' import CommentEditor from './CommentEditor' import CommentsList from './CommentsList' import CommentReplyEditor from './CommentReplyEditor' import { Wrapper } from './styles' -import { makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, createComment } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Comments') +const log = buildLog('C:Comments') /* eslint-enable no-unused-vars */ -class CommentsContainer extends React.Component { - constructor(props) { - super(props) - - const { comments, ssr } = props - logic.init(comments, ssr) - } - - onCreate() { - const { onCreate } = this.props - logic.createComment() - onCreate() - } +const CommentsContainer = ({ comments, ssr, onCreate }) => { + useInit(comments, ssr) - render() { - const { comments } = this.props - const { - pagedCommentsData, - referUsersData, - accountInfo, - showReplyBox, - showReplyEditor, - showReplyPreview, - } = comments + const { + pagedCommentsData, + referUsersData, + accountInfo, + showReplyBox, + showReplyEditor, + showReplyPreview, + } = comments - return ( - - - {/* NOTE: this is used for react-clickouside */} - {showReplyBox ? ( - - ) : ( -
- )} - + return ( + + + {/* NOTE: this is used for react-clickouside */} + {showReplyBox ? ( + + ) : ( +
+ )} + - - - - ) - } + + + + ) } CommentsContainer.propTypes = { - onCreate: PropTypes.func, - ssr: PropTypes.bool, - comments: PropTypes.any.isRequired, + onCreate: T.func, + ssr: T.bool, + comments: T.any.isRequired, } CommentsContainer.defaultProps = { - onCreate: debug, + onCreate: log, ssr: false, } -export default inject(storePlug('comments'))(observer(CommentsContainer)) +export default connectStore(CommentsContainer) diff --git a/containers/Comments/logic.js b/containers/Comments/logic.js index ec1b877..3ab2050 100644 --- a/containers/Comments/logic.js +++ b/containers/Comments/logic.js @@ -1,29 +1,28 @@ import R from 'ramda' +import { useEffect } from 'react' + +import { PAGE_SIZE } from '@config' +import { EVENT, ERR, TYPE } from '@constant' + import { - asyncRes, - asyncErr, - makeDebugger, - EVENT, - ERR, - TYPE, - $solver, + asyncSuit, + buildLog, scrollIntoEle, countWords, - dispatchEvent, + send, extractMentions, -} from '../../utils' +} from '@utils' -import { PAGE_SIZE } from '../../config' -import SR71 from '../../utils/network/sr71' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Comments') +const log = buildLog('L:Comments') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null /* DESC_INSERTED, ASC_INSERTED */ @@ -33,75 +32,79 @@ const defaultArgs = { } export const loadComents = (args = {}) => { - // debug('loadComents passed in: ', args) + // log('loadComents passed in: ', args) args = R.mergeDeepRight(defaultArgs, args) args.id = store.viewingData.id args.userHasLogin = store.isLogin args.thread = store.activeThread markLoading(args.fresh) - store.markState({ filterType: args.filter.sort }) + store.mark({ filterType: args.filter.sort }) - debug('pagedComments args: ', args) + log('pagedComments args: ', args) sr71$.query(S.pagedComments, args) } const markLoading = fresh => { if (fresh) { - return store.markState({ loadingFresh: true }) + return store.mark({ loadingFresh: true }) } - return store.markState({ loading: true }) + return store.mark({ loading: true }) } -export function createComment() { +/* eslint-disable-next-line */ +export const createComment = R.curry((cb, e) => { if (!store.validator('create')) return false - store.markState({ creating: true }) + store.mark({ creating: true }) const args = { id: store.viewingData.id, body: store.editContent, thread: store.activeThread, + community: store.communityRaw, + mentionUsers: R.map(user => ({ id: user.id }), store.referUsersData), } - debug('createComment args: ', args) + log('createComment args: ', args) sr71$.mutate(S.createComment, args) -} + cb() +}) export function createCommentPreview() { - store.markState({ + store.mark({ showInputEditor: false, showInputPreview: true, }) } export function backToEditor() { - store.markState({ + store.mark({ showInputEditor: true, showInputPreview: false, }) } export function previewReply(data) { - debug('previewReply --> : ', data) + log('previewReply --> : ', data) } export function openInputBox() { if (!store.isLogin) return store.authWarning({ hideToast: true }) - store.markState({ + store.mark({ showInputBox: true, showInputEditor: true, }) } export function openCommentEditor() { - store.markState({ + store.mark({ showInputEditor: true, }) } export function onCommentInputBlur() { - store.markState({ + store.mark({ showInputBox: false, showInputPreview: false, showInputEditor: false, @@ -118,14 +121,14 @@ export function createReplyComment() { } export function onCommentInputChange(editContent) { - store.markState({ + store.mark({ countCurrent: countWords(editContent), extractMentions: extractMentions(editContent), editContent, }) } export function onReplyInputChange(replyContent) { - store.markState({ + store.mark({ countCurrent: countWords(replyContent), extractMentions: extractMentions(replyContent), replyContent, @@ -133,7 +136,7 @@ export function onReplyInputChange(replyContent) { } export function openReplyEditor(data) { - store.markState({ + store.mark({ showReplyBox: true, showReplyEditor: true, showReplyPreview: false, @@ -142,23 +145,23 @@ export function openReplyEditor(data) { } export function replyCommentPreview() { - debug('replyCommentPreview') + log('replyCommentPreview') - store.markState({ + store.mark({ showReplyEditor: false, showReplyPreview: true, }) } export function replyBackToEditor() { - store.markState({ + store.mark({ showReplyEditor: true, showReplyPreview: false, }) } export function closeReplyBox() { - store.markState({ + store.mark({ showReplyBox: false, showReplyEditor: false, showReplyPreview: false, @@ -166,13 +169,13 @@ export function closeReplyBox() { } export function onFilterChange(filterType) { - store.markState({ filterType }) + store.mark({ filterType }) loadComents({ filter: { page: 1, sort: filterType } }) } export function toggleLikeComment(comment) { // TODO: check login first - debug('likeComment: ', comment) + log('likeComment: ', comment) if (comment.viewerHasLiked) { return sr71$.mutate(S.undoLikeComment, { id: comment.id, @@ -196,24 +199,24 @@ export function toggleDislikeComment(comment) { } export function onUploadImageDone(url) { - dispatchEvent(EVENT.DRAFT_INSERT_SNIPPET, { data: `![](${url})` }) + send(EVENT.DRAFT_INSERT_SNIPPET, { data: `![](${url})` }) } export function insertQuote() { const data = '> ' - dispatchEvent(EVENT.DRAFT_INSERT_SNIPPET, { data }) + send(EVENT.DRAFT_INSERT_SNIPPET, { data }) } export function insertCode() { const communityRaw = store.curCommunity.raw const data = `\`\`\`${communityRaw}\n\n\`\`\`` - dispatchEvent(EVENT.DRAFT_INSERT_SNIPPET, { data }) + send(EVENT.DRAFT_INSERT_SNIPPET, { data }) } export function onMention(user) { - debug('onMention: ', user) + log('onMention: ', user) store.addReferUser(user) } @@ -225,24 +228,24 @@ export function deleteComment() { // show delete confirm export function onDelete(comment) { - store.markState({ + store.mark({ tobeDeleteId: comment.id, }) } export function cancleDelete() { - store.markState({ + store.mark({ tobeDeleteId: null, }) } -export function pageChange(page = 1) { +export function pageOnChange(page = 1) { scrollIntoEle('lists-info') loadComents({ filter: { page, sort: store.filterType } }) } const cancelLoading = () => { - store.markState({ loading: false, loadingFresh: false, creating: false }) + store.mark({ loading: false, loadingFresh: false, creating: false }) } // ############################### @@ -253,13 +256,13 @@ const DataSolver = [ match: asyncRes('pagedComments'), action: ({ pagedComments }) => { cancelLoading() - store.markState({ pagedComments }) + store.mark({ pagedComments }) }, }, { match: asyncRes('createComment'), action: () => { - store.markState({ + store.mark({ showInputBox: false, showInputEditor: false, editContent: '', @@ -275,8 +278,8 @@ const DataSolver = [ { match: asyncRes('replyComment'), action: ({ replyComment }) => { - debug('replyComment', replyComment) - store.markState({ + log('replyComment', replyComment) + store.mark({ showReplyBox: false, replyToComment: null, }) @@ -307,8 +310,8 @@ const DataSolver = [ { match: asyncRes('deleteComment'), action: ({ deleteComment }) => { - debug('deleteComment', deleteComment) - store.markState({ tobeDeleteId: null }) + log('deleteComment', deleteComment) + store.mark({ tobeDeleteId: null }) scrollIntoEle('lists-info') loadComents({ filter: { page: 1 }, fresh: true }) }, @@ -319,33 +322,45 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) }, }, ] -export function init(_store, ssr = false) { - if (store) { - if (!ssr) return loadComents() - return false - } - - store = _store - - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - - if (!ssr) return loadComents() +// ############################### +// init & uninit +// ############################### +export const useInit = (_store, ssr) => { + useEffect( + () => { + // log('effect init') + store = _store + if (!sub$) { + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + if (!ssr) loadComents({ filter: { sort: TYPE.DESC_INSERTED } }) + } + + return () => { + // log('effect uninit') + if (store.loading || store.loadingFresh || !sub$) return false + + sr71$.stop() + sub$.unsubscribe() + sub$ = null + } + }, + [_store, ssr] + ) } diff --git a/containers/Comments/store.js b/containers/Comments/store.js index 142be71..e06ca94 100644 --- a/containers/Comments/store.js +++ b/containers/Comments/store.js @@ -6,19 +6,12 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { - markStates, - makeDebugger, - stripMobx, - TYPE, - changeset, - // THREAD, - // subPath2Thread, -} from '../../utils' -import { Comment, PagedComments, emptyPagiData } from '../../stores/SharedModel' +import { TYPE } from '@constant' +import { markStates, buildLog, stripMobx, changeset } from '@utils' +import { Comment, PagedComments, emptyPagiData } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommentsStore') +const log = buildLog('S:CommentsStore') /* eslint-enable no-unused-vars */ const Mention = t.model('Mention', { @@ -157,7 +150,7 @@ const CommentsStore = t const index = R.findIndex(R.propEq('id', id), self.entriesData) self.entries[index] = R.merge(self.entriesData[index], comment) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/Comments/styles/comment_editor.js b/containers/Comments/styles/comment_editor.js index cbd7257..91ddf0a 100644 --- a/containers/Comments/styles/comment_editor.js +++ b/containers/Comments/styles/comment_editor.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' +// import Img from '@components/Img' +import { theme, cs } from '@utils' export const Container = styled.div` ${cs.flexColumn()}; diff --git a/containers/Comments/styles/comment_reply_editor.js b/containers/Comments/styles/comment_reply_editor.js index c0dab22..54715d8 100644 --- a/containers/Comments/styles/comment_reply_editor.js +++ b/containers/Comments/styles/comment_reply_editor.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' +// import Img from '@components/Img' +import { theme, cs } from '@utils' export const Wrapper = styled.div` ${cs.flexColumn()}; diff --git a/containers/Comments/styles/comment_replyer.js b/containers/Comments/styles/comment_replyer.js index ed7c15c..dc616b6 100644 --- a/containers/Comments/styles/comment_replyer.js +++ b/containers/Comments/styles/comment_replyer.js @@ -1,8 +1,8 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { WORD_LIMIT } from '../../../config' -import { theme } from '../../../utils' +import { Img } from '@components' +import { WORD_LIMIT } from '@config' +import { theme } from '@utils' import { ReplyBarBase, ReplyToBodyBase, ReplyToFloorBase } from './index' export const ReplyBar = styled(ReplyBarBase)` diff --git a/containers/Comments/styles/comments_filter.js b/containers/Comments/styles/comments_filter.js index 626107f..407cb1f 100644 --- a/containers/Comments/styles/comments_filter.js +++ b/containers/Comments/styles/comments_filter.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import Img from '../../../components/Img' -import { animate, theme, cs } from '../../../utils' +import Img from '@components/Img' +import { animate, theme, cs } from '@utils' export const FilterWraper = styled.div` margin-right: 8px; diff --git a/containers/Comments/styles/comments_list.js b/containers/Comments/styles/comments_list.js index ef4b351..9d7d4ee 100644 --- a/containers/Comments/styles/comments_list.js +++ b/containers/Comments/styles/comments_list.js @@ -1,10 +1,9 @@ import styled from 'styled-components' -import Img from '../../../components/Img' +import Img from '@components/Img' +import { theme, animate, cs } from '@utils' import { ReplyBarBase, ReplyToBodyBase, ReplyToFloorBase } from './index' -import { theme, animate, cs } from '../../../utils' - export const ReplyBar = styled(ReplyBarBase)` margin-left: -2px; ` diff --git a/containers/Comments/styles/editor_footer.js b/containers/Comments/styles/editor_footer.js index d8cf0a2..6d9313d 100644 --- a/containers/Comments/styles/editor_footer.js +++ b/containers/Comments/styles/editor_footer.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' +import Img from '@components/Img' +import { theme, cs } from '@utils' export const InputFooter = styled.div` ${cs.flex()}; diff --git a/containers/Comments/styles/editor_header.js b/containers/Comments/styles/editor_header.js index 6556e41..dc406c5 100644 --- a/containers/Comments/styles/editor_header.js +++ b/containers/Comments/styles/editor_header.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' +import Img from '@components/Img' +import { theme, cs } from '@utils' export const Wrapper = styled.div` ${cs.flex('align-center')}; diff --git a/containers/Comments/styles/index.js b/containers/Comments/styles/index.js index 6ade1b1..1e3d188 100644 --- a/containers/Comments/styles/index.js +++ b/containers/Comments/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme, cs } from '../../../utils' +import { theme, cs } from '@utils' export const Wrapper = styled.div`` diff --git a/containers/Comments/styles/reply_editor_header.js b/containers/Comments/styles/reply_editor_header.js index 71ae5db..ecc2490 100644 --- a/containers/Comments/styles/reply_editor_header.js +++ b/containers/Comments/styles/reply_editor_header.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' +import Img from '@components/Img' +import { theme, cs } from '@utils' export const Wrapper = styled.div` ${cs.flex('align-center')}; diff --git a/containers/Comments/styles/reply_to_bar.js b/containers/Comments/styles/reply_to_bar.js index f69c651..1aa44d3 100644 --- a/containers/Comments/styles/reply_to_bar.js +++ b/containers/Comments/styles/reply_to_bar.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../../components/Img' -// import { theme } from '../../../utils' +// import Img from '@components/Img' +// import { theme } from '@utils' import { ReplyBarBase, ReplyToBodyBase, ReplyToFloorBase } from './index' export const ReplyBar = styled(ReplyBarBase)` diff --git a/containers/Comments/styles/words_counter.js b/containers/Comments/styles/words_counter.js index 47f85e7..365c3f7 100644 --- a/containers/Comments/styles/words_counter.js +++ b/containers/Comments/styles/words_counter.js @@ -1,9 +1,9 @@ import styled from 'styled-components' -import { WORD_LIMIT } from '../../../config' +import { WORD_LIMIT } from '@config' -// import Img from '../../../components/Img' -import { cs, theme } from '../../../utils' +// import Img from '@components/Img' +import { cs, theme } from '@utils' export const Wrapper = styled.div` ${cs.flex('align-center')}; diff --git a/containers/CommunitiesBanner/CategoryBanner.js b/containers/CommunitiesBanner/CategoryBanner.js index a5dcae7..572b5c1 100644 --- a/containers/CommunitiesBanner/CategoryBanner.js +++ b/containers/CommunitiesBanner/CategoryBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { BannerCountBrief } from '../../components' +import { BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/EditorsBanner.js b/containers/CommunitiesBanner/EditorsBanner.js index 8ed4410..86c218d 100644 --- a/containers/CommunitiesBanner/EditorsBanner.js +++ b/containers/CommunitiesBanner/EditorsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/IndexBanner.js b/containers/CommunitiesBanner/IndexBanner.js index 781ab43..4cd6449 100644 --- a/containers/CommunitiesBanner/IndexBanner.js +++ b/containers/CommunitiesBanner/IndexBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, @@ -14,7 +14,7 @@ import { OperationIconChart, } from './styles/common_banner' -import * as logic from './logic' +import { onSearch, onAdd } from './logic' const IndexBanner = ({ filteredCount, totalCount }) => ( @@ -38,12 +38,12 @@ const IndexBanner = ({ filteredCount, totalCount }) => ( - + 搜索 - + 添加 diff --git a/containers/CommunitiesBanner/JobsBanner.js b/containers/CommunitiesBanner/JobsBanner.js index 0821044..034a2d3 100644 --- a/containers/CommunitiesBanner/JobsBanner.js +++ b/containers/CommunitiesBanner/JobsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/PostsBanner.js b/containers/CommunitiesBanner/PostsBanner.js index a064347..c65f7e8 100644 --- a/containers/CommunitiesBanner/PostsBanner.js +++ b/containers/CommunitiesBanner/PostsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/ReposBanner.js b/containers/CommunitiesBanner/ReposBanner.js index 8a466ed..2e15e92 100644 --- a/containers/CommunitiesBanner/ReposBanner.js +++ b/containers/CommunitiesBanner/ReposBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/TagsBanner.js b/containers/CommunitiesBanner/TagsBanner.js index 715e31f..44ceb09 100644 --- a/containers/CommunitiesBanner/TagsBanner.js +++ b/containers/CommunitiesBanner/TagsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/ThreadsBanner.js b/containers/CommunitiesBanner/ThreadsBanner.js index dc867d9..ac49743 100644 --- a/containers/CommunitiesBanner/ThreadsBanner.js +++ b/containers/CommunitiesBanner/ThreadsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/VideosBanner.js b/containers/CommunitiesBanner/VideosBanner.js index 3c7a6b7..8533818 100644 --- a/containers/CommunitiesBanner/VideosBanner.js +++ b/containers/CommunitiesBanner/VideosBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunitiesBanner/index.js b/containers/CommunitiesBanner/index.js index 24c461b..72a9834 100644 --- a/containers/CommunitiesBanner/index.js +++ b/containers/CommunitiesBanner/index.js @@ -1,9 +1,7 @@ import React from 'react' -import { inject, observer } from 'mobx-react' -import { storePlug, makeDebugger, ROUTE, stripMobx } from '../../utils' - -import * as logic from './logic' +import { ROUTE } from '@constant' +import { connectStore, buildLog, stripMobx } from '@utils' import IndexBanner from './IndexBanner' import EditorsBanner from './EditorsBanner' @@ -17,9 +15,10 @@ import ReposBanner from './ReposBanner' import VideosBanner from './VideosBanner' import { BannerContainer } from './styles' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CommunitiesBanner') +const log = buildLog('C:CommunitiesBanner') /* eslint-enable no-unused-vars */ const ChildBanner = ({ @@ -124,49 +123,37 @@ const ChildBanner = ({ } } -class CommunitiesBannerContainer extends React.Component { - componentDidMount() { - const { communitiesBanner } = this.props - logic.init(communitiesBanner) - } - - componentWillUnmount() { - logic.uninit() - } +const CommunitiesBannerContainer = ({ communitiesBanner }) => { + useInit(communitiesBanner) - render() { - const { communitiesBanner } = this.props - const { - curRoute, - totalCount, - tagsTotalCount, - categoriesTotalCount, - threadsTotalCount, - postsTotalCount, - jobsTotalCount, - reposTotalCount, - videosTotalCount, - } = communitiesBanner + const { + curRoute, + totalCount, + tagsTotalCount, + categoriesTotalCount, + threadsTotalCount, + postsTotalCount, + jobsTotalCount, + reposTotalCount, + videosTotalCount, + } = communitiesBanner - return ( - - - - ) - } + return ( + + + + ) } -export default inject(storePlug('communitiesBanner'))( - observer(CommunitiesBannerContainer) -) +export default connectStore(CommunitiesBannerContainer) diff --git a/containers/CommunitiesBanner/logic.js b/containers/CommunitiesBanner/logic.js index 266457f..6e6cccc 100644 --- a/containers/CommunitiesBanner/logic.js +++ b/containers/CommunitiesBanner/logic.js @@ -1,27 +1,21 @@ // import R from 'ramda' // import Router from 'next/router' -import { - asyncRes, - asyncErr, - makeDebugger, - $solver, - ERR, - EVENT, - TYPE, - dispatchEvent, -} from '../../utils' - -import SR71 from '../../utils/network/sr71' +import { useEffect } from 'react' + +import { EVENT, ERR, TYPE } from '@constant' +import { asyncSuit, buildLog, send } from '@utils' import S from './schema' -const sr71$ = new SR71({ - resv_event: [EVENT.PREVIEW_CLOSE], -}) /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:communitiesBanner') +const log = buildLog('L:communitiesBanner') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit +const sr71$ = new SR71({ + recieve: [EVENT.PREVIEW_CLOSE], +}) + let store = null let sub$ = null @@ -45,33 +39,33 @@ export function loadJobs() { sr71$.query(S.pagedJobs, { filter: {} }) } -export function onSearch() { - store.openDoraemon() -} - export const loadCategories = () => sr71$.query(S.pagedCategories, { filter: {} }) +export const onSearch = () => { + log('TODO: onSearch') +} + export function onAdd(thread) { switch (thread) { case 'tags': { - return dispatchEvent(EVENT.NAV_CREATE_TAG, { + return send(EVENT.NAV_CREATE_TAG, { type: TYPE.PREVIEW_CREATE_TAG, }) } case 'categories': { - return dispatchEvent(EVENT.NAV_CREATE_CATEGORY, { + return send(EVENT.NAV_CREATE_CATEGORY, { type: TYPE.PREVIEW_CREATE_CATEGORY, }) } case 'threads': { - return dispatchEvent(EVENT.NAV_CREATE_THREAD, { + return send(EVENT.NAV_CREATE_THREAD, { type: TYPE.PREVIEW_CREATE_THREAD, }) } default: { - debug('onAdd default: ', thread) - return dispatchEvent(EVENT.NAV_CREATE_COMMUNITY, { + log('onAdd default: ', thread) + return send(EVENT.NAV_CREATE_COMMUNITY, { type: TYPE.PREVIEW_CREATE_COMMUNITY, }) } @@ -82,34 +76,34 @@ const DataSolver = [ { match: asyncRes('pagedCommunities'), action: ({ pagedCommunities: { totalCount } }) => - store.markState({ totalCount }), + store.mark({ totalCount }), }, { match: asyncRes('pagedTags'), action: ({ pagedTags: { totalCount } }) => - store.markState({ tagsTotalCount: totalCount }), + store.mark({ tagsTotalCount: totalCount }), }, { match: asyncRes('pagedThreads'), action: ({ pagedThreads: { totalCount } }) => - store.markState({ threadsTotalCount: totalCount }), + store.mark({ threadsTotalCount: totalCount }), }, { match: asyncRes('pagedCategories'), action: ({ pagedCategories: { totalCount } }) => { - debug('get pagedCategories: ', totalCount) - store.markState({ categoriesTotalCount: totalCount }) + log('get pagedCategories: ', totalCount) + store.mark({ categoriesTotalCount: totalCount }) }, }, { match: asyncRes('pagedPosts'), action: ({ pagedPosts: { totalCount: postsTotalCount } }) => - store.markState({ postsTotalCount }), + store.mark({ postsTotalCount }), }, { match: asyncRes('pagedJobs'), action: ({ pagedJobs: { totalCount: jobsTotalCount } }) => - store.markState({ jobsTotalCount }), + store.mark({ jobsTotalCount }), }, { match: asyncRes(EVENT.PREVIEW_CLOSE), @@ -126,7 +120,7 @@ const DataSolver = [ return loadCategories() } default: { - debug('unknow event: ', closeType) + log('unknow event: ', closeType) /* return loadPosts() */ } } @@ -138,34 +132,40 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) }, }, ] -export function init(_store) { - store = _store - if (sub$) return false // loadCommunities() // loadCategories() - sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - // loadCommunities() - // loadCategories() -} - -export function uninit() { - if (!sub$) return false - debug('===== do uninit') - sub$.unsubscribe() - sub$ = null +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) return false // loadCommunities() // loadCategories() + sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (!sub$) return false + log('===== do uninit') + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/CommunitiesBanner/store.js b/containers/CommunitiesBanner/store.js index 469fffe..271eac3 100644 --- a/containers/CommunitiesBanner/store.js +++ b/containers/CommunitiesBanner/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunitiesBannerStore') +const log = buildLog('S:CommunitiesBannerStore') /* eslint-enable no-unused-vars */ const CommunitiesBannerStore = t @@ -56,10 +56,7 @@ const CommunitiesBannerStore = t }, })) .actions(self => ({ - openDoraemon() { - self.root.openDoraemon() - }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CommunitiesBanner/styles/common_banner.js b/containers/CommunitiesBanner/styles/common_banner.js index 942129a..c7c2902 100644 --- a/containers/CommunitiesBanner/styles/common_banner.js +++ b/containers/CommunitiesBanner/styles/common_banner.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { Img } from '../../../components' +import { Img } from '@components' import { BaseBanner, BaseBannerContent } from './index' export const BannerContainer = styled(BaseBanner)` diff --git a/containers/CommunitiesBanner/styles/index.js b/containers/CommunitiesBanner/styles/index.js index c961fde..d8c570a 100644 --- a/containers/CommunitiesBanner/styles/index.js +++ b/containers/CommunitiesBanner/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' export const BaseBanner = styled.div` position: relative; diff --git a/containers/CommunitiesContent/CategoriesContent.js b/containers/CommunitiesContent/CategoriesContent.js index 62cccbc..d91acf9 100644 --- a/containers/CommunitiesContent/CategoriesContent.js +++ b/containers/CommunitiesContent/CategoriesContent.js @@ -10,10 +10,10 @@ import { UserCell, CommunityCell, TimeStampCell, -} from '../../components' +} from '@components' +import { Trans } from '@utils' import { OperationWrapper } from './styles' -import { Trans } from '../../utils' import * as logic from './logic' /* eslint-disable react/display-name */ diff --git a/containers/CommunitiesContent/IndexContent.js b/containers/CommunitiesContent/IndexContent.js index 82fcfe3..7367a5c 100644 --- a/containers/CommunitiesContent/IndexContent.js +++ b/containers/CommunitiesContent/IndexContent.js @@ -11,7 +11,7 @@ import { ThreadsCell, ContentsCountCell, TimeStampCell, -} from '../../components' +} from '@components' import { CommunityIcon, OperationWrapper } from './styles' diff --git a/containers/CommunitiesContent/JobsContent.js b/containers/CommunitiesContent/JobsContent.js index f1cbc13..0f571a6 100644 --- a/containers/CommunitiesContent/JobsContent.js +++ b/containers/CommunitiesContent/JobsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import JobsTable from '../../components/JobsTable' +import JobsTable from '@components/JobsTable' import * as logic from './logic' diff --git a/containers/CommunitiesContent/PostsContent.js b/containers/CommunitiesContent/PostsContent.js index 5f4f277..afbaaab 100644 --- a/containers/CommunitiesContent/PostsContent.js +++ b/containers/CommunitiesContent/PostsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import PostsTable from '../../components/PostsTable' +import PostsTable from '@components/PostsTable' // import { OperationWrapper } from './styles' import * as logic from './logic' diff --git a/containers/CommunitiesContent/ReposContent.js b/containers/CommunitiesContent/ReposContent.js index c232f51..e3730ff 100644 --- a/containers/CommunitiesContent/ReposContent.js +++ b/containers/CommunitiesContent/ReposContent.js @@ -1,6 +1,6 @@ import React from 'react' -import ReposTable from '../../components/ReposTable' +import ReposTable from '@components/ReposTable' import * as logic from './logic' diff --git a/containers/CommunitiesContent/TagsContent.js b/containers/CommunitiesContent/TagsContent.js index 41d3586..1cb542a 100644 --- a/containers/CommunitiesContent/TagsContent.js +++ b/containers/CommunitiesContent/TagsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import TagsTable from '../../components/TagsTable' +import TagsTable from '@components/TagsTable' import * as logic from './logic' const TagsContent = ({ data, restProps: { tagsLoading } }) => ( diff --git a/containers/CommunitiesContent/ThreadsContent.js b/containers/CommunitiesContent/ThreadsContent.js index f4b4b59..c6b8ad4 100644 --- a/containers/CommunitiesContent/ThreadsContent.js +++ b/containers/CommunitiesContent/ThreadsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import ThreadsTable from '../../components/ThreadsTable' +import ThreadsTable from '@components/ThreadsTable' // import * as logic from './logic' diff --git a/containers/CommunitiesContent/VideosContent.js b/containers/CommunitiesContent/VideosContent.js index b286d10..edd8d6b 100644 --- a/containers/CommunitiesContent/VideosContent.js +++ b/containers/CommunitiesContent/VideosContent.js @@ -1,6 +1,6 @@ import React from 'react' -import VideosTable from '../../components/VideosTable' +import VideosTable from '@components/VideosTable' import * as logic from './logic' diff --git a/containers/CommunitiesContent/index.js b/containers/CommunitiesContent/index.js index 5c3bc5c..43bff61 100644 --- a/containers/CommunitiesContent/index.js +++ b/containers/CommunitiesContent/index.js @@ -5,11 +5,9 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' -/* import { withRouter } from 'next/router' */ -import { makeDebugger, storePlug, ROUTE } from '../../utils' +import { ROUTE } from '@constant' +import { buildLog, connectStore } from '@utils' import IndexContent from './IndexContent' import PostsContent from './PostsContent' @@ -21,10 +19,10 @@ import TagsContent from './TagsContent' import ThreadsContent from './ThreadsContent' import { Wrapper } from './styles' -import * as logic from './logic' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CommunitiesContent') +const log = buildLog('C:CommunitiesContent') /* eslint-enable no-unused-vars */ const renderChildContent = (curRoute, store, restProps) => { @@ -72,30 +70,17 @@ const renderChildContent = (curRoute, store, restProps) => { } } -class CommunitiesContentContainer extends React.Component { - componentDidMount() { - const { communitiesContent } = this.props +const CommunitiesContentContainer = ({ communitiesContent }) => { + useInit(communitiesContent) - logic.init(communitiesContent) - } - - componentWillUnmount() { - logic.uninit() - } + const { curRoute } = communitiesContent + const restProps = { ...communitiesContent } - render() { - const { communitiesContent } = this.props - const { curRoute } = communitiesContent - const restProps = { ...communitiesContent } - - return ( - - {renderChildContent(curRoute, communitiesContent, restProps)} - - ) - } + return ( + + {renderChildContent(curRoute, communitiesContent, restProps)} + + ) } -export default inject(storePlug('communitiesContent'))( - observer(CommunitiesContentContainer) -) +export default connectStore(CommunitiesContentContainer) diff --git a/containers/CommunitiesContent/logic.js b/containers/CommunitiesContent/logic.js index 257a998..cc8d593 100644 --- a/containers/CommunitiesContent/logic.js +++ b/containers/CommunitiesContent/logic.js @@ -1,28 +1,26 @@ import R from 'ramda' +import { useEffect } from 'react' import { message } from 'antd' -/* import Router from 'next/router' */ +import { PAGE_SIZE } from '@config' +import { EVENT, ERR, TYPE, THREAD, ROUTE } from '@constant' import { - asyncRes, - asyncErr, - $solver, - ERR, - makeDebugger, - EVENT, - TYPE, - THREAD, - ROUTE, + asyncSuit, + buildLog, scrollIntoEle, closePreviewer, - dispatchEvent, -} from '../../utils' + send, +} from '@utils' -import { PAGE_SIZE } from '../../config' import S from './schema' -import SR71 from '../../utils/network/sr71' +/* eslint-disable no-unused-vars */ +const log = buildLog('L:CommunitiesContent') +/* eslint-enable no-unused-vars */ + +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit const sr71$ = new SR71({ - resv_event: [ + recieve: [ EVENT.LOGOUT, EVENT.LOGIN, EVENT.PREVIEW_CLOSE, @@ -30,10 +28,6 @@ const sr71$ = new SR71({ ], }) -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CommunitiesContent') -/* eslint-enable no-unused-vars */ - let sub$ = null let store = null @@ -52,7 +46,7 @@ export function loadCommunities(page = 1) { } scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ communitiesLoading: true }) + store.mark({ communitiesLoading: true }) store.markRoute({ page }) /* args.filter = R.merge(args.filter, route.query) */ @@ -62,7 +56,7 @@ export function loadCommunities(page = 1) { export function loadCategories(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) store.markRoute({ page }) - store.markState({ categoriessLoading: true }) + store.mark({ categoriessLoading: true }) sr71$.query(S.pagedCategories, commonFilter(page)) } @@ -71,7 +65,7 @@ export function loadTags(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) store.markRoute({ page }) - store.markState({ tagsLoading: true }) + store.mark({ tagsLoading: true }) sr71$.query(S.pagedTags, commonFilter(page)) } @@ -79,7 +73,7 @@ export function loadTags(page = 1) { export function loadThreads(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) store.markRoute({ page }) - store.markState({ tagsLoading: true }) + store.mark({ tagsLoading: true }) sr71$.query(S.pagedThreads, commonFilter(page)) } @@ -91,7 +85,7 @@ export const loadPosts = (page = 1) => { userHasLogin: false, } scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ postsLoading: true }) + store.mark({ postsLoading: true }) sr71$.query(S.pagedPosts, args) } @@ -102,7 +96,7 @@ export const loadJobs = (page = 1) => { filter: { page, size }, } scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ jobsLoading: true }) + store.mark({ jobsLoading: true }) sr71$.query(S.pagedJobs, args) } @@ -113,7 +107,7 @@ export const loadRepos = (page = 1) => { filter: { page, size }, } scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ reposLoading: true }) + store.mark({ reposLoading: true }) sr71$.query(S.pagedRepos, args) } @@ -124,23 +118,23 @@ export const loadVideos = (page = 1) => { filter: { page, size }, } scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ videosLoading: true }) + store.mark({ videosLoading: true }) sr71$.query(S.pagedVideos, args) } export function onEdit(record) { - debug('unMatched edit: ', record) + log('unMatched edit: ', record) } export const onEditCategory = record => - dispatchEvent(EVENT.NAV_UPDATE_CATEGORY, { + send(EVENT.NAV_UPDATE_CATEGORY, { type: TYPE.PREVIEW_UPDATE_CATEGORY, data: record, }) export const onEditTag = record => - dispatchEvent(EVENT.NAV_UPDATE_TAG, { + send(EVENT.NAV_UPDATE_TAG, { type: TYPE.PREVIEW_UPDATE_TAG, data: record, }) @@ -161,7 +155,7 @@ export function onDeleteCagegory(record) { } export const setCommunity = (thread, source) => - dispatchEvent(EVENT.NAV_SET_COMMUNITY, { + send(EVENT.NAV_SET_COMMUNITY, { type: TYPE.PREVIEW_SET_COMMUNITY, data: { source, @@ -188,7 +182,7 @@ export const unsetThread = (communityId, thread) => }) export const setThread = source => - dispatchEvent(EVENT.NAV_SET_THREAD, { + send(EVENT.NAV_SET_THREAD, { type: TYPE.PREVIEW_SET_THREAD, data: source, }) @@ -200,13 +194,13 @@ export const unsetCategory = (communityId, category) => }) export const setCategory = source => - dispatchEvent(EVENT.NAV_SET_CATEGORY, { + send(EVENT.NAV_SET_CATEGORY, { type: TYPE.PREVIEW_SET_CATEGORY, data: source, }) export const setTag = (thread, source) => - dispatchEvent(EVENT.NAV_SET_TAG, { + send(EVENT.NAV_SET_TAG, { type: TYPE.PREVIEW_SET_TAG, data: { thread, @@ -226,7 +220,7 @@ export function unsetTag(threadId, tag) { /* when error occured cancle all the loading state */ const cancleLoading = () => - store.markState({ + store.mark({ communitiesLoading: false, postsLoading: false, jobsLoading: false, @@ -241,30 +235,30 @@ const DataSolver = [ match: asyncRes('pagedCommunities'), action: ({ pagedCommunities }) => { cancleLoading() - debug('pagedCommunities: ', pagedCommunities) - store.markState({ pagedCommunities }) + log('pagedCommunities: ', pagedCommunities) + store.mark({ pagedCommunities }) }, }, { match: asyncRes('pagedTags'), action: ({ pagedTags }) => { - debug('load pagedTags: ', pagedTags) + log('load pagedTags: ', pagedTags) cancleLoading() - store.markState({ pagedTags }) + store.mark({ pagedTags }) }, }, { match: asyncRes('pagedThreads'), action: ({ pagedThreads }) => { cancleLoading() - store.markState({ pagedThreads }) + store.mark({ pagedThreads }) }, }, { match: asyncRes('pagedPosts'), action: ({ pagedPosts }) => { cancleLoading() - store.markState({ pagedPosts }) + store.mark({ pagedPosts }) }, }, { @@ -272,30 +266,30 @@ const DataSolver = [ action: ({ pagedJobs }) => { console.log('pagedJobs get: ', pagedJobs) cancleLoading() - store.markState({ pagedJobs }) + store.mark({ pagedJobs }) }, }, { match: asyncRes('pagedRepos'), action: ({ pagedRepos }) => { cancleLoading() - store.markState({ pagedRepos }) + store.mark({ pagedRepos }) }, }, { match: asyncRes('pagedVideos'), action: ({ pagedVideos }) => { cancleLoading() - debug('pagedVideos: ', pagedVideos) - store.markState({ pagedVideos }) + log('pagedVideos: ', pagedVideos) + store.mark({ pagedVideos }) }, }, { match: asyncRes('pagedCategories'), action: ({ pagedCategories }) => { cancleLoading() - debug('pagedCategories: ', pagedCategories) - store.markState({ pagedCategories }) + log('pagedCategories: ', pagedCategories) + store.mark({ pagedCategories }) }, }, { @@ -349,7 +343,7 @@ const DataSolver = [ match: asyncRes(EVENT.PREVIEW_CLOSE), action: res => { const closeType = res[EVENT.PREVIEW_CLOSE].type - debug('PREVIEW_CLOSE --> ', closeType) + log('PREVIEW_CLOSE --> ', closeType) switch (closeType) { case TYPE.COMMUNITIES_REFRESH: { const { pageNumber } = store.pagedCommunitiesData @@ -372,7 +366,7 @@ const DataSolver = [ return loadJobs(pageNumber) } default: { - debug('unknow event: ', closeType) + log('unknow event: ', closeType) /* return loadPosts() */ } } @@ -418,7 +412,7 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details[0].detail) + log('ERR.CRAPHQL -->', details[0].detail) message.error(details[0].detail) cancleLoading() }, @@ -426,29 +420,36 @@ const ErrSolver = [ { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) cancleLoading() }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) cancleLoading() }, }, ] -export function init(_store) { - store = _store - - if (sub$) return false - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) -} - -export function uninit() { - if (!sub$) return false - debug('===== do uninit') - sub$.unsubscribe() - sub$ = null +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) return false + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (!sub$) return false + log('===== do uninit') + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/CommunitiesContent/store.js b/containers/CommunitiesContent/store.js index cdba990..deca43d 100644 --- a/containers/CommunitiesContent/store.js +++ b/containers/CommunitiesContent/store.js @@ -16,12 +16,12 @@ import { PagedCategories, PagedCommunities, emptyPagiData, -} from '../../stores/SharedModel' +} from '@model' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunitiesContentStore') +const log = buildLog('S:CommunitiesContentStore') /* eslint-enable no-unused-vars */ const CommunitiesContentStore = t @@ -87,7 +87,7 @@ const CommunitiesContentStore = t markRoute(query) { self.root.route.markRoute(query) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CommunitiesContent/styles/index.js b/containers/CommunitiesContent/styles/index.js index cab9100..d784ee1 100644 --- a/containers/CommunitiesContent/styles/index.js +++ b/containers/CommunitiesContent/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { theme } from '../../../utils' +import { Img } from '@components' +import { theme } from '@utils' export const Wrapper = styled.div` min-height: 800px; diff --git a/containers/CommunityBanner/JobsBanner.js b/containers/CommunityBanner/JobsBanner.js index c440319..50b996f 100644 --- a/containers/CommunityBanner/JobsBanner.js +++ b/containers/CommunityBanner/JobsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/PostsBanner.js b/containers/CommunityBanner/PostsBanner.js index f6ae544..5ed0742 100644 --- a/containers/CommunityBanner/PostsBanner.js +++ b/containers/CommunityBanner/PostsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/ReposBanner.js b/containers/CommunityBanner/ReposBanner.js index 66a877c..d141cd8 100644 --- a/containers/CommunityBanner/ReposBanner.js +++ b/containers/CommunityBanner/ReposBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/SubscribersBanner.js b/containers/CommunityBanner/SubscribersBanner.js index f9d10f7..8c0a05f 100644 --- a/containers/CommunityBanner/SubscribersBanner.js +++ b/containers/CommunityBanner/SubscribersBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/TagsBanner.js b/containers/CommunityBanner/TagsBanner.js index 17b5839..9ff76a2 100644 --- a/containers/CommunityBanner/TagsBanner.js +++ b/containers/CommunityBanner/TagsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/ThreadsBanner.js b/containers/CommunityBanner/ThreadsBanner.js index ed02839..6a0c859 100644 --- a/containers/CommunityBanner/ThreadsBanner.js +++ b/containers/CommunityBanner/ThreadsBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/VideosBanner.js b/containers/CommunityBanner/VideosBanner.js index 6f27947..d368a8d 100644 --- a/containers/CommunityBanner/VideosBanner.js +++ b/containers/CommunityBanner/VideosBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/CommunityBanner/index.js b/containers/CommunityBanner/index.js index a3cb8e2..1f0bf72 100644 --- a/containers/CommunityBanner/index.js +++ b/containers/CommunityBanner/index.js @@ -5,12 +5,9 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' - -import { makeDebugger, storePlug, stripMobx, ROUTE } from '../../utils' -import * as logic from './logic' +import { ROUTE } from '@constant' +import { buildLog, connectStore, stripMobx } from '@utils' import PostsBanner from './PostsBanner' import JobsBanner from './JobsBanner' @@ -21,9 +18,10 @@ import ThreadsBanner from './ThreadsBanner' import SubscribersBanner from './SubscribersBanner' import { BannerContainer } from './styles' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CommunityBanner') +const log = buildLog('C:CommunityBanner') /* eslint-enable no-unused-vars */ const ChildBanner = ({ @@ -96,41 +94,33 @@ const ChildBanner = ({ } } -class CommunityBannerContainer extends React.Component { - componentDidMount() { - const { communityBanner } = this.props - logic.init(communityBanner) - } +const CommunityBannerContainer = ({ communityBanner }) => { + useInit(communityBanner) - render() { - const { communityBanner } = this.props - const { - curRoute, - postsTotalCount, - jobsTotalCount, - videosTotalCount, - reposTotalCount, - tagsTotalCount, - threadsTotalCount, - } = communityBanner + const { + curRoute, + postsTotalCount, + jobsTotalCount, + videosTotalCount, + reposTotalCount, + tagsTotalCount, + threadsTotalCount, + } = communityBanner - return ( - - - - ) - } + return ( + + + + ) } -export default inject(storePlug('communityBanner'))( - observer(CommunityBannerContainer) -) +export default connectStore(CommunityBannerContainer) diff --git a/containers/CommunityBanner/logic.js b/containers/CommunityBanner/logic.js index a18daa5..3e480e5 100644 --- a/containers/CommunityBanner/logic.js +++ b/containers/CommunityBanner/logic.js @@ -1,17 +1,18 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { makeDebugger, asyncRes, $solver } from '../../utils' -import SR71 from '../../utils/network/sr71' +import { asyncSuit, buildLog } from '@utils' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CommunityBanner') +const log = buildLog('L:CommunityBanner') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export function loadPosts() { @@ -31,20 +32,33 @@ const DataSolver = [ { match: asyncRes('pagedPosts'), action: ({ pagedPosts: { totalCount: postsTotalCount } }) => - store.markState({ postsTotalCount }), + store.mark({ postsTotalCount }), }, { match: asyncRes('tags'), action: ({ tags: { totalCount: tagsTotalCount } }) => { - store.markState({ tagsTotalCount }) + store.mark({ tagsTotalCount }) }, }, ] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/CommunityBanner/store.js b/containers/CommunityBanner/store.js index f3bafd3..01c576a 100644 --- a/containers/CommunityBanner/store.js +++ b/containers/CommunityBanner/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunityBannerStore') +const log = buildLog('S:CommunityBannerStore') /* eslint-enable no-unused-vars */ const CommunityBannerStore = t @@ -51,7 +51,7 @@ const CommunityBannerStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CommunityBanner/styles/common_banner.js b/containers/CommunityBanner/styles/common_banner.js index 0215aea..7c93479 100644 --- a/containers/CommunityBanner/styles/common_banner.js +++ b/containers/CommunityBanner/styles/common_banner.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { Img } from '../../../components' +import { Img } from '@components' import { BaseBanner, BaseBannerContent } from './index' diff --git a/containers/CommunityBanner/styles/index.js b/containers/CommunityBanner/styles/index.js index c961fde..d8c570a 100644 --- a/containers/CommunityBanner/styles/index.js +++ b/containers/CommunityBanner/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' export const BaseBanner = styled.div` position: relative; diff --git a/containers/CommunityContent/JobsContent.js b/containers/CommunityContent/JobsContent.js index 116a904..20d021a 100644 --- a/containers/CommunityContent/JobsContent.js +++ b/containers/CommunityContent/JobsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import JobsTable from '../../components/JobsTable' +import JobsTable from '@components/JobsTable' import * as logic from './logic' const JobsContent = ({ data, restProps: { jobsLoading } }) => ( diff --git a/containers/CommunityContent/PostsContent.js b/containers/CommunityContent/PostsContent.js index ed6f78b..cc4ba02 100644 --- a/containers/CommunityContent/PostsContent.js +++ b/containers/CommunityContent/PostsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import PostsTable from '../../components/PostsTable' +import PostsTable from '@components/PostsTable' // import { OperationWrapper } from './styles' import * as logic from './logic' diff --git a/containers/CommunityContent/ReposContent.js b/containers/CommunityContent/ReposContent.js index 4567fba..d670c56 100644 --- a/containers/CommunityContent/ReposContent.js +++ b/containers/CommunityContent/ReposContent.js @@ -1,6 +1,6 @@ import React from 'react' -import ReposTable from '../../components/ReposTable' +import ReposTable from '@components/ReposTable' // import { OperationWrapper } from './styles' import * as logic from './logic' diff --git a/containers/CommunityContent/TagsContent.js b/containers/CommunityContent/TagsContent.js index f40bf2a..d1e64e3 100644 --- a/containers/CommunityContent/TagsContent.js +++ b/containers/CommunityContent/TagsContent.js @@ -1,5 +1,5 @@ import React from 'react' -import TagsTable from '../../components/TagsTable' +import TagsTable from '@components/TagsTable' import * as logic from './logic' diff --git a/containers/CommunityContent/ThreadsContent.js b/containers/CommunityContent/ThreadsContent.js index 0219a9b..013bbe2 100644 --- a/containers/CommunityContent/ThreadsContent.js +++ b/containers/CommunityContent/ThreadsContent.js @@ -1,6 +1,6 @@ import React from 'react' -import ThreadsTable from '../../components/ThreadsTable' +import ThreadsTable from '@components/ThreadsTable' // import { OperationWrapper } from './styles' // import * as logic from './logic' diff --git a/containers/CommunityContent/UsersContent.js b/containers/CommunityContent/UsersContent.js index 735f343..fad1615 100644 --- a/containers/CommunityContent/UsersContent.js +++ b/containers/CommunityContent/UsersContent.js @@ -1,6 +1,6 @@ import React from 'react' -import UsersTable from '../../components/UsersTable' +import UsersTable from '@components/UsersTable' // import * as logic from './logic' const UsersContent = ({ data, restProps: { usersLoading } }) => ( diff --git a/containers/CommunityContent/VideosContent.js b/containers/CommunityContent/VideosContent.js index fd05775..1124750 100644 --- a/containers/CommunityContent/VideosContent.js +++ b/containers/CommunityContent/VideosContent.js @@ -1,6 +1,6 @@ import React from 'react' -import VideosTable from '../../components/VideosTable' +import VideosTable from '@components/VideosTable' import * as logic from './logic' const VideosContent = ({ data, restProps: { videosLoading } }) => ( diff --git a/containers/CommunityContent/index.js b/containers/CommunityContent/index.js index e845ea5..4ce6eeb 100644 --- a/containers/CommunityContent/index.js +++ b/containers/CommunityContent/index.js @@ -5,11 +5,9 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' - -import { makeDebugger, storePlug, ROUTE } from '../../utils' +import { ROUTE } from '@constant' +import { buildLog, connectStore } from '@utils' import PostsContent from './PostsContent' import JobsContent from './JobsContent' @@ -20,10 +18,10 @@ import ThreadsContent from './ThreadsContent' import UsersContent from './UsersContent' import { Wrapper } from './styles' -import * as logic from './logic' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CommunityContent') +const log = buildLog('C:CommunityContent') /* eslint-enable no-unused-vars */ const ChildContent = ({ @@ -68,48 +66,36 @@ const ChildContent = ({ } } -class CommunityContentContainer extends React.Component { - componentDidMount() { - const { communityContent } = this.props - logic.init(communityContent) - } +const CommunityContentContainer = ({ communityContent }) => { + useInit(communityContent) - componentWillUnmount() { - logic.uninit() - } + const { + curRoute, + pagedPostsData, + pagedJobsData, + pagedVideosData, + pagedReposData, + pagedTagsData, + pagedThreadsData, + pagedSubscribersData, + } = communityContent + const restProps = { ...communityContent } - render() { - const { communityContent } = this.props - const { - curRoute, - pagedPostsData, - pagedJobsData, - pagedVideosData, - pagedReposData, - pagedTagsData, - pagedThreadsData, - pagedSubscribersData, - } = communityContent - const restProps = { ...communityContent } - - return ( - - - - ) - } + return ( + + + + ) } -export default inject(storePlug('communityContent'))( - observer(CommunityContentContainer) -) +export default connectStore(CommunityContentContainer) diff --git a/containers/CommunityContent/logic.js b/containers/CommunityContent/logic.js index 3d79e8c..6e16cd1 100644 --- a/containers/CommunityContent/logic.js +++ b/containers/CommunityContent/logic.js @@ -1,32 +1,22 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { - asyncRes, - // asyncErr, - $solver, - // ERR, - makeDebugger, - EVENT, - ROUTE, - TYPE, - scrollIntoEle, -} from '../../utils' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' +import { EVENT, ROUTE, TYPE } from '@constant' +import { asyncSuit, buildLog, scrollIntoEle } from '@utils' import S from './schema' -import SR71 from '../../utils/network/sr71' - +const { SR71, asyncRes, $solver } = asyncSuit const sr71$ = new SR71({ - resv_event: [EVENT.SIDEBAR_MENU_CHANGE], + recieve: [EVENT.SIDEBAR_MENU_CHANGE], }) -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CommunityContent') +const log = buildLog('L:CommunityContent') /* eslint-enable no-unused-vars */ +let sub$ = null let store = null const commonFilter = (page, community = 'home') => { @@ -38,35 +28,35 @@ const commonFilter = (page, community = 'home') => { export function loadPosts(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ postsLoading: true }) + store.mark({ postsLoading: true }) const { mainPath: community } = store.curRoute sr71$.query(S.pagedPosts, commonFilter(page, community)) } export function loadJobs(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ jobsLoading: true }) + store.mark({ jobsLoading: true }) const { mainPath: community } = store.curRoute sr71$.query(S.pagedJobs, commonFilter(page, community)) } export function loadVideos(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ videosLoading: true }) + store.mark({ videosLoading: true }) const { mainPath: community } = store.curRoute sr71$.query(S.pagedVideos, commonFilter(page, community)) } export function loadRepos(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ reposLoading: true }) + store.mark({ reposLoading: true }) const { mainPath: community } = store.curRoute sr71$.query(S.pagedRepos, commonFilter(page, community)) } export function loadSubscribers(page = 1) { scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ usersLoading: true }) + store.mark({ usersLoading: true }) const size = PAGE_SIZE.D const args = { @@ -80,7 +70,7 @@ export function loadSubscribers(page = 1) { export function loadTags() { scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ tagsLoading: true }) + store.mark({ tagsLoading: true }) const { mainPath: community } = store.curRoute sr71$.query(S.partialTags, { community, all: true }) @@ -93,7 +83,7 @@ export function onDelete() {} // Data & Error handlers // ############################### const cancleLoading = () => { - store.markState({ + store.mark({ // communitiesLoading: false, postsLoading: false, jobsLoading: false, @@ -109,7 +99,7 @@ const DataSolver = [ match: asyncRes('pagedPosts'), action: ({ pagedPosts }) => { cancleLoading() - store.markState({ pagedPosts }) + store.mark({ pagedPosts }) }, }, { @@ -118,42 +108,42 @@ const DataSolver = [ cancleLoading() console.log('communitySubscribers get: ', pagedSubscribers) - store.markState({ pagedSubscribers }) + store.mark({ pagedSubscribers }) }, }, { match: asyncRes('pagedJobs'), action: ({ pagedJobs }) => { cancleLoading() - store.markState({ pagedJobs }) + store.mark({ pagedJobs }) }, }, { match: asyncRes('pagedVideos'), action: ({ pagedVideos }) => { cancleLoading() - store.markState({ pagedVideos }) + store.mark({ pagedVideos }) }, }, { match: asyncRes('pagedRepos'), action: ({ pagedRepos }) => { cancleLoading() - store.markState({ pagedRepos }) + store.mark({ pagedRepos }) }, }, { match: asyncRes('partialTags'), action: ({ partialTags }) => { cancleLoading() - store.markState({ pagedTags: partialTags }) + store.mark({ pagedTags: partialTags }) }, }, { match: asyncRes(EVENT.SIDEBAR_MENU_CHANGE), action: res => { const { /* mainPath */ subPath } = res[EVENT.SIDEBAR_MENU_CHANGE].data - debug('SIDEBAR_MENU_CHANGE ', res[EVENT.SIDEBAR_MENU_CHANGE].data) + log('SIDEBAR_MENU_CHANGE ', res[EVENT.SIDEBAR_MENU_CHANGE].data) switch (subPath) { case ROUTE.TAGS: { @@ -186,16 +176,22 @@ const DataSolver = [ ] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - debug(store) - if (sub$) return false - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) -} - -export function uninit() { - if (!sub$) return false - debug('===== do uninit') - sub$.unsubscribe() - sub$ = null +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/CommunityContent/store.js b/containers/CommunityContent/store.js index 7a77f2e..d1f0653 100644 --- a/containers/CommunityContent/store.js +++ b/containers/CommunityContent/store.js @@ -16,11 +16,11 @@ import { PagedThreads, PagedCategories, emptyPagiData, -} from '../../stores/SharedModel' +} from '@model' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunityContentStore') +const log = buildLog('S:CommunityContentStore') /* eslint-enable no-unused-vars */ const CommunityContentStore = t @@ -81,7 +81,7 @@ const CommunityContentStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CommunityContent/styles/index.js b/containers/CommunityContent/styles/index.js index 3fc5fe9..ada3c3d 100644 --- a/containers/CommunityContent/styles/index.js +++ b/containers/CommunityContent/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { Img } from '../../../components' +import { Img } from '@components' export const CommunityIcon = styled(Img)` width: 30px; diff --git a/containers/CommunityEditor/index.js b/containers/CommunityEditor/index.js index 46dedfb..1c7ac92 100644 --- a/containers/CommunityEditor/index.js +++ b/containers/CommunityEditor/index.js @@ -5,13 +5,9 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' +import { buildLog, connectStore } from '@utils' -import { makeDebugger, storePlug } from '../../utils' - -// TODO: EditableImage import { Button, Icon, @@ -19,111 +15,101 @@ import { Space, FileUploader, StatusBox, -} from '../../components' -import { Wrapper, Logo, Divider, ActionBtns, ImageWrapper } from './styles' +} from '@components' -import * as logic from './logic' +// TODO: EditableImage +import { Wrapper, Logo, Divider, ActionBtns, ImageWrapper } from './styles' +import { + useInit, + profileChange, + cancleEdit, + mutateConfirm, + uploadPic, +} from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CommunityEditor') +const log = buildLog('C:CommunityEditor') /* eslint-enable no-unused-vars */ -class CommunityEditorContainer extends React.Component { - componentDidMount() { - const { communityEditor, editData } = this.props - logic.init(communityEditor, editData) - } +const CommunityEditorContainer = ({ communityEditor, editData }) => { + useInit(communityEditor, editData) - componentWillUnmount() { - logic.uninit() - } + const { + communityData, + mutating, + success, + error, + warn, + statusMsg, + isEdit, + } = communityEditor - render() { - const { communityEditor } = this.props - const { - communityData, - mutating, - success, - error, - warn, - statusMsg, - isEdit, - } = communityEditor - - return ( - - coderplanets -

- {isEdit ? '编辑' : '创建'} - 社区 -

- -
- {communityData.logo ? ( - - - - ) : ( - - - - - - )} -
- - - -
- - - - + + {mutating ? ( + + ) : ( + - - {mutating ? ( - - ) : ( - - )} - -
- ) - } + )} + + + ) } -export default inject(storePlug('communityEditor'))( - observer(CommunityEditorContainer) -) +export default connectStore(CommunityEditorContainer) diff --git a/containers/CommunityEditor/logic.js b/containers/CommunityEditor/logic.js index a4799eb..4d9b71b 100644 --- a/containers/CommunityEditor/logic.js +++ b/containers/CommunityEditor/logic.js @@ -1,26 +1,19 @@ import R from 'ramda' +import { useEffect } from 'react' -import { - makeDebugger, - $solver, - asyncRes, - asyncErr, - ERR, - TYPE, - meteorState, - closePreviewer, - cast, -} from '../../utils' -import S from './schema' -import SR71 from '../../utils/network/sr71' +import { TYPE, ERR } from '@constant' +import { asyncSuit, buildLog, meteorState, closePreviewer, cast } from '@utils' -const sr71$ = new SR71() -let sub$ = null +import S from './schema' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CommunityEditor') +const log = buildLog('L:CommunityEditor') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export const profileChange = R.curry((thread, e) => { @@ -39,7 +32,7 @@ export const mutateConfirm = () => { ...store.communityData, } - store.markState({ mutating: true }) + store.mark({ mutating: true }) if (store.isEdit) { return sr71$.mutate(S.updateCommunity, cast(['id', ...requiredArgs], args)) @@ -49,7 +42,7 @@ export const mutateConfirm = () => { } const initEditData = editData => { - store.markState({ + store.mark({ community: editData, isEdit: true, }) @@ -57,7 +50,7 @@ const initEditData = editData => { // TODO: move to utils: closePreviewer export function cancleEdit() { - store.markState({ + store.mark({ community: {}, isEdit: false, }) @@ -69,7 +62,7 @@ export function cancleEdit() { // ############################### const cancleLoading = () => { - store.markState({ mutating: false }) + store.mark({ mutating: false }) } const DataSolver = [ @@ -99,24 +92,32 @@ const ErrSolver = [ { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) cancleLoading() }, }, ] -export function init(selectedStore, editData) { - store = selectedStore - - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - - if (editData) { - initEditData(editData) - } -} - -export function uninit() { - cancleEdit() - cancleLoading() +// ############################### +// init & uninit +// ############################### +export const useInit = (_store, editData) => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + if (editData) initEditData(editData) + + return () => { + if (!sub$) return false + sub$.unsubscribe() + cancleEdit() + cancleLoading() + sub$ = null + } + }, + [_store, editData] + ) } diff --git a/containers/CommunityEditor/store.js b/containers/CommunityEditor/store.js index 49c5480..88a0e9d 100644 --- a/containers/CommunityEditor/store.js +++ b/containers/CommunityEditor/store.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { markStates, makeDebugger, stripMobx } from '../../utils' -import { Community } from '../../stores/SharedModel' +import { Community } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunityEditorStore') +const log = buildLog('S:CommunityEditorStore') /* eslint-enable no-unused-vars */ const CommunityEditorStore = t @@ -38,9 +38,9 @@ const CommunityEditorStore = t .actions(self => ({ updateCommunity(sobj) { const community = R.merge(self.community, { ...sobj }) - self.markState({ community }) + self.mark({ community }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CommunityEditor/styles/index.js b/containers/CommunityEditor/styles/index.js index 32073d0..82a5d43 100644 --- a/containers/CommunityEditor/styles/index.js +++ b/containers/CommunityEditor/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { animate } from '../../../utils' +import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/CommunitySetter/index.js b/containers/CommunitySetter/index.js index d9cbff5..d030787 100644 --- a/containers/CommunitySetter/index.js +++ b/containers/CommunitySetter/index.js @@ -6,9 +6,9 @@ import React from 'react' import R from 'ramda' -import { inject, observer } from 'mobx-react' -import { Pagi } from '../../components' +import { uid, buildLog, connectStore } from '@utils' +import { Pagi } from '@components' import { Wrapper, @@ -19,11 +19,10 @@ import { SetterTitle, } from './styles' -import { uid, makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, setCommunity, getAllCommunities } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:CommunitySetter') +const log = buildLog('C:CommunitySetter') /* eslint-enable no-unused-vars */ const CommunitiesList = ({ thread, source, communities, selectedids }) => ( @@ -32,7 +31,7 @@ const CommunitiesList = ({ thread, source, communities, selectedids }) => ( {c.title} @@ -41,51 +40,43 @@ const CommunitiesList = ({ thread, source, communities, selectedids }) => ( ) -class CommunitySetterContainer extends React.Component { - componentDidMount() { - const { communitySetter } = this.props - logic.init(communitySetter) - } +const CommunitySetterContainer = ({ communitySetter, editData }) => { + useInit(communitySetter) - render() { - const { communitySetter, editData } = this.props - const { pagedCommunitiesData } = communitySetter - const { thread } = editData + const { pagedCommunitiesData } = communitySetter + const { thread } = editData - const source = editData.data - const selectedids = R.pluck('id', source.communities) + const source = editData.data + const selectedids = R.pluck('id', source.communities) - return ( - - {source.title} -

设置社区

- - {pagedCommunitiesData ? ( - - + {source.title} +

设置社区

+ + {pagedCommunitiesData ? ( + + + +
+ - -
- -
- - ) : ( -
- )} - - ) - } +
+ + ) : ( +
+ )} + + ) } -export default inject(storePlug('communitySetter'))( - observer(CommunitySetterContainer) -) +export default connectStore(CommunitySetterContainer) diff --git a/containers/CommunitySetter/logic.js b/containers/CommunitySetter/logic.js index a027efc..8349d3e 100644 --- a/containers/CommunitySetter/logic.js +++ b/containers/CommunitySetter/logic.js @@ -1,25 +1,20 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { - makeDebugger, - $solver, - asyncRes, - closePreviewer, - TYPE, - THREAD, -} from '../../utils' -import SR71 from '../../utils/network/sr71' +import { PAGE_SIZE } from '@config' +import { TYPE, THREAD } from '@constant' +import { asyncSuit, buildLog, closePreviewer } from '@utils' -import { PAGE_SIZE } from '../../config' import S from './schema' +const { SR71, asyncRes, $solver } = asyncSuit const sr71$ = new SR71() -let sub$ = null /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:CommunitySetter') +const log = buildLog('L:CommunitySetter') /* eslint-enable no-unused-vars */ +let sub$ = null let store = null const commonFilter = page => { @@ -48,7 +43,7 @@ export function setCommunity(thread, id, communityId) { const DataSolver = [ { match: asyncRes('pagedCommunities'), - action: ({ pagedCommunities }) => store.markState({ pagedCommunities }), + action: ({ pagedCommunities }) => store.mark({ pagedCommunities }), }, { match: asyncRes('setCommunity'), @@ -66,11 +61,24 @@ const DataSolver = [ ] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore +// ############################### +// init & uninit +// ############################### +export const useInit = (_store, editData) => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + getAllCommunities() - getAllCommunities() + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store, editData] + ) } diff --git a/containers/CommunitySetter/store.js b/containers/CommunitySetter/store.js index de9bfeb..5d3ccf2 100644 --- a/containers/CommunitySetter/store.js +++ b/containers/CommunitySetter/store.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { PagedCommunities } from '../../stores/SharedModel' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { PagedCommunities } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunitySetterStore') +const log = buildLog('S:CommunitySetterStore') /* eslint-enable no-unused-vars */ const CommunitySetterStore = t @@ -25,7 +25,7 @@ const CommunitySetterStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/CommunitySetter/styles/index.js b/containers/CommunitySetter/styles/index.js index 200b698..a41f9c6 100644 --- a/containers/CommunitySetter/styles/index.js +++ b/containers/CommunitySetter/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { animate } from '../../../utils' +import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/Content/index.js b/containers/Content/index.js index fe67149..5648c36 100644 --- a/containers/Content/index.js +++ b/containers/Content/index.js @@ -5,19 +5,19 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' +import { ROUTE } from '@constant' +import { buildLog, connectStore } from '@utils' + import CommunityContent from '../CommunityContent' import CommunitiesContent from '../CommunitiesContent' import UsersContent from '../UsersContent' // import { CommunityContent, CommunitiesContent } from '.' -import { makeDebugger, storePlug, ROUTE } from '../../utils' -import * as logic from './logic' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Content') +const log = buildLog('C:Content') /* eslint-enable no-unused-vars */ const DomainContent = ({ curRoute }) => { @@ -38,18 +38,12 @@ const DomainContent = ({ curRoute }) => { NOTE: this container is only used for dev mode for some unkown reasion, pages/index will always be the entry in dev mode */ -class ContentContainer extends React.Component { - componentDidMount() { - const { content } = this.props - logic.init(content) - } +const ContentContainer = ({ content }) => { + useInit(content) - render() { - const { content } = this.props - const { curRoute } = content + const { curRoute } = content - return - } + return } -export default inject(storePlug('content'))(observer(ContentContainer)) +export default connectStore(ContentContainer) diff --git a/containers/Content/logic.js b/containers/Content/logic.js index f29268b..4b4d703 100644 --- a/containers/Content/logic.js +++ b/containers/Content/logic.js @@ -1,15 +1,16 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { makeDebugger, $solver } from '../../utils' -import SR71 from '../../utils/network/sr71' - -const sr71$ = new SR71() -let sub$ = null +import { asyncSuit, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Content') +const log = buildLog('L:Content') /* eslint-enable no-unused-vars */ +const { SR71, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export function someMethod() {} @@ -21,9 +22,23 @@ export function someMethod() {} const DataSolver = [] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - debug(store) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + log(store) + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/Content/store.js b/containers/Content/store.js index 5393c6d..930e9e0 100644 --- a/containers/Content/store.js +++ b/containers/Content/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ContentStore') +const log = buildLog('S:ContentStore') /* eslint-enable no-unused-vars */ const ContentStore = t @@ -22,7 +22,7 @@ const ContentStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/DocUploader/index.js b/containers/DocUploader/index.js index e210c8c..20934f2 100644 --- a/containers/DocUploader/index.js +++ b/containers/DocUploader/index.js @@ -5,18 +5,25 @@ */ import React from 'react' import { inject, observer } from 'mobx-react' -import PropTypes from 'prop-types' +import T from 'prop-types' +import R from 'ramda' -import { ASSETS_ENDPOINT } from '../../config' +import { ASSETS_ENDPOINT } from '@config' +import { buildLog, storePlug, uid, Global } from '@utils' import { Wrapper, InputFile } from './styles' -import { makeDebugger, storePlug, uid } from '../../utils' -import { init, onUploadError, getOSSDir, getOSSFileName } from './logic' +import { + init, + uninit, + onUploadError, + getOSSDir, + getOSSFileName, + sendEvent, +} from './logic' -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:DocUploader') -/* eslint-enable no-unused-vars */ +/* eslint-disable-next-line */ +const log = buildLog('C:DocUploader') class DocUploaderContainer extends React.Component { /* @@ -36,20 +43,65 @@ class DocUploaderContainer extends React.Component { state = { ossClient: null, + ossScriptAnchor: null, + ossScriptLoaded: false, // use unique id to init the file input, otherwise it will be the some instance uniqueId: uid.gen(), + initTimestamp: Date.now() / 1000, } componentDidMount() { - const { docUploader } = this.props + this.loadScriptAndInitOSS() + + const { docUploader, pasteImage } = this.props init(docUploader) - this.initOssClient() + + // if (ossScriptLoaded) this.initOssClient() + if (pasteImage) this.initPasteWatcher() } componentWillUnmount() { + log('componentWillUnmount') + const { ossScriptLoaded, ossScriptAnchor } = this.state + /* eslint-disable */ delete this.state.ossClient /* eslint-enable */ + const { pasteImage } = this.props + if (pasteImage) { + Global.removeEventListener('paste', this.handlePaste.bind(this), true) + } + uninit() + + if (ossScriptLoaded) { + ossScriptAnchor.removeEventListener('load', () => { + this.setState({ ossScriptLoaded: false }) + }) + } + } + + loadScriptAndInitOSS() { + let { ossScriptAnchor } = this.state + + ossScriptAnchor = document.createElement('script') + ossScriptAnchor.src = + 'https://gosspublic.alicdn.com/aliyun-oss-sdk-5.2.0.min.js' + ossScriptAnchor.async = true + document.getElementsByTagName('head')[0].appendChild(ossScriptAnchor) + + ossScriptAnchor.addEventListener('load', () => { + log('load done') + this.initOssClient() + this.setState({ ossScriptLoaded: true, ossScriptAnchor }) + }) + ossScriptAnchor.addEventListener('error', () => { + this.setState({ ossScriptLoaded: false, ossScriptAnchor: null }) + }) + } + + initPasteWatcher() { + log('initPasteWatcher') + Global.addEventListener('paste', this.handlePaste.bind(this), true) } initOssClient() { @@ -74,6 +126,11 @@ class DocUploaderContainer extends React.Component { /* eslint-enable */ } + handlePaste({ clipboardData: { files } }) { + const file = files[0] + this.doUploadFile(file) + } + onUploadDone(url) { /* eslint-disable */ this.props.onUploadDone(url) @@ -82,35 +139,51 @@ class DocUploaderContainer extends React.Component { this.initOssClient() } - /* eslint-disable */ - handleCHange(e) { - console.log('handleCHange e: ', e) - const files = e.target.files - /* console.log('handleCHange files: ', files) */ - const theFile = files[0] - if (!theFile) return false - - const FileSize = theFile.size / 1024 / 1024 - if (FileSize > 2) { - return alert('资源有限,请不要上传大于 2MB 的文件') + handleInputChange({ target: { files } }) { + // const {files} = e.target.files + const file = files[0] + + this.doUploadFile(file) + } + + doUploadFile(file) { + const { ossScriptLoaded } = this.state + if (!ossScriptLoaded) return alert('脚本未加载...') + if (!file || !R.startsWith('image/', file.type)) return false + + const fileSize = file.size / 1024 / 1024 + if (fileSize > 2) return alert('资源有限,请不要上传大于 2MB 的文件') + + const { onUploadStart, onUploadError } = this.props + const { ossClient, initTimestamp } = this.state + + const curTimeStamp = Date.now() / 1000 + if (curTimeStamp - initTimestamp <= 3) { + return false } - this.props.onUploadStart() - const filename = theFile.name + this.setState({ initTimestamp: curTimeStamp }) + + sendEvent('start') + onUploadStart() + const filename = file.name const fullpath = `${getOSSDir()}/${getOSSFileName(filename)}` - this.state.ossClient - .multipartUpload(fullpath, theFile) + ossClient + .multipartUpload(fullpath, file) .then(result => { const url = `${ASSETS_ENDPOINT}/${result.name}` + sendEvent('finish') this.onUploadDone(url) }) - .catch(err => this.props.onUploadError(err)) + .catch(err => { + sendEvent('finish') + onUploadError(err) + }) } - /* eslint-enable */ render() { - const { children } = this.props + const { children, fileType } = this.props const { uniqueId } = this.state return ( @@ -119,8 +192,8 @@ class DocUploaderContainer extends React.Component { type="file" name={`file-${uniqueId}`} id={`file-${uniqueId}`} - accept="image/*" - onChange={this.handleCHange.bind(this)} + accept={fileType} + onChange={this.handleInputChange.bind(this)} /> {/* eslint-disable */} @@ -131,17 +204,21 @@ class DocUploaderContainer extends React.Component { } DocUploaderContainer.propTypes = { - children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, - onUploadStart: PropTypes.func, - onUploadError: PropTypes.func, - onUploadDone: PropTypes.func, - docUploader: PropTypes.any.isRequired, + children: T.oneOfType([T.string, T.node]).isRequired, + onUploadStart: T.func, + onUploadError: T.func, + onUploadDone: T.func, + docUploader: T.any.isRequired, + pasteImage: T.bool, + fileType: T.oneOf(['image/*']), } DocUploaderContainer.defaultProps = { - onUploadStart: debug, - onUploadDone: debug, + onUploadStart: log, + onUploadDone: log, onUploadError, + pasteImage: true, + fileType: 'image/*', } export default inject(storePlug('docUploader'))(observer(DocUploaderContainer)) diff --git a/containers/DocUploader/logic.js b/containers/DocUploader/logic.js index e2a0362..b8f1a81 100644 --- a/containers/DocUploader/logic.js +++ b/containers/DocUploader/logic.js @@ -1,26 +1,23 @@ // import R from 'ramda' -import { makeDebugger, $solver, asyncErr, ERR } from '../../utils' -import SR71 from '../../utils/network/sr71' +import { EVENT, ERR } from '@constant' +import { asyncSuit, buildLog, send } from '@utils' -// import S from './schema' +/* eslint-disable-next-line */ +const log = buildLog('L:DocUploader') +// import S from './schema' +const { SR71, $solver, asyncErr } = asyncSuit const sr71$ = new SR71() -let sub$ = null - -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:DocUploader') -/* eslint-enable no-unused-vars */ +let sub$ = null let store = null -export function onUploadError(error) { - debug('onUploadError: ', error) +export const onUploadError = () => store.toast('error', { title: '暂时无法上传图片', msg: '请检查 OSS key 配置', }) -} export const getOSSDir = () => { const thread = store.curThread @@ -40,8 +37,18 @@ export const getOSSFileName = filename => { const userName = store.accountInfo.nickname const userId = store.accountInfo.id const id = store.viewingData.id || 'new' + const curDate = new Date() + const curTime = curDate.getTime() - return `${community}-${thread}-${id}-${userName}-${userId}-${filename}` + return `${community}-${thread}-${id}-${userName}-${userId}-${curTime}-${filename}` +} + +export const sendEvent = (state = 'start') => { + if (state === 'start') { + return send(EVENT.UPLOAD_IMG_START) + } + + return send(EVENT.UPLOAD_IMG_FINISH) } // ############################### @@ -51,30 +58,36 @@ export const getOSSFileName = filename => { const DataSolver = [] const ErrSolver = [ { - match: asyncErr(ERR.CRAPHQL), - action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) - }, + match: asyncErr(ERR.GRAPHQL), + action: () => {}, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + // errRescue({ type: ERR.TIMEOUT, details, path: 'DocUploader' }) + log('TODO: errRescue', details) }, }, { match: asyncErr(ERR.NETWORK), - action: ({ details }) => { - debug('ERR.NETWORK -->', details) + action: () => { + // errRescue({ type: ERR.NETWORK, path: 'DocUploader' }) + log('TODO: errRescue') }, }, ] -export function init(_store) { - if (store) return false +export const init = _store => { store = _store - debug(store) - if (sub$) sub$.unsubscribe() + if (sub$) return false sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) } + +export const uninit = () => { + if (!sub$) return false + log('===== do uninit') + sr71$.stop() + sub$.unsubscribe() + sub$ = null +} diff --git a/containers/DocUploader/store.js b/containers/DocUploader/store.js index 616d30f..98a936a 100644 --- a/containers/DocUploader/store.js +++ b/containers/DocUploader/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:DocUploader') +const log = buildLog('S:DocUploader') /* eslint-enable no-unused-vars */ const DocUploader = t @@ -34,7 +34,7 @@ const DocUploader = t toast(type, options) { self.root.toast(type, options) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/Doraemon/AlertBar.js b/containers/Doraemon/AlertBar.js deleted file mode 100644 index e1a881c..0000000 --- a/containers/Doraemon/AlertBar.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react' - -import { ICON_CMD } from '../../config' -import { Wrapper, WarningIcon, Info, Title, Desc } from './styles/alert_bar' - -import { cutFrom, Trans } from '../../utils' - -const AlertBar = ({ value, searchThread }) => ( - - - - - 未找到您需要的 - {Trans(searchThread)} " - {cutFrom(value, 20)} - " - - 请尝试其他关键字或查看帮助文档 - - -) - -export default AlertBar diff --git a/containers/Doraemon/InputEditor.js b/containers/Doraemon/InputEditor.js deleted file mode 100644 index 1897ce6..0000000 --- a/containers/Doraemon/InputEditor.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * - * Doraemon:InputEditor - * - */ - -import React from 'react' -import keydown from 'react-keydown' - -import * as logic from './logic' - -import { EditorBar, InputBar, PrefixWraper } from './styles/input_editor' - -import InputPrefix from './InputPrefix' -// const debug = makeDebugger('C:Doraemon:InputEditor') - -export default class InputEditor extends React.Component { - /* eslint-disable class-methods-use-this */ - @keydown(['ctrl+g', 'ctrl+c']) - hidePanel() { - // debug('this bitch? ') - logic.hidePanel() - } - - // Prevent default behavior in text input while pressing arrow up - // https://stackoverflow.com/questions/1080532/prevent-default-behavior-in-text-input-while-pressing-arrow-up - @keydown(['ctrl+p']) - up(e) { - // console.log('keydown ctrl+p') - logic.navSuggestion('up') - e.preventDefault() - } - - @keydown(['ctrl+n']) - down(e) { - logic.navSuggestion('down') - e.preventDefault() - } - - /* eslint-enable class-methods-use-this */ - - render() { - const { searching, value, prefix } = this.props - - // if you want to use innerRef - // see https://github.com/styled-components/styled-components/issues/102 - // innerRef={input => (this.doraemonInput = input)} - return ( - - - - - - - ) - } -} diff --git a/containers/Doraemon/InputPrefix.js b/containers/Doraemon/InputPrefix.js deleted file mode 100644 index c7d173d..0000000 --- a/containers/Doraemon/InputPrefix.js +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react' - -import { ICON_CMD } from '../../config' - -import { - LoadingIcon, - PrefixIcon, - PrefixSearchIcon, - PrefixMagicIcon, -} from './styles/input_prefix' - -const InputPrefix = ({ prefix, searching }) => { - if (searching) { - return - } - - switch (prefix) { - case '': { - return - } - case '#': { - return - } - case '@': { - return - } - case '?': { - return - } - case '/': { - return - } - case 'login': { - return - } - case 'theme': { - return - } - default: { - return - } - } -} - -export default InputPrefix diff --git a/containers/Doraemon/Pockect.js b/containers/Doraemon/Pockect.js deleted file mode 100644 index 1532cf7..0000000 --- a/containers/Doraemon/Pockect.js +++ /dev/null @@ -1,96 +0,0 @@ -import { Subject, of } from 'rxjs' -import R from 'ramda' -import PubSub from 'pubsub-js' - -import { - catchError, - switchMap, - debounceTime, - takeUntil, - map, - filter, - merge, -} from 'rxjs/operators' - -import { makeDebugger, isEmptyValue, EVENT } from '../../utils' -import { - searchablePrefix, - startWithSpecialPrefix, - startWithSlash, - Advisor, -} from './helper/advisor' - -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Doraemon:pocket') -/* eslint-enable no-unused-vars */ - -export default class Pockect { - constructor(store) { - this.store = store - // if only pass down the store.allSuggestions, it will not reactive - // because store.allSuggestions is only json, has no mobx magic - // this.advisor = new Advisor(store.allSuggestions) - this.advisor = new Advisor(store) - - this.input$ = new Subject() - - this.stop$ = new Subject() // esc, pageClick ... - // TODO: netfix search use throttle - // see: https://www.youtube.com/watch?v=XRYN2xt11Ek - this.generalInput$ = this.input$.pipe(debounceTime(200)) // .distinctUntilChanged() - - PubSub.subscribe(EVENT.LOGIN_PANEL, () => { - this.store.handleLogin() - this.input$.next('/login/') - }) - - /* this.search$ = this.generalInput$.pipe(filter(v => !searchablePrefix(v))) */ - this.search$ = this.generalInput$.pipe(filter(searchablePrefix)) - this.searchUser$ = this.generalInput$.pipe(filter(R.startsWith('@'))) - - this.cmdSuggestionCommon = this.generalInput$.pipe( - filter(startWithSlash), - switchMap(q => - this.advisor.relateSuggestions$(q).pipe(takeUntil(this.stop$)) - ), - catchError(() => of([])) - ) - - this.cmdSuggestionSpecial = this.generalInput$.pipe( - filter(startWithSpecialPrefix), - map(this.advisor.specialSuggestions) - ) - - this.cmdSuggesttion$ = this.cmdSuggestionCommon.pipe( - merge(this.cmdSuggestionSpecial) - ) - } - - query(term) { - // debug('inputForOtherUse: ', this.store.inputForOtherUse) - if (!this.store.inputForOtherUse) { - this.input$.next(term) - } - } - - stop() { - // debug('stop ...') - this.stop$.next() - } - - search() { - return this.search$ - } - - searchUser() { - return this.searchUser$ - } - - cmdSuggesttion() { - return this.cmdSuggesttion$ - } - - emptyInput() { - return this.input$.pipe(filter(isEmptyValue)) - } -} diff --git a/containers/Doraemon/ResultsList.js b/containers/Doraemon/ResultsList.js deleted file mode 100644 index eb7c738..0000000 --- a/containers/Doraemon/ResultsList.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react' -import R from 'ramda' - -import { ICON_CMD } from '../../config' - -import { - InfoBar, - Wrapper, - SuggestionWrapper, - ContentWraper, - Title, - Desc, - Hint, - HintEnter, -} from './styles/results_list' - -import SuggestIcon from './SuggestIcon' - -import { navToSuggestion, selectSuggestion } from './logic' -import { THREAD } from '../../utils' - -const HintIcon = ({ index, active, cur, length }) => { - if (active === cur) { - return - } - if (length <= 9) { - return ^ {index} - } - return null -} - -const ResultsList = ({ searchThread, suggestions, activeRaw }) => ( - - - {suggestions.map((suggestion, i) => ( - - - - {suggestion.title} - {suggestion.desc} - - - - ))} - - -) - -export default ResultsList diff --git a/containers/Doraemon/SuggestIcon.js b/containers/Doraemon/SuggestIcon.js deleted file mode 100644 index ea64b5a..0000000 --- a/containers/Doraemon/SuggestIcon.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * render the icon based on suggestion type - * - */ - -import React from 'react' -import R from 'ramda' - -import { - Wrapper, - ThemeIconWrapper, - Icon, - DoraemonIcon, - ThemeDot, -} from './styles/suggest_icon' -import { DEFAULT_ICON } from '../../config/assets' - -import { themeCoverMap, NON_FILL_COMMUNITY } from '../../utils' -// const debug = makeDebugger('C:Doraemon:NodeIcon') - -const SuggestIcon = ({ round, suggestion: { raw, logo, cmd } }) => { - /* const lowerRaw = R.toLower(raw) */ - if (cmd === 'theme') { - return ( - - - - ) - } - // doraemon cat icon, it's smaller then normal icons - if (raw === 'doraemon_help') { - return ( - - - - ) - } - // normal icons - return ( - - {logo ? ( - - - - ) : null} - - ) -} - -export default SuggestIcon diff --git a/containers/Doraemon/ThreadSelectBar.js b/containers/Doraemon/ThreadSelectBar.js deleted file mode 100644 index 82d04bd..0000000 --- a/containers/Doraemon/ThreadSelectBar.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react' - -// import { ICON_CMD } from '../../config' -import { Wrapper, Selector } from './styles/thread_select_bar' -import { searchThreadOnChange } from './logic' -import { THREAD } from '../../utils' - -const ThreadSelectBar = ({ active }) => ( - - - 社区 - - - 帖子 - - - 视频 - - - 项目 - - - 工作 - - - 用户 - - -) - -export default ThreadSelectBar diff --git a/containers/Doraemon/UtilsBar.js b/containers/Doraemon/UtilsBar.js deleted file mode 100644 index badab50..0000000 --- a/containers/Doraemon/UtilsBar.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react' - -import { Wrapper, Info, Title, Number, Desc } from './styles/utils_bar' - -const UtilsBar = ({ total }) => ( - - - - 共找到结果 <Number>{total}</Number> 条 - - 查看全部 - - -) - -export default UtilsBar diff --git a/containers/Doraemon/helper/advisor.js b/containers/Doraemon/helper/advisor.js deleted file mode 100644 index c11773d..0000000 --- a/containers/Doraemon/helper/advisor.js +++ /dev/null @@ -1,149 +0,0 @@ -/* - * provide advise to Pocket - */ -import R from 'ramda' - -import { from } from 'rxjs' - -import { ICON_CMD } from '../../../config' -import { notEmpty } from '../../../utils' - -const cmdSplit = R.compose( - R.split('/'), - R.slice(1, Infinity) -) -const cmdFull = R.compose( - R.filter(notEmpty), - cmdSplit -) -const cmdHead = R.compose( - R.head, - cmdSplit -) -const cmdLast = R.compose( - R.last, - cmdFull -) -const cmdInit = R.compose( - R.init, - cmdFull -) - -export const startWithSlash = R.startsWith('/') - -export const searchablePrefix = R.compose( - R.not, - R.anyPass([ - R.startsWith('/'), - R.startsWith('?'), - R.startsWith('#'), - R.startsWith('@'), - R.startsWith('>'), - R.startsWith('<'), - ]) -) - -export const startWithSpecialPrefix = R.anyPass([ - R.startsWith('?'), - R.startsWith('#'), - R.startsWith('>'), - R.startsWith('<'), -]) - -// TODO need refactor -export const insertBetweenPath = (path, word = 'threads') => { - switch (path.length) { - case 2: - return R.append(word, R.insert(1, word, path)) - // case 3: - // return R.append(word, R.insert(1, word, path)) - default: - return R.append(word, path) - } -} - -export class Advisor { - constructor(store) { - this.store = store - this.curSuggestions = store.allSuggestions - } - - getSuggestionPath = p => { - if (R.isEmpty(p)) { - return R.path(p, this.curSuggestions) - } - const cmdChain = insertBetweenPath(p) - this.store.markState({ cmdChain }) - return R.path(cmdChain, this.curSuggestions) || {} - } - - suggestionPathInit = R.compose( - this.getSuggestionPath, - cmdInit - ) - - suggestionPath = R.compose( - this.getSuggestionPath, - cmdFull - ) - - suggestionPathThenStartsWith = val => { - const init = this.suggestionPathInit(val) - return R.pickBy((_, k) => R.startsWith(cmdLast(val), k), init) - } - - walkSuggestion = R.ifElse( - R.endsWith('/'), - this.suggestionPath, - this.suggestionPathThenStartsWith - ) - - suggestionBreif = R.compose( - R.values, - R.map(R.pick(['title', 'desc', 'raw', 'logo', 'cmd'])), - this.walkSuggestion - ) - - getSuggestion = R.ifElse( - R.compose( - R.startsWith('/'), - R.tail - ), // avoid multi /, like ///// - () => R.identity([]), - this.suggestionBreif - ) - - relateSuggestions = val => { - // sync with store allSuggestions - this.curSuggestions = this.store.allSuggestions - - return { - prefix: cmdSplit(val).length > 1 ? cmdHead(val) : '/', - data: this.getSuggestion(val), - } - } - - relateSuggestions$ = q => - from(new Promise(resolve => resolve(this.relateSuggestions(q)))) - - specialSuggestions = val => { - // console.log('this.getSuggestionPath(val): ', this.getSuggestionPath(val)) - return { - prefix: R.head(val), - data: [ - { - title: 'Doraemon Pocket 说明书', - desc: '包含搜索,设置,跳转以及开发扩展等使用说明', - raw: 'doraemon_help', - logo: `${ICON_CMD}/doraemon_cat.svg`, - }, - ], - } - /* - return { - prefix: '/', - data: [this.getSuggestionPath(val)], - } - */ - } -} diff --git a/containers/Doraemon/helper/defaultSuggestion.js b/containers/Doraemon/helper/defaultSuggestion.js deleted file mode 100644 index e0fae6f..0000000 --- a/containers/Doraemon/helper/defaultSuggestion.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - those are the default cmd - theme -- - user -- - cheatsheet -- TODO - login -- - */ -import { ICON_CMD, ICON_BASE } from '../../../config' -import { themeMeta } from '../../../utils' - -const cmds = { - theme: { - title: 'theme', - desc: 'awesome themes for hackers', - raw: 'theme', - logo: `${ICON_CMD}/themes.svg`, - - threads: { ...themeMeta }, - }, - user: { - title: 'user', - desc: 'user desc..', - raw: 'user', - logo: `${ICON_CMD}/users.svg`, - }, - cheatsheet: { - title: 'cheatsheet', - desc: 'Cheatsheet desc', - raw: 'cheatsheet', - logo: `${ICON_CMD}/cheatsheet.svg`, - threads: { - react: { - title: 'javascript', - desc: 'javascript cheatsheet', - raw: 'javascript', - logo: `${ICON_BASE}/pl/javascript.svg`, - threads: { - react2: { - title: 'javascript2', - desc: 'javascript2 cheatsheet', - raw: 'javascript2', - logo: `${ICON_BASE}/pl/javascript.svg`, - }, - }, - }, - }, - }, - login: { - title: 'login', - desc: '第三方账号登录', - raw: 'login', - logo: `${ICON_CMD}/login.svg`, - - threads: { - github: { - title: 'github', - desc: '使用 github 账号登录', - raw: 'github', - logo: `${ICON_CMD}/shell_github.svg`, - }, - weixin: { - title: 'weixin', - desc: '使用微信账号登录', - raw: 'weixin', - logo: `${ICON_CMD}/shell_weixin.png`, - }, - weibo: { - title: 'weibo', - desc: '使用微博账号登录', - raw: 'weibo', - logo: `${ICON_CMD}/shell_weibo.png`, - }, - twitter: { - title: 'twitter', - desc: 'sign in with twitter account', - raw: 'twitter', - logo: `${ICON_CMD}/shell_twitter.svg`, - }, - google: { - title: 'google', - desc: 'sign in with google account', - raw: 'google', - logo: `${ICON_CMD}/shell_google.svg`, - }, - }, - }, -} - -export default cmds diff --git a/containers/Doraemon/helper/swissArmyKnife.js b/containers/Doraemon/helper/swissArmyKnife.js deleted file mode 100644 index f11bb59..0000000 --- a/containers/Doraemon/helper/swissArmyKnife.js +++ /dev/null @@ -1,87 +0,0 @@ -import R from 'ramda' -import scrollIntoViewIfNeeded from 'scroll-into-view-if-needed' - -export const lengthE1 = R.compose( - R.equals(1), - R.length -) -export const lengthE2 = R.compose( - R.equals(2), - R.length -) -export const anyNil = R.any(R.isNil) - -export class SwissArmyKnife { - constructor(store) { - this.store = store - this.communities = R.keys(store.communities) - } - - completeInput = (into = false) => { - if (anyNil([this.store.prefix, this.store.activeRaw])) return - - const prefix = R.toLower(this.store.prefix) - const activeRawLast = R.last(this.store.curCmdChain) - - let inputValue = '' - // TODO: support ? opt - if (this.store.prefix === '/') { - inputValue = `${prefix}${activeRawLast}` - } else { - inputValue = `/${prefix}/${activeRawLast}` - } - - if (into) inputValue = `${inputValue}/` - // debug('new input: ', newInput) - this.store.markState({ - inputValue, - }) - } - - scrollIfNeeded = () => { - try { - /* eslint-disable no-undef */ - const { activeRaw } = this.store - scrollIntoViewIfNeeded(document.querySelector(`#${activeRaw}`), true, { - duration: 120, - }) - /* eslint-enable no-undef */ - } catch (e) { - /* eslint-disable no-console */ - console.error('bad selector in scrollIntoViewIfNeeded', e) - /* eslint-enable no-console */ - } - } - - navSuggestion = direction => { - const { prefix, activeRaw } = this.store - if (anyNil([prefix, activeRaw]) || R.isEmpty(activeRaw)) return false - - if (direction === 'up') { - this.store.activeUp() - } else { - this.store.activeDown() - } - this.scrollIfNeeded() - } - - navToSuggestion = suggestion => { - const activeSuggestion = suggestion.toJSON() - this.store.activeTo(activeSuggestion.raw) - } - - // TODO rename to linker - communityLinker = cmdpath => - R.and(R.contains(R.head(cmdpath), this.communities), lengthE1(cmdpath)) - - communityInsideLinker = cmdpath => - R.and(R.contains(R.head(cmdpath), this.communities), lengthE2(cmdpath)) - - stepTwoCmd = R.curry((name, cmdpath) => - R.and(R.equals(name, R.head(cmdpath)), lengthE2(cmdpath)) - ) - - stepOneCmd = R.curry((name, cmdpath) => - R.and(R.equals(name, R.head(cmdpath)), lengthE1(cmdpath)) - ) -} diff --git a/containers/Doraemon/index.js b/containers/Doraemon/index.js deleted file mode 100644 index b6161e6..0000000 --- a/containers/Doraemon/index.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * Magic Doraemon - * - */ - -import React from 'react' -import { inject, observer } from 'mobx-react' - -import { PageOverlay, PanelContainer } from './styles' - -import InputEditor from './InputEditor' -import ResultsList from './ResultsList' - -import ThreadSelectBar from './ThreadSelectBar' -import AlertBar from './AlertBar' -import UtilsBar from './UtilsBar' - -import { makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' - -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Doraemon') -/* eslint-enable no-unused-vars */ -class DoraemonContainer extends React.Component { - constructor(props) { - super(props) - const { doraemon } = props - logic.init(doraemon) - } - // ref={infobar => (this[`infobar${suggestion.title}`] = infobar)} - // ref={wraper => (this.wraper = wraper)} - - render() { - const { doraemon } = this.props - const { - inputValue, - suggestions, - activeRaw, - prefix, - visible, - searching, - showAlert, - showUtils, - showThreadSelector, - searchThread, - searchedTotalCount, - } = doraemon - - // debug('suggestion.raw: ', suggestions.toJSON()) - - return ( - - - - - - {showThreadSelector ? ( - - ) : null} - {showAlert ? ( - - ) : null} - - {showUtils ? : null} - - - ) - } -} - -export default inject(storePlug('doraemon'))(observer(DoraemonContainer)) diff --git a/containers/Doraemon/lang.js b/containers/Doraemon/lang.js deleted file mode 100644 index 3b10560..0000000 --- a/containers/Doraemon/lang.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Doraemon Langs - * - * This contains all the text for the Doraemon component. - */ -import { defineMessages } from 'react-intl' - -export default defineMessages({ - header: { - id: 'containers.Doraemon.header', - defaultMessage: 'This is the Doraemon component !', - }, -}) diff --git a/containers/Doraemon/logic.js b/containers/Doraemon/logic.js deleted file mode 100644 index 8db1db0..0000000 --- a/containers/Doraemon/logic.js +++ /dev/null @@ -1,506 +0,0 @@ -import R from 'ramda' -import Router from 'next/router' - -import SR71 from '../../utils/network/sr71' -import S from './schema' - -import { - makeDebugger, - Global, - dispatchEvent, - asyncRes, - asyncErr, - $solver, - EVENT, - TYPE, - ERR, - prettyNum, - THREAD, - cutFrom, -} from '../../utils' - -import Pockect from './Pockect' -import { SwissArmyKnife } from './helper/swissArmyKnife' -import githubLoginHandler from './oauth/github_handler' - -const debug = makeDebugger('L:Doraemon') -const sr71$ = new SR71() - -let sub$ = null -let store = null -let pockect$ = null -let SAK = null -let cmdResolver = [] - -const queryPocket = () => pockect$.query(store.inputValue) - -export const searchContents = title => { - switch (store.searchThread) { - case THREAD.POST: { - return sr71$.query(S.searchPosts, { title }) - } - case THREAD.JOB: { - return sr71$.query(S.searchJobs, { title }) - } - case THREAD.USER: { - return sr71$.query(S.searchUsers, { name: title }) - } - case THREAD.VIDEO: { - return sr71$.query(S.searchVideos, { title }) - } - case THREAD.REPO: { - return sr71$.query(S.searchRepos, { title }) - } - default: { - return sr71$.query(S.searchCommunities, { title }) - } - } -} - -const initSpecCmdResolver = () => { - cmdResolver = [ - { - match: SAK.stepOneCmd('theme'), - action: () => { - SAK.completeInput(true) - queryPocket() - }, - }, - { - match: SAK.stepOneCmd('login'), - action: () => { - SAK.completeInput(true) - queryPocket() - }, - }, - { - match: SAK.stepOneCmd('debug'), - action: () => { - SAK.completeInput(true) - queryPocket() - store.markState({ - inputForOtherUse: true, - inputValue: Global.localStorage.getItem('debug'), - }) - }, - }, - { - match: SAK.stepOneCmd('hforward'), - action: () => { - debug('SAK.stepOneCmd hforward') - }, - }, - { - match: SAK.stepOneCmd('hbackward'), - action: () => { - debug('SAK.stepOneCmd hbackward') - }, - }, - { - match: SAK.stepOneCmd('cheatsheet'), - action: () => { - debug('SAK.stepOneCmd cheatsheet') - Router.push( - { - pathname: '/', - query: { main: 'cheatsheet' }, - }, - '/cheatsheet' - ) - hidePanel() - }, - }, - { - match: SAK.stepOneCmd('communities'), - action: () => { - debug('SAK.stepOneCmd communities') - Router.push( - { - pathname: '/', - query: { main: 'communities', sub: 'all' }, - }, - '/communities' - ) - hidePanel() - }, - }, - { - match: SAK.stepTwoCmd('theme'), - action: cmdpath => { - const theme = R.last(cmdpath) - store.changeTheme(theme) - }, - }, - { - match: SAK.stepTwoCmd('login'), - action: cmdpath => { - debug('stepTwoCmd login->: ', cmdpath) - switch (R.last(cmdpath)) { - case 'github': { - hidePanel() - return githubLoginHandler(store, sr71$) - } - case 'weibo': - case 'twitter': - case 'google': - case 'weixin': { - const url = - 'https://github.com/coderplanets/coderplanets_web/issues/251' - const win = window.open(url, '_blank') - - // see https://stackoverflow.com/questions/4907843/open-a-url-in-a-new-tab-and-not-a-new-window-using-javascript - return win.focus() - } - default: { - debug('unsupported login method: ', cmdpath) - return hidePanel() - } - } - - /* reference */ - /* http://www.graphql.college/implementing-github-oauth-flow-in-react */ - /* SAK.completeInput(true) */ - /* queryPocket() */ - }, - }, - { - match: SAK.stepTwoCmd('debug'), - action: cmdpath => { - const cmd = R.last(cmdpath) - if (cmd === 'github') { - Global.window.open('https://github.com/visionmedia/debug', '_blank') - } else if (cmd === 'write') { - Global.localStorage.setItem('debug', store.inputValue) - hidePanel() - } - }, - }, - { - match: SAK.communityLinker, - action: cmdpath => { - debug('communityLinker: ', cmdpath) - - // Router.push(url, as) - // TODO: use route store method - Router.push( - { - pathname: '/', - query: { main: cmdpath[0] }, - }, - cmdpath[0] - ) - hidePanel() - }, - }, - { - match: SAK.communityInsideLinker, - action: cmdpath => { - debug('communityInsideLinker: ', cmdpath) - }, - }, - ] -} - -const doSpecCmd = () => { - const cmd = store.curCmdChain - if (!cmd) return - - /* Do not use forEach, cause forEach will not break */ - for (let i = 0; i < cmdResolver.length; i += 1) { - if (cmdResolver[i].match(cmd)) { - return cmdResolver[i].action(cmd) - } - } - return false -} - -const doNavigate = () => { - const { id } = store.activeSuggestion - if (R.startsWith('user-raw', store.activeSuggestion.raw)) { - hidePanel() - return dispatchEvent(EVENT.PREVIEW_OPEN, { - type: TYPE.PREVIEW_USER_VIEW, - data: { id }, - }) - } - - debug('doNavigate cmd: ', store.activeSuggestion) -} - -export function handleShortCuts(e) { - switch (e.key) { - case 'Tab': { - SAK.completeInput() - queryPocket() - e.preventDefault() - break - } - case 'Enter': { - if (store.showThreadSelector) { - doNavigate() - } else { - doSpecCmd() - } - - e.preventDefault() - break - } - // Prevent default behavior in text input while pressing arrow up - // https://stackoverflow.com/questions/1080532/prevent-default-behavior-in-text-input-while-pressing-arrow-up - case 'ArrowUp': { - navSuggestion('up') - e.preventDefault() - break - } - case 'ArrowDown': { - navSuggestion('down') - e.preventDefault() - break - } - default: { - // debug('onKeyPress: ', e.key) - break - } - } -} - -export const navSuggestion = direction => SAK.navSuggestion(direction) -// mounseEnter -export const navToSuggestion = suggestion => SAK.navToSuggestion(suggestion) -export const selectSuggestion = () => { - if (store.showThreadSelector) return doNavigate() - doSpecCmd() -} - -export function inputOnBlur() { - if (!store.showThreadSelector && R.isEmpty(store.prefix)) { - hidePanel() - } -} - -export function hidePanel() { - emptySearchStates() - store.hideDoraemon() - pockect$.stop() -} - -export function inputOnChange({ target: { value: inputValue } }) { - store.markState({ inputValue, cmdChain: null }) - queryPocket() -} - -export const searchThreadOnChange = searchThread => { - store.markState({ searchThread, showAlert: false }) - searchContents(store.inputValue) -} - -const convert2Sugguestions = (data, searchedTotalCount) => { - if (searchedTotalCount === 0) { - store.markState({ - showAlert: true, - showUtils: true, - searchedTotalCount, - }) - } - store.markState({ searching: false, showUtils: true, searchedTotalCount }) - store.loadSuggestions({ prefix: '', data }) -} - -// ############################### -// Data & Error handlers -// ############################### -const DataSolver = [ - { - match: asyncRes('githubSignin'), - action: ({ githubSignin: { user, token } }) => { - store.setSession(user, token) - // Global.location.reload() - - /* Global.location.href = Global.location.href */ - // IMPORTANT - Global.location.reload() - /* - setTimeout(() => { - debug('before refresh page: ', Global.location.href) - Global.location.reload() - }, 1000) - */ - }, - }, - { - match: asyncRes('searchCommunities'), - action: ({ searchCommunities }) => { - const data = R.map( - e => ({ - id: e.id, - logo: e.logo, - raw: `community-raw-${e.id}`, - title: e.title, - desc: `${e.desc}`, - }), - searchCommunities.entries - ) - const { totalCount } = searchCommunities - convert2Sugguestions(data, totalCount) - }, - }, - { - match: asyncRes('searchUsers'), - action: ({ searchUsers }) => { - const data = R.map( - e => ({ - id: e.id, - logo: e.avatar, - raw: `user-raw-${e.id}`, - title: e.nickname, - desc: `${e.bio}`, - }), - searchUsers.entries - ) - const { totalCount } = searchUsers - convert2Sugguestions(data, totalCount) - }, - }, - { - match: asyncRes('searchPosts'), - action: ({ searchPosts }) => { - const data = R.map( - e => ({ - id: e.id, - logo: e.author.avatar, - raw: `post-raw-${e.id}`, - title: e.title, - desc: `${e.commentsCount}/${prettyNum(e.views)} ${e.digest}`, - }), - searchPosts.entries - ) - const { totalCount } = searchPosts - convert2Sugguestions(data, totalCount) - }, - }, - { - match: asyncRes('searchJobs'), - action: ({ searchJobs }) => { - const data = R.map( - e => ({ - id: e.id, - logo: e.companyLogo, - raw: `job-raw-${e.id}`, - title: `${e.company} / ${e.title} / ${e.salary}`, - desc: `${prettyNum(e.views)} ${e.digest}`, - }), - searchJobs.entries - ) - const { totalCount } = searchJobs - convert2Sugguestions(data, totalCount) - }, - }, - { - match: asyncRes('searchVideos'), - action: ({ searchVideos }) => { - const data = R.map( - e => ({ - id: e.id, - logo: e.thumbnil, - raw: `video-raw-${e.id}`, - title: `${e.title} / ${e.source} / ${e.salary}`, - desc: `${prettyNum(e.views)} ${e.duration} ${e.desc}`, - }), - searchVideos.entries - ) - const { totalCount } = searchVideos - convert2Sugguestions(data, totalCount) - }, - }, - { - match: asyncRes('searchRepos'), - action: ({ searchRepos }) => { - const data = R.map( - e => ({ - id: e.id, - raw: `repo-raw-${e.id}`, - title: `${e.ownerName} / ${cutFrom(e.title, 30)}`, - desc: `star:${prettyNum(e.starCount)} ${e.desc}`, - }), - searchRepos.entries - ) - const { totalCount } = searchRepos - convert2Sugguestions(data, totalCount) - }, - }, -] - -const ErrSolver = [ - { - match: asyncErr(ERR.CRAPHQL), - action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) - store.markState({ searching: false }) - }, - }, - { - match: asyncErr(ERR.TIMEOUT), - action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) - store.markState({ searching: false }) - }, - }, - { - match: asyncErr(ERR.NETWORK), - action: ({ details }) => { - store.markState({ searching: false }) - debug('ERR.NETWORK -->', details) - }, - }, -] - -const emptySearchStates = () => { - store.markState({ - searching: false, - showThreadSelector: false, - showAlert: false, - showUtils: false, - searchThread: 'community', - }) -} - -export function init(_store) { - if (store) return false - - store = _store - - pockect$ = new Pockect(store) - SAK = new SwissArmyKnife(store) - - initSpecCmdResolver() - - pockect$.search().subscribe(res => { - if (R.isEmpty(res)) return emptySearchStates() - - store.markState({ - searching: true, - showThreadSelector: true, - showAlert: false, - showUtils: false, - }) - searchContents(res) - }) - - pockect$.searchUser().subscribe(name => { - const nickname = R.slice(1, Infinity, name) - store.markState({ - prefix: '@', - searchThread: THREAD.USER, - showThreadSelector: true, - showAlert: false, - }) - if (R.isEmpty(nickname)) return false - searchContents(nickname) - }) - - pockect$.cmdSuggesttion().subscribe(res => store.loadSuggestions(res)) - pockect$.emptyInput().subscribe(() => store.clearSuggestions()) - - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) -} diff --git a/containers/Doraemon/oauth/github_handler.js b/containers/Doraemon/oauth/github_handler.js deleted file mode 100644 index 0e94f73..0000000 --- a/containers/Doraemon/oauth/github_handler.js +++ /dev/null @@ -1,33 +0,0 @@ -import { Global, getQueryFromUrl } from '../../../utils' - -import oauthPopup from './oauth_window' -import S from '../schema' - -const githubLoginHandler = (store, sr71$) => { - const clientId = process.env.GITHUB_CLIENT_ID - const info = 'from_github' - // TODO: prettify signin page - const cb = 'https://www.coderplanets.com/oauth' - const github = 'https://github.com/login/oauth/authorize' - const url = `${github}?client_id=${clientId}&state=${info}&redirect_uri=${cb}` - - oauthPopup(url) - - Global.addEventListener('message', e => { - if (e.origin === Global.location.origin) { - if (e.data.from_oauth_window) { - const code = getQueryFromUrl('code', e.data.from_oauth_window) - - store.toast('info', { - title: '正在同步您的 github 账户信息', - msg: '请稍等。', - position: 'topCenter', - }) - sr71$.mutate(S.githubSignin, { code }) - Global.postMessage({ from_parent: true }, Global.location.href) - } - } - }) -} - -export default githubLoginHandler diff --git a/containers/Doraemon/oauth/oauth_window.js b/containers/Doraemon/oauth/oauth_window.js deleted file mode 100644 index e890e17..0000000 --- a/containers/Doraemon/oauth/oauth_window.js +++ /dev/null @@ -1,106 +0,0 @@ -// From https://gist.github.com/gauravtiwari/2ae9f44aee281c759fe5a66d5c2721a2 -// By https://gist.github.com/gauravtiwari - -/* global window */ - -/* eslint-disable */ -const popup = authUrl => { - const windowArea = { - width: Math.floor(window.outerWidth * 0.6), - height: Math.floor(window.outerHeight * 0.5), - } - - if (windowArea.width < 1000) { - windowArea.width = 600 - } - if (windowArea.height < 630) { - windowArea.height = 550 - } - windowArea.left = Math.floor( - window.screenX + (window.outerWidth - windowArea.width) / 2 - ) - windowArea.top = Math.floor( - window.screenY + (window.outerHeight - windowArea.height) / 3 - ) - - const sep = authUrl.indexOf('?') !== -1 ? '&' : '?' - const url = `${authUrl}${sep}` - const windowOpts = `toolbar=0,scrollbars=1,status=1,resizable=1,location=1,menuBar=0, - width=${windowArea.width},height=${windowArea.height}, - left=${windowArea.left},top=${windowArea.top}` - - const authWindow = window.open(url, '_blank', windowOpts) - // Create IE + others compatible event handler - const eventMethod = window.addEventListener - ? 'addEventListener' - : 'attachEvent' - const eventer = window[eventMethod] - const messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message' - - /* const Timer = setInterval(() => { */ - // detect code here - const scanTimer = setInterval(() => { - /* const scanTimer = setTimeout(() => { */ - // console.log('authWindow.location.search: ', authWindow.location.search) - // console.log('authWindow.location.location href: ', authWindow.location.href) - if ( - authWindow.location.search === undefined && - authWindow.location.href === undefined - ) { - console.log('close for user close') - clearInterval(scanTimer) - } - window.postMessage( - { from_oauth_window: authWindow.location.search }, - window.location.href - ) - }, 1000) - - // beforeunload not work here casue there is a redirect - /* - window[eventMethod]('beforeunload', () => { - console.log('user close authWindow 2 ??') - clearInterval(scanTimer) - }) - */ - - // Listen to message from child window - const authPromise = new Promise((resolve, reject) => { - eventer( - messageEvent, - msg => { - // This doesn't work in Chrome 59 - // if (e.origin !== window.SITE_DOMAIN) { - // https://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with-origin-from-accessing-a-cross-origin-frame - - if ( - /* eslint-disable */ - !~msg.origin.indexOf( - `${window.location.protocol}//${window.location.host}` - ) - /* eslint-enable */ - ) { - clearInterval(scanTimer) - authWindow.close() - reject(new Error('Not allowed')) - } - - if (msg.data.from_parent) { - clearInterval(scanTimer) - authWindow.close() - } else { - // clearInterval(Timer) - // clearInterval(Timer) - // authWindow.close() - // reject('Unauthorised') - } - }, - false - ) - }) - - return authPromise -} -/* eslint-enable */ - -export default popup diff --git a/containers/Doraemon/schema.js b/containers/Doraemon/schema.js deleted file mode 100644 index adee25c..0000000 --- a/containers/Doraemon/schema.js +++ /dev/null @@ -1,113 +0,0 @@ -import gql from 'graphql-tag' -import { F } from '../schemas' - -const githubSignin = gql` - mutation($code: String!) { - githubSignin(code: $code) { - token - user { - id - avatar - nickname - bio - fromGithub - } - } - } -` -const searchCommunities = gql` - query($title: String!) { - searchCommunities(title: $title) { - entries { - ${F.community} - } - totalCount - } - } -` -const searchUsers = gql` - query($name: String!) { - searchUsers(name: $name) { - entries { - ${F.author} - bio - } - totalCount - } - } -` -const searchPosts = gql` - query($title: String!) { - searchPosts(title: $title) { - entries { - author { - ${F.author} - } - commentsCount - id - title - digest - views - } - totalCount - } - } -` -const searchJobs = gql` - query($title: String!) { - searchJobs(title: $title) { - entries { - id - title - digest - salary - companyLogo - company - views - } - totalCount - } - } -` -const searchVideos = gql` - query($title: String!) { - searchVideos(title: $title) { - entries { - id - title - desc - thumbnil - duration - source - views - } - totalCount - } - } -` -const searchRepos = gql` - query($title: String!) { - searchRepos(title: $title) { - entries { - id - ownerName - title - desc - starCount - } - totalCount - } - } -` - -const schema = { - githubSignin, - searchCommunities, - searchUsers, - searchPosts, - searchJobs, - searchVideos, - searchRepos, -} - -export default schema diff --git a/containers/Doraemon/store.js b/containers/Doraemon/store.js deleted file mode 100644 index d1bf142..0000000 --- a/containers/Doraemon/store.js +++ /dev/null @@ -1,213 +0,0 @@ -/* - * DoraemonStore store - * - */ - -import { types as t, getParent } from 'mobx-state-tree' -import R from 'ramda' - -import cmds from './helper/defaultSuggestion' - -import { - markStates, - focusDoraemonBar, - hideDoraemonBarRecover, - THREAD, - stripMobx, -} from '../../utils' -// const debug = makeDebugger('S:DoraemonStore') - -const convertThreadsToMaps = com => { - const { title, desc, logo, raw } = com - const threads = {} - R.forEach(t => { - threads[t.title] = { - title: t.title, - raw: t.raw, - } - }, com.threads) - - return { - title, - desc, - logo, - raw, - threads, - } -} - -const Suggestion = t.model('Suggestion', { - title: t.string, - desc: t.maybeNull(t.string), - raw: t.string, - id: t.maybeNull(t.string), - logo: t.maybeNull(t.string), - cmd: t.maybeNull(t.enumeration('cmd', ['theme', 'debug'])), - descType: t.optional( - t.enumeration('descType', ['text', 'component']), - 'text' - ), -}) - -const DoraemonStore = t - .model('DoraemonStore', { - visible: t.optional(t.boolean, false), - searching: t.optional(t.boolean, false), - showAlert: t.optional(t.boolean, false), - showUtils: t.optional(t.boolean, false), - showThreadSelector: t.optional(t.boolean, false), - searchedTotalCount: t.optional(t.number, 0), - - searchThread: t.optional( - t.enumeration('searchThread', [...R.values(THREAD), 'community']), - 'community' - ), - - inputValue: t.optional(t.string, ''), - suggestions: t.optional(t.array(Suggestion), []), - activeRaw: t.maybeNull(t.string), - // TODO: prefix -> cmdPrefix, and prefix be a getter - prefix: t.optional(t.string, ''), - // for debug config, input login/password ... etc - inputForOtherUse: t.optional(t.boolean, false), - cmdChain: t.maybeNull(t.array(t.string)), - }) - .views(self => ({ - get root() { - return getParent(self) - }, - get curCmdChain() { - if (!self.cmdChain && self.activeRaw) { - return [self.activeRaw] - } - if (self.cmdChain && self.activeRaw) { - return R.append( - self.activeRaw, - R.filter(el => el !== 'threads', R.map(R.toLower, self.cmdChain)) - ) - } - return null - }, - get subscribedCommunities() { - const { entries } = self.root.account.subscribedCommunities - return entries - }, - get allSuggestions() { - const { entries } = self.root.account.subscribedCommunities - if (!entries) return [] - - const subscribedCommunitiesMaps = {} - - R.forEach(com => { - subscribedCommunitiesMaps[com.title] = { - ...com, - } - }, R.map(convertThreadsToMaps, entries)) - - return R.merge(subscribedCommunitiesMaps, cmds) - }, - get suggestionCount() { - return self.suggestions.length - }, - get activeSuggestionIndex() { - return R.findIndex(R.propEq('raw', self.activeRaw))(self.suggestions) - }, - get activeTitle() { - if (self.activeSuggestionIndex === -1) { - return undefined - } - return self.suggestions[self.activeSuggestionIndex].title - }, - get activeSuggestion() { - if (self.activeSuggestionIndex === -1) { - return undefined - } - return stripMobx(self.suggestions[self.activeSuggestionIndex]) - }, - })) - .actions(self => ({ - toast(type, options) { - self.root.toast(type, options) - }, - setSession(user, token) { - self.root.account.setSession(user, token) - }, - updateAccount(data) { - self.root.account.updateAccount(data) - }, - changeTheme(name) { - self.root.changeTheme(name) - }, - loadSuggestions(suggestion) { - self.suggestions = suggestion.data - self.prefix = suggestion.prefix - - if (!R.isEmpty(suggestion.data)) { - self.activeRaw = suggestion.data[0].raw - } - if (self.suggestionCount === 0) { - self.activeRaw = null - } - }, - clearSuggestions() { - self.suggestions = [] - self.prefix = '' - self.activeRaw = null - }, - activeUp() { - if (self.suggestionCount === 0) return false - let nextActiveRaw = '' - const curIndex = self.activeSuggestionIndex - - if (curIndex > 0 && curIndex <= self.suggestionCount) { - nextActiveRaw = self.suggestions[curIndex - 1].raw - } else { - nextActiveRaw = self.suggestions[self.suggestionCount - 1].raw - } - - self.markState({ - activeRaw: nextActiveRaw, - }) - }, - activeDown() { - if (self.suggestionCount === 0) return false - let nextActiveRaw = '' - const curIndex = self.activeSuggestionIndex - - if (curIndex >= 0 && curIndex < self.suggestionCount - 1) { - nextActiveRaw = self.suggestions[curIndex + 1].raw - } else { - nextActiveRaw = self.suggestions[0].raw - } - - self.markState({ - activeRaw: nextActiveRaw, - }) - }, - activeTo(raw) { - self.markState({ - activeRaw: raw, - }) - }, - open() { - self.visible = true - focusDoraemonBar() - }, - handleLogin() { - self.open() - self.inputValue = '/login/' - }, - hideDoraemon() { - self.visible = false - self.inputValue = '' - self.inputForOtherUse = false - self.cmdChain = null - self.clearSuggestions() - hideDoraemonBarRecover() - }, - markState(sobj) { - markStates(sobj, self) - }, - })) - -export default DoraemonStore diff --git a/containers/Doraemon/styles/alert_bar.js b/containers/Doraemon/styles/alert_bar.js deleted file mode 100644 index 88db017..0000000 --- a/containers/Doraemon/styles/alert_bar.js +++ /dev/null @@ -1,33 +0,0 @@ -import styled from 'styled-components' - -import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' -import { BaseBar } from './index' - -export const Wrapper = styled(BaseBar)` - ${cs.flex()}; - position: relative; - padding: 10px; -` - -export const WarningIcon = styled(Img)` - fill: ${theme('baseColor.error')}; - width: 30px; - height: 30px; - display: block; - margin-right: 15px; - margin-left: 5px; -` - -export const Info = styled.div` - ${cs.flexColumn()}; -` - -export const Title = styled.div` - font-size: 1rem; - color: ${theme('shell.title')}; -` - -export const Desc = styled.div` - color: ${theme('shell.desc')}; -` diff --git a/containers/Doraemon/styles/index.js b/containers/Doraemon/styles/index.js deleted file mode 100644 index 076c363..0000000 --- a/containers/Doraemon/styles/index.js +++ /dev/null @@ -1,35 +0,0 @@ -import styled from 'styled-components' - -import { theme, cs } from '../../../utils' - -export const PageOverlay = styled.div` - bottom: 0; - left: 0; - overflow: auto; - position: fixed; - right: 0; - top: 0; - z-index: 1001; - display: ${({ visible }) => (visible ? 'block' : 'none')}; -` -// flex-grow example: http://zhoon.github.io/css3/2014/08/23/flex.html -export const PanelContainer = styled.div` - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); - width: 45vw; - max-width: 550px; - position: fixed; - top: 12vh; - z-index: 1002; - display: ${({ visible }) => (visible ? 'block' : 'none')}; - left: 50%; - margin-left: -19vw; -` -// #001b21; -export const BaseBar = styled.div` - ${cs.flex('align-center')}; - border: 1px solid ${theme('shell.border')}; - width: 100%; - height: 65px; - background: ${theme('shell.barBg')}; - color: white; -` diff --git a/containers/Doraemon/styles/input_editor.js b/containers/Doraemon/styles/input_editor.js deleted file mode 100644 index ce13633..0000000 --- a/containers/Doraemon/styles/input_editor.js +++ /dev/null @@ -1,36 +0,0 @@ -import styled from 'styled-components' - -import { theme } from '../../../utils' - -import { BaseBar } from './index' - -export const PrefixWraper = styled.div` - margin-left: 15px; - width: 25px; -` - -export const EditorBar = styled(BaseBar)` - position: relative; - height: 58px; -` -export const InputBar = styled.input` - caret-color: ${theme('shell.searchInput')}; - flex-grow: 1; - font-family: '.SFNSText-Light', 'SF UI Text', 'Helvetica Neue', 'Arial', - 'Lucida Grande', 'Segoe UI', Noto Sans, sans-serif; - width: auto; - outline: none; - font-weight: 200; - color: ${theme('shell.searchInput')}; - font-size: 1.4rem; - background-color: transparent; - padding: 0 20px 0px 20px; - border: 0; - border-radius: 0; - transition: all 400ms ease; - - ::placeholder { - color: ${theme('shell.searchInput')}; - opacity: 0.5; - } -` diff --git a/containers/Doraemon/styles/input_prefix.js b/containers/Doraemon/styles/input_prefix.js deleted file mode 100644 index fb07847..0000000 --- a/containers/Doraemon/styles/input_prefix.js +++ /dev/null @@ -1,31 +0,0 @@ -import styled from 'styled-components' - -import Img from '../../../components/Img' -import { theme, animate } from '../../../utils' - -export const PrefixIcon = styled(Img)` - width: 30px; - height: 30px; - display: block; -` -export const PrefixSearchIcon = styled(Img)` - width: 25px; - height: 25px; - fill: ${theme('shell.searchIcon')}; - display: block; -` -// transform: rotate(-30deg); -export const PrefixMagicIcon = styled(Img)` - width: 42px; - height: 42px; - margin-left: -5px; - margin-top: 3px; - display: block; -` -export const LoadingIcon = styled(Img)` - fill: ${theme('shell.searchIcon')}; - width: 35px; - height: 35px; - animation: ${animate.rotate360Rule}; - display: block; -` diff --git a/containers/Doraemon/styles/results_list.js b/containers/Doraemon/styles/results_list.js deleted file mode 100644 index df1c48e..0000000 --- a/containers/Doraemon/styles/results_list.js +++ /dev/null @@ -1,180 +0,0 @@ -import styled from 'styled-components' - -import Img from '../../../components/Img' -import { theme, animate, cs } from '../../../utils' - -export const LoadingIcon = styled(Img)` - fill: ${theme('shell.searchIcon')}; - width: 30px; - height: 30px; - margin-top: 20px; - animation: ${animate.rotate360Rule}; -` - -export const AddOn = styled.div` - margin-left: 15px; - width: 25px; -` - -export const PageOverlay = styled.div` - // background-color: rgba(0, 0, 0, 0.4); - bottom: 0; - cursor: pointer; - left: 0; - overflow: auto; - position: fixed; - right: 0; - top: 0; - z-index: 1001; - display: ${({ visible }) => (visible ? 'block' : 'none')}; -` -// flex-grow example: http://zhoon.github.io/css3/2014/08/23/flex.html -export const PanelContainer = styled.div` - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); - width: 45vw; - max-width: 550px; - position: fixed; - top: 12vh; - z-index: 1002; - display: ${({ visible }) => (visible ? 'block' : 'none')}; - left: 50%; - margin-left: -19vw; -` -export const Wrapper = styled.div` - width: 100%; - overflow: hidden; -` -export const SuggestionWrapper = styled.div` - position: relative; - display: ${({ empty }) => (empty ? 'none' : 'flex')}; - flex-direction: column; - max-height: 60vh; - overflow-y: scroll; - overflow-x: hidden; - width: 102%; -` -// #001b21; -export const BaseBar = styled.div` - ${cs.flex('align-center')}; - border: 1px solid ${theme('shell.border')}; - width: 100%; - height: 65px; - background: ${theme('shell.barBg')}; - color: white; -` -export const EditorBar = styled(BaseBar)` - position: relative; -` -export const AlertBar = styled(BaseBar)` - position: relative; - padding: 18px; - color: #365760; - &:before { - content: '⚠ '; - margin-right: 10px; - color: ${theme('baseColor.error')}; - } -` -export const InfoBar = styled(BaseBar)` - padding: 10px; - min-height: 65px; - background: ${({ active }) => (active ? theme('shell.activeBg') : '')}; - &:hover { - cursor: pointer; - } -` -export const InputBar = styled.input` - caret-color: ${theme('shell.searchInput')}; - flex-grow: 1; - font-family: '.SFNSText-Light', 'SF UI Text', 'Helvetica Neue', 'Arial', - 'Lucida Grande', 'Segoe UI', Noto Sans, sans-serif; - height: 100%; - width: auto; - outline: none; - font-weight: 200; - color: ${theme('shell.searchInput')}; - font-size: 1.6rem; - max-height: none; - background-color: transparent; - padding: 0 20px 0px 20px; - border: 0; - border-radius: 0; - transition: all 400ms ease; -` -export const ContentWraper = styled.div` - text-align: left; - flex-grow: 1; -` -export const Title = styled.div` - color: ${theme('shell.title')}; - display: block; - font-size: 1.1rem; - > a { - color: ${theme('shell.link')}; - } -` -export const Desc = styled.div` - color: ${theme('shell.desc')}; - font-size: 0.9rem; - - ${cs.truncate('400px')}; -` -export const Hint = styled.div` - color: ${theme('shell.desc')}; - margin-top: 10px; - margin-right: 15px; - width: 30px; - font-size: 1.1rem; -` -export const HintEnter = styled(Img)` - color: ${theme('shell.desc')}; - margin-top: 10px; - margin-right: 1.5em; - width: 30px; - height: 30px; - transform: rotateX(180deg); - fill: ${theme('shell.desc')}; -` - -export const SubInfoWraper = styled.div` - ${cs.flex('justify-between')}; -` - -export const RepoLang = styled.div` - color: ${theme('shell.desc')}; - font-style: italic; -` - -export const RepoStar = styled.div` - color: ${theme('shell.desc')}; - font-style: italic; - margin-right: 10px; -` - -export const NodeSVGIcon = styled(Img)` - width: 40px; - height: 40px; - transform: ${({ reverse }) => (reverse ? 'rotate(180deg)' : '')}; -` - -export const ThemeDot = styled.div` - ${cs.circle('35px')}; - background: ${({ bg }) => bg}; -` -// TODO: rename -> PrefixIcon -export const PrefixSVGIcon = styled(Img)` - width: 30px; - height: 30px; - display: block; -` -export const PrefixSearchIcon = styled(Img)` - width: 30px; - height: 30px; - fill: ${theme('shell.searchIcon')}; - margin-top: 5px; -` -export const PrefixMagicIcon = styled(Img)` - width: 30px; - height: 25px; - transform: rotate(-30deg); -` diff --git a/containers/Doraemon/styles/suggest_icon.js b/containers/Doraemon/styles/suggest_icon.js deleted file mode 100644 index 77bcf16..0000000 --- a/containers/Doraemon/styles/suggest_icon.js +++ /dev/null @@ -1,30 +0,0 @@ -import styled from 'styled-components' - -import Img from '../../../components/Img' -import { cs, theme } from '../../../utils' - -export const Wrapper = styled.div` - width: 10%; -` -export const ThemeIconWrapper = styled.div` - margin-right: 16px; -` -export const Icon = styled(Img)` - fill: ${({ nonFill }) => (nonFill ? '' : theme('shell.searchIcon'))}; - width: 35px; - height: 35px; - display: block; - border-radius: ${({ round }) => (round ? '100%' : '4px')}; - margin-left: 4px; - transform: ${({ reverse }) => (reverse ? 'rotate(180deg)' : '')}; -` -export const ThemeDot = styled.div` - ${cs.circle('35px')}; - background: ${({ bg }) => bg}; -` -export const DoraemonIcon = styled(Img)` - width: 52px; - height: 52px; - display: block; - margin-left: -4px; -` diff --git a/containers/Doraemon/styles/thread_select_bar.js b/containers/Doraemon/styles/thread_select_bar.js deleted file mode 100644 index 543aa8b..0000000 --- a/containers/Doraemon/styles/thread_select_bar.js +++ /dev/null @@ -1,44 +0,0 @@ -import styled from 'styled-components' - -// import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' -import { BaseBar } from './index' - -export const Wrapper = styled(BaseBar)` - ${cs.flex()}; - position: relative; - padding: 10px; - height: 45px; - padding-left: 20px; - padding-right: 20px; -` - -export const Selector = styled.div` - font-size: 0.9rem; - padding-bottom: 2px; - color: ${({ active }) => - active ? theme('shell.title') : theme('shell.desc')}; - border-bottom: 2px solid; - border-bottom-color: ${({ active }) => - active ? theme('shell.title') : 'transparent'}; - margin-right: 18px; - &:hover { - cursor: pointer; - } -` - -export const Info = styled.div` - ${cs.flexGrow()}; -` -export const Title = styled.div` - flex-grow: 1; - color: ${theme('shell.desc')}; -` -export const Number = styled.span` - color: ${theme('shell.title')}; - margin-left: 3px; - margin-right: 3px; -` -export const Desc = styled.div` - color: ${theme('shell.desc')}; -` diff --git a/containers/Doraemon/styles/utils_bar.js b/containers/Doraemon/styles/utils_bar.js deleted file mode 100644 index 716b49d..0000000 --- a/containers/Doraemon/styles/utils_bar.js +++ /dev/null @@ -1,30 +0,0 @@ -import styled from 'styled-components' - -// import Img from '../../../components/Img' -import { theme, cs } from '../../../utils' -import { BaseBar } from './index' - -export const Wrapper = styled(BaseBar)` - ${cs.flex()}; - position: relative; - padding: 10px; - height: 45px; - padding-left: 20px; - padding-right: 20px; -` -export const Info = styled.div` - ${cs.flexGrow()}; -` - -export const Title = styled.div` - flex-grow: 1; - color: ${theme('shell.desc')}; -` -export const Number = styled.span` - color: ${theme('shell.title')}; - margin-left: 3px; - margin-right: 3px; -` -export const Desc = styled.div` - color: ${theme('shell.desc')}; -` diff --git a/containers/Doraemon/tests/store.test.js b/containers/Doraemon/tests/store.test.js deleted file mode 100644 index c51290d..0000000 --- a/containers/Doraemon/tests/store.test.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * DoraemonStore store test - * - */ - -// import DoraemonStore from '../index' - -it('1 + 1 = 2', () => { - expect(1 + 1).toBe(2) -}) diff --git a/containers/Header/index.js b/containers/Header/index.js index 5972774..abfd068 100644 --- a/containers/Header/index.js +++ b/containers/Header/index.js @@ -9,8 +9,9 @@ import R from 'ramda' import { inject, observer } from 'mobx-react' import { Affix } from 'antd' -import { ICON_CMD, ICON_BASE } from '../../config/assets' -import { makeDebugger, storePlug, TYPE } from '../../utils' +import { ICON_CMD, ICON_BASE } from '@config' +import { TYPE } from '@constant' +import { buildLog, storePlug } from '@utils' import { HeaderWrapper, @@ -37,7 +38,7 @@ import { import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Header') +const log = buildLog('C:Header') /* eslint-enable no-unused-vars */ const I18Dict = { @@ -110,11 +111,7 @@ const MiniMap = ({ curRoute }) => { // {fixed ? : } const Header = ({ curRoute, leftOffset, fixed, isLogin, accountInfo }) => ( - + diff --git a/containers/Header/logic.js b/containers/Header/logic.js index 493a56c..4bf8273 100644 --- a/containers/Header/logic.js +++ b/containers/Header/logic.js @@ -1,28 +1,16 @@ // import R from 'ramda' // import store from 'store' -import { - asyncRes, - asyncErr, - makeDebugger, - dispatchEvent, - EVENT, - TYPE, - /* Global, */ - ERR, - $solver, - // getParameterByName, -} from '../../utils' - -import SR71 from '../../utils/network/sr71' -// import sr71$ from '../../utils/network/sr71_simple' +import { EVENT, TYPE, ERR } from '@constant' +import { asyncSuit, buildLog, send } from '@utils' import S from './schema' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Header') +const log = buildLog('L:Header') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit const sr71$ = new SR71() let store = null @@ -31,13 +19,13 @@ let sub$ = null export function previewState() { // store.openPreview(type) - dispatchEvent(EVENT.PREVIEW, { + send(EVENT.PREVIEW, { type: TYPE.PREVIEW_ROOT_STORE, }) } export function signinGithub(code) { - debug('signin_github: ', code) + log('signin_github: ', code) const args = { code, } @@ -47,19 +35,19 @@ export function signinGithub(code) { export const checkSesstionState = () => sr71$.query(S.sessionState, {}) export function previewAccount() { - dispatchEvent(EVENT.PREVIEW, { + send(EVENT.PREVIEW, { type: TYPE.PREVIEW_ACCOUNT_VIEW, data: { hello: 'world --- fuck' }, }) } export function login() { - debug('do login') - dispatchEvent(EVENT.LOGIN_PANEL) + log('do login') + send(EVENT.LOGIN_PANEL) } export function openPreview() { - dispatchEvent(EVENT.PREVIEW, { + send(EVENT.PREVIEW, { type: TYPE.PREVIEW_ACCOUNT_VIEW, data: { hello: 'world' }, }) @@ -74,13 +62,13 @@ const DataSolver = [ // TODO move it to user side view match: asyncRes('githubSigninRes'), action: ({ githubSigninRes }) => { - debug('dataResolver --->', githubSigninRes) + log('dataResolver --->', githubSigninRes) }, }, { match: asyncRes('user'), action: ({ user }) => { - debug('dataResolver userRes --->', user) + log('dataResolver userRes --->', user) /* store.set('user', { ...data }) */ store.updateAccount(user) }, @@ -91,19 +79,19 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) }, }, ] @@ -119,7 +107,7 @@ export function init(_store) { export function uninit() { if (!sub$) return false - debug('===== do uninit') + log('===== do uninit') sub$.unsubscribe() sub$ = null } diff --git a/containers/Header/store.js b/containers/Header/store.js index 0162c17..5a24c29 100644 --- a/containers/Header/store.js +++ b/containers/Header/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:HeaderStore') +const log = buildLog('S:HeaderStore') /* eslint-enable no-unused-vars */ const HeaderStore = t @@ -72,7 +72,7 @@ const HeaderStore = t openPreview(type) { self.root.openPreview(type) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/Header/styles/index.js b/containers/Header/styles/index.js index 3dd7faa..04b8e36 100644 --- a/containers/Header/styles/index.js +++ b/containers/Header/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Button, Img } from '../../../components' -import { theme } from '../../../utils' +import { Button, Img } from '@components' +import { theme } from '@utils' export const HeaderWrapper = styled.div` height: 33px; diff --git a/containers/Labeler/TagList.js b/containers/Labeler/TagList.js index 136ad80..f5858eb 100644 --- a/containers/Labeler/TagList.js +++ b/containers/Labeler/TagList.js @@ -1,7 +1,7 @@ import React from 'react' +import { uid } from '@utils' import { Wrapper, TagItem, TagDot, TagTitle } from './styles/tag_list' -import { uid } from '../../utils' const TagList = ({ data }) => ( diff --git a/containers/Labeler/index.js b/containers/Labeler/index.js index 098c86b..eca89b9 100644 --- a/containers/Labeler/index.js +++ b/containers/Labeler/index.js @@ -5,19 +5,19 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import { inject, observer } from 'mobx-react' -import { ICON_CMD } from '../../config' -import { makeDebugger, storePlug } from '../../utils' +import { Popover } from '@components' +import { ICON_CMD } from '@config' +import { buildLog, storePlug } from '@utils' -import { Popover } from '../../components' import TagList from './TagList' import { Wrapper, LabelItem, LabelIcon, Title } from './styles' import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Labeler') +const log = buildLog('C:Labeler') /* eslint-enable no-unused-vars */ class LabelerContainer extends React.Component { @@ -62,9 +62,9 @@ class LabelerContainer extends React.Component { LabelerContainer.propTypes = { // https://www.npmjs.com/package/prop-types - label: PropTypes.oneOf(['标签', '薪资', '城市']), - // label: PropTypes.oneOf(['tag', 'salary', 'city']), - iconSrc: PropTypes.string, + label: T.oneOf(['标签', '薪资', '城市']), + // label: T.oneOf(['tag', 'salary', 'city']), + iconSrc: T.string, } LabelerContainer.defaultProps = { diff --git a/containers/Labeler/logic.js b/containers/Labeler/logic.js index 0840940..ca73f9b 100644 --- a/containers/Labeler/logic.js +++ b/containers/Labeler/logic.js @@ -1,17 +1,16 @@ import R from 'ramda' -import { makeDebugger, $solver, asyncRes } from '../../utils' -import SR71 from '../../utils/network/sr71' - +import { asyncSuit, buildLog } from '@utils' import S from './schema' +const { SR71, asyncRes, $solver } = asyncSuit const sr71$ = new SR71() -let sub$ = null /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Labeler') +const log = buildLog('L:Labeler') /* eslint-enable no-unused-vars */ +let sub$ = null let store = null export function loadTags() { @@ -33,7 +32,7 @@ export function loadTagsIfNeed() { const DataSolver = [ { match: asyncRes('partialTags'), - action: ({ partialTags: tags }) => store.markState({ tags }), + action: ({ partialTags: tags }) => store.mark({ tags }), }, ] const ErrSolver = [] @@ -42,7 +41,7 @@ export function init(_store) { if (store) return false store = _store - debug(store) + log(store) if (sub$) sub$.unsubscribe() sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) } diff --git a/containers/Labeler/store.js b/containers/Labeler/store.js index e16c691..19f8e24 100644 --- a/containers/Labeler/store.js +++ b/containers/Labeler/store.js @@ -5,11 +5,11 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { Tag } from '../../stores/SharedModel' +import { Tag } from '@model' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:Labeler') +const log = buildLog('S:Labeler') /* eslint-enable no-unused-vars */ const Labeler = t @@ -31,7 +31,7 @@ const Labeler = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/Labeler/styles/index.js b/containers/Labeler/styles/index.js index 5387a23..6f46343 100644 --- a/containers/Labeler/styles/index.js +++ b/containers/Labeler/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { theme, animate } from '../../../utils' -import { Img } from '../../../components' +import { Img } from '@components' +import { theme, animate } from '@utils' export const Wrapper = styled.div`` diff --git a/containers/Labeler/styles/tag_list.js b/containers/Labeler/styles/tag_list.js index 339850d..aeaf77a 100644 --- a/containers/Labeler/styles/tag_list.js +++ b/containers/Labeler/styles/tag_list.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { theme, animate } from '../../../utils' -// import { Img } from '../../../components' +import { theme, animate } from '@utils' +// import { Img } from '@components' export const Wrapper = styled.div` padding: 10px; diff --git a/containers/MultiLanguage/index.js b/containers/MultiLanguage/index.js index cc4f5c3..b78698d 100644 --- a/containers/MultiLanguage/index.js +++ b/containers/MultiLanguage/index.js @@ -6,7 +6,7 @@ import React from 'react' import { IntlProvider } from 'react-intl' -import { observerHoc } from '../../utils' +import { observerHoc } from '@utils' const selector = ({ store }) => ({ locale: store.locale, diff --git a/containers/PermissionEditor/CommunityList.js b/containers/PermissionEditor/CommunityList.js index 7071c23..1807584 100644 --- a/containers/PermissionEditor/CommunityList.js +++ b/containers/PermissionEditor/CommunityList.js @@ -1,10 +1,10 @@ import React from 'react' import R from 'ramda' -import { CommunityMatrix } from '../../components' +import { CommunityMatrix } from '@components' +import { isEmptyNil, isObject } from '@utils' import { Wrapper } from './styles/community_list' -import { isEmptyNil, isObject } from '../../utils' import { communitySelect, communityAddOnSelect } from './logic' const getManagedCommunitiesRaws = userRules => { diff --git a/containers/PermissionEditor/PermissionList.js b/containers/PermissionEditor/PermissionList.js index 9732092..ae6c1e4 100644 --- a/containers/PermissionEditor/PermissionList.js +++ b/containers/PermissionEditor/PermissionList.js @@ -1,15 +1,7 @@ import React from 'react' import R from 'ramda' -import { ICON_CMD } from '../../config' - -import { - Wrapper, - PermissionWrapper, - PerItem, - PerTitle, - CheckIcon, -} from './styles/permission_list' +import { ICON_CMD } from '@config' import { uid, @@ -19,7 +11,14 @@ import { mapKey, mapValue, objToArray, -} from '../../utils' +} from '@utils' +import { + Wrapper, + PermissionWrapper, + PerItem, + PerTitle, + CheckIcon, +} from './styles/permission_list' import { onRuleClick } from './logic' diff --git a/containers/PermissionEditor/index.js b/containers/PermissionEditor/index.js index 652d209..f5bf494 100644 --- a/containers/PermissionEditor/index.js +++ b/containers/PermissionEditor/index.js @@ -5,95 +5,75 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -import ReactTooltip from 'react-tooltip' -import { UserCell, Button, Space, Icon } from '../../components' +import { buildLog, connectStore } from '@utils' -import { Wrapper, Divider, ActionBtns } from './styles' +import { UserCell, Button, Space, Icon } from '@components' import CommunityList from './CommunityList' import PermissionList from './PermissionList' -import { makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { Wrapper, Divider, ActionBtns } from './styles' +import { useInit, onCancle, confirm } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:PermissionEditor') +const log = buildLog('C:PermissionEditor') /* eslint-enable no-unused-vars */ -class PermissionEditorContainer extends React.Component { - componentDidMount() { - const { permissionEditor } = this.props - logic.init(permissionEditor) +const PermissionEditorContainer = ({ permissionEditor, editData }) => { + useInit(permissionEditor) - setTimeout(() => { - ReactTooltip.rebuild() - }, 1000) - } + const { + pagedCommunitiesData, + allRulesData, + curView, + curCommunityRaw, + selectRulesData, + } = permissionEditor - render() { - const { permissionEditor, editData } = this.props - const { - pagedCommunitiesData, - allRulesData, - curView, - curCommunityRaw, - selectRulesData, - } = permissionEditor + const user = editData.data + const { cmsPassportString } = user + const mutating = false - const user = editData.data - const { cmsPassportString } = user - const mutating = false + return ( + + +

权限编辑

+ - return ( - - -

权限编辑

- + + - - - - - - - - + + {mutating ? ( + + ) : ( + - - {mutating ? ( - - ) : ( - - )} - -
- ) - } + )} + +
+ ) } -export default inject(storePlug('permissionEditor'))( - observer(PermissionEditorContainer) -) +export default connectStore(PermissionEditorContainer) diff --git a/containers/PermissionEditor/logic.js b/containers/PermissionEditor/logic.js index 24bb297..e232d90 100644 --- a/containers/PermissionEditor/logic.js +++ b/containers/PermissionEditor/logic.js @@ -1,29 +1,22 @@ import R from 'ramda' +import { useEffect } from 'react' -import { - makeDebugger, - $solver, - asyncRes, - mapKey, - mapValue, - TYPE, - EVENT, - closePreviewer, -} from '../../utils' -import SR71 from '../../utils/network/sr71' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' +import { EVENT, TYPE } from '@constant' +import { buildLog, asyncSuit, mapKey, mapValue, closePreviewer } from '@utils' import S from './schema' -const sr71$ = new SR71({ - resv_event: [EVENT.PREVIEW_CLOSED], -}) -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:PermissionEditor') +const log = buildLog('L:PermissionEditor') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71({ + recieve: [EVENT.PREVIEW_CLOSED], +}) + +let sub$ = null let store = null const commonFilter = page => { @@ -34,14 +27,14 @@ const commonFilter = page => { } export function communitySelect(community) { - store.markState({ + store.mark({ curView: 'community', curCommunityRaw: community.raw, }) } export function communityAddOnSelect() { - store.markState({ + store.mark({ curView: 'general', curCommunityRaw: 'general', }) @@ -66,7 +59,7 @@ export function onRuleClick(rule) { selectRulesData = R.merge(selectRulesData, curCommunitySelectRules) } - store.markState({ + store.mark({ selectRules: JSON.stringify(selectRulesData), }) } @@ -85,7 +78,7 @@ export function confirm(userId) { } const cleanUp = () => { - store.markState({ + store.mark({ selectRules: '{}', curView: 'general', curCommunityRaw: 'general', @@ -104,18 +97,18 @@ export function onCancle() { const DataSolver = [ { match: asyncRes('pagedCommunities'), - action: ({ pagedCommunities }) => store.markState({ pagedCommunities }), + action: ({ pagedCommunities }) => store.mark({ pagedCommunities }), }, { match: asyncRes('allPassportRulesString'), action: ({ allPassportRulesString: allRules }) => - store.markState({ allRules }), + store.mark({ allRules }), }, { match: asyncRes('stampCmsPassport'), action: () => { closePreviewer(TYPE.USERS_REFRESH) - store.markState({ selectRules: '{}' }) + store.mark({ selectRules: '{}' }) }, }, { @@ -125,14 +118,25 @@ const DataSolver = [ ] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - debug(store) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - - getAllCommunities() - setTimeout(() => { - getAllRules() - }, 500) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + log(store) + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + getAllCommunities() + + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/PermissionEditor/store.js b/containers/PermissionEditor/store.js index 23c830c..1d78be9 100644 --- a/containers/PermissionEditor/store.js +++ b/containers/PermissionEditor/store.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { PagedCommunities } from '../../stores/SharedModel' +import { PagedCommunities } from '@model' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:PermissionEditorStore') +const log = buildLog('S:PermissionEditorStore') /* eslint-enable no-unused-vars */ const CmsRules = t.model('CmsRules', { @@ -48,7 +48,7 @@ const PermissionEditorStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/PermissionEditor/styles/community_list.js b/containers/PermissionEditor/styles/community_list.js index 9077100..556bb84 100644 --- a/containers/PermissionEditor/styles/community_list.js +++ b/containers/PermissionEditor/styles/community_list.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../../components/Img' -// import { theme } from '../../../utils' +// import Img from '@components/Img' +// import { theme } from '@utils' export const Wrapper = styled.div` padding: 10px; diff --git a/containers/PermissionEditor/styles/index.js b/containers/PermissionEditor/styles/index.js index ddb4015..7151e47 100644 --- a/containers/PermissionEditor/styles/index.js +++ b/containers/PermissionEditor/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { animate } from '../../../utils' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/PermissionEditor/styles/permission_list.js b/containers/PermissionEditor/styles/permission_list.js index 18294df..454f72e 100644 --- a/containers/PermissionEditor/styles/permission_list.js +++ b/containers/PermissionEditor/styles/permission_list.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import Img from '../../../components/Img' -// import { theme } from '../../../utils' +import Img from '@components/Img' +// import { theme } from '@utils' export const Wrapper = styled.div`` diff --git a/containers/Preview/index.js b/containers/Preview/index.js index 770f7cd..3f331c6 100644 --- a/containers/Preview/index.js +++ b/containers/Preview/index.js @@ -8,10 +8,11 @@ import React from 'react' import { inject, observer } from 'mobx-react' import dynamic from 'next/dynamic' -// import Link from 'next/link' +import { TYPE } from '@constant' +import { buildLog, storePlug } from '@utils' -import { makeDebugger, storePlug, TYPE } from '../../utils' -import * as logic from './logic' +import StateTree from '@components/StateTree' +import TypeWriterLoading from '@components/LoadingEffects/TypeWriterLoading' import ArticleViwer from '../ArticleViwer' import AccountViewer from '../AccountViewer' @@ -26,9 +27,6 @@ import TagSetter from '../TagSetter' import CommunitySetter from '../CommunitySetter' import PermissionEditor from '../PermissionEditor' -import StateTree from '../../components/StateTree' -import TypeWriterLoading from '../../components/LoadingEffects/TypeWriterLoading' - import { PreviewOverlay, PreviewWrapper, @@ -37,9 +35,10 @@ import { Closer, CloserInner, } from './styles' +import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Preview') +const log = buildLog('C:Preview') /* eslint-enable no-unused-vars */ const DynamicTypeWriter = dynamic(import('../TypeWriter'), { diff --git a/containers/Preview/logic.js b/containers/Preview/logic.js index 6273245..a811b5a 100644 --- a/containers/Preview/logic.js +++ b/containers/Preview/logic.js @@ -1,17 +1,11 @@ -import { - asyncRes, - $solver, - makeDebugger, - EVENT, - holdPage, - TYPE, - dispatchEvent, -} from '../../utils' -import SR71 from '../../utils/network/sr71' - -// const sr71$ = new SR71({ resv_event: EVENT.PREVIEW }) +import { EVENT, TYPE } from '@constant' +import { asyncSuit, buildLog, holdPage, send } from '@utils' + +const log = buildLog('L:Preview') + +const { SR71, asyncRes, $solver } = asyncSuit const sr71$ = new SR71({ - resv_event: [ + recieve: [ EVENT.NAV_EDIT, EVENT.PREVIEW, EVENT.NAV_CREATE_POST, @@ -35,8 +29,6 @@ const sr71$ = new SR71({ ], }) -const debug = makeDebugger('L:Preview') - let store = null let sub$ = null @@ -46,16 +38,16 @@ export function closePreview() { // force call Typewriter's componentWillUnmount to store the draft // wait until store move out of the screean setTimeout(() => { - store.markState({ type: null }) - debug('closePreview ...') - dispatchEvent(EVENT.PREVIEW_CLOSED) + store.mark({ type: null }) + log('closePreview ...') + send(EVENT.PREVIEW_CLOSED) }, 200) } function loadDataForPreview(info) { - debug('loadDataForPreview --> : ', info) + log('loadDataForPreview --> : ', info) if (info.type === TYPE.POST_PREVIEW_VIEW) { - dispatchEvent(EVENT.PREVIEW_POST, { type: TYPE.POST, data: info.data }) + send(EVENT.PREVIEW_POST, { type: TYPE.POST, data: info.data }) // loadPost(info.data) } } @@ -107,7 +99,7 @@ const DataResolver = [ action: res => { const event = res[EVENT.NAV_UPDATE_COMMUNITY] - store.markState({ editCommunity: event.data }) + store.mark({ editCommunity: event.data }) store.open(event.type) holdPage() }, @@ -116,7 +108,7 @@ const DataResolver = [ match: asyncRes(EVENT.NAV_SET_COMMUNITY), action: res => { const event = res[EVENT.NAV_SET_COMMUNITY] - store.markState({ + store.mark({ editArticle: { thread: event.data.thread, data: event.data.source, @@ -140,7 +132,7 @@ const DataResolver = [ action: res => { const event = res[EVENT.NAV_UPDATE_TAG] - store.markState({ editTag: event.data }) + store.mark({ editTag: event.data }) store.open(event.type) holdPage() }, @@ -159,7 +151,7 @@ const DataResolver = [ action: res => { const event = res[EVENT.NAV_UPDATE_CATEGORY] - store.markState({ editCategory: event.data }) + store.mark({ editCategory: event.data }) store.open(event.type) holdPage() }, @@ -169,7 +161,7 @@ const DataResolver = [ action: res => { const event = res[EVENT.NAV_SET_CATEGORY] - store.markState({ editCommunity: event.data }) + store.mark({ editCommunity: event.data }) store.open(event.type) holdPage() }, @@ -180,7 +172,7 @@ const DataResolver = [ const event = res[EVENT.NAV_CREATE_THREAD] console.log('NAV_CREATE_THREAD data: ', event.data) - store.markState({ editCommunity: event.data }) + store.mark({ editCommunity: event.data }) store.open(event.type) holdPage() }, @@ -190,7 +182,7 @@ const DataResolver = [ action: res => { const event = res[EVENT.NAV_SET_THREAD] - store.markState({ editCommunity: event.data }) + store.mark({ editCommunity: event.data }) store.open(event.type) holdPage() }, @@ -199,7 +191,7 @@ const DataResolver = [ match: asyncRes(EVENT.NAV_SET_TAG), action: res => { const event = res[EVENT.NAV_SET_TAG] - store.markState({ + store.mark({ editArticle: { thread: event.data.thread, data: event.data.source, @@ -214,7 +206,7 @@ const DataResolver = [ action: res => { const event = res[EVENT.NAV_UPDATE_PERMISSION] console.log('hello --> ') - store.markState({ + store.mark({ editPermission: { type: event.data.type, data: event.data.source, diff --git a/containers/Preview/store.js b/containers/Preview/store.js index cb43b04..30ddcdc 100644 --- a/containers/Preview/store.js +++ b/containers/Preview/store.js @@ -5,10 +5,12 @@ import { types as t, getParent } from 'mobx-state-tree' -import { Community, Category, Tag, Post, User } from '../../stores/SharedModel' -import { markStates, TYPE, unholdPage, stripMobx } from '../../utils' +import { TYPE } from '@constant' +import { markStates, unholdPage, stripMobx } from '@utils' -// const debug = makeDebugger('S:PreviewStore') +import { Community, Category, Tag, Post, User } from '@model' + +// const log = buildLog('S:PreviewStore') const Article = t.model('Article', { thread: t.string, data: Post, @@ -92,7 +94,7 @@ const PreviewStore = t // self.type = TYPE.PREVIEW_ROOT_STORE unholdPage() }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/Preview/styles/index.js b/containers/Preview/styles/index.js index 4e65a65..9dfeee0 100644 --- a/containers/Preview/styles/index.js +++ b/containers/Preview/styles/index.js @@ -1,7 +1,8 @@ +import R from 'ramda' import styled from 'styled-components' -import R from 'ramda' -import { theme, TYPE, animate } from '../../../utils' +import { TYPE } from '@constant' +import { theme, animate } from '@utils' const WIDE_CASE = [TYPE.POST_PREVIEW_VIEW, TYPE.PREVIEW_CREATE_POST] const WIDE_WIDTH = '70%' diff --git a/containers/Route/index.js b/containers/Route/index.js index 2c23ddd..4d414fe 100644 --- a/containers/Route/index.js +++ b/containers/Route/index.js @@ -10,11 +10,11 @@ import Router, { withRouter } from 'next/router' // import Link from 'next/link' -import { makeDebugger, storePlug } from '../../utils' +import { buildLog, storePlug } from '@utils' import { init, routeChange } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Route') +const log = buildLog('C:Route') /* eslint-enable no-unused-vars */ class RouteContainer extends React.Component { diff --git a/containers/Route/logic.js b/containers/Route/logic.js index 3a13831..fa2b03c 100644 --- a/containers/Route/logic.js +++ b/containers/Route/logic.js @@ -1,16 +1,16 @@ // import R from 'ramda' import { - makeDebugger, + buildLog, getMainPath, getSubPath, onClient, Global, // queryStringToJSON /* isEmptyNil, getParameterByName */, -} from '../../utils' +} from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Route') +const log = buildLog('L:Route') /* eslint-enable no-unused-vars */ let store = null @@ -20,18 +20,18 @@ export function routeChange() { const browserSubPath = getSubPath({ asPath: Global.location.pathname }) /* - debug('browserMainPath -> ', browserMainPath) - debug('browserSubPath -> ', browserSubPath) + log('browserMainPath -> ', browserMainPath) + log('browserSubPath -> ', browserSubPath) - debug('store.mainPath: ', store.mainPath) - debug('store.subPath: ', store.subPath) + log('store.mainPath: ', store.mainPath) + log('store.subPath: ', store.subPath) */ const pathChange = store.mainPath !== browserMainPath || store.subPath !== browserSubPath if (pathChange) { - store.markState({ mainPath: browserMainPath, subPath: browserSubPath }) + store.mark({ mainPath: browserMainPath, subPath: browserSubPath }) } } } @@ -45,5 +45,5 @@ export function init(_store, routeObj) { const subPath = getSubPath(routeObj) const { query } = routeObj - store.markState({ mainPath, subPath, query }) + store.mark({ mainPath, subPath, query }) } diff --git a/containers/Route/store.js b/containers/Route/store.js index 7b1b0b1..0e572d8 100644 --- a/containers/Route/store.js +++ b/containers/Route/store.js @@ -7,10 +7,10 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' import Router from 'next/router' -import { PAGE_SIZE } from '../../config' -import { onClient, markStates, makeDebugger, serializeQuery } from '../../utils' +import { PAGE_SIZE } from '@config' +import { onClient, markStates, buildLog, serializeQuery } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:RouteStore') +const log = buildLog('S:RouteStore') /* eslint-enable no-unused-vars */ const Query = t.model('Query', { @@ -60,7 +60,7 @@ const RouteStore = t // see: https://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page /* return Global.history.pushState({}, null, url) */ }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/Sidebar/CommunitiesRootMenuItem.js b/containers/Sidebar/CommunitiesRootMenuItem.js index af590ed..ca9dd1b 100644 --- a/containers/Sidebar/CommunitiesRootMenuItem.js +++ b/containers/Sidebar/CommunitiesRootMenuItem.js @@ -1,6 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { ROUTE } from '@constant' import { MenuRow, @@ -15,7 +16,6 @@ import { ChildrenNum, } from './styles/menu' -import { ROUTE } from '../../utils' import * as logic from './logic' const MenuChildren = ({ activeRaw, curRaw, activeThread, countsInfo }) => ( diff --git a/containers/Sidebar/CommunityMenuItem.js b/containers/Sidebar/CommunityMenuItem.js index 0d8627d..ed00ffc 100644 --- a/containers/Sidebar/CommunityMenuItem.js +++ b/containers/Sidebar/CommunityMenuItem.js @@ -1,7 +1,9 @@ import React from 'react' // import Link from 'next/link' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { ROUTE } from '@constant' +import { cutFrom } from '@utils' import { MenuRow, @@ -17,7 +19,6 @@ import { SettingIcon, } from './styles/menu' -import { cutFrom, ROUTE } from '../../utils' import * as logic from './logic' const MenuItemBar = ({ item, activeRaw, curRaw }) => ( diff --git a/containers/Sidebar/MenuList.js b/containers/Sidebar/MenuList.js index ef4cd46..4abe3a9 100644 --- a/containers/Sidebar/MenuList.js +++ b/containers/Sidebar/MenuList.js @@ -1,13 +1,12 @@ import React from 'react' +import { uid } from '@utils' import CommunityMenuItem from './CommunityMenuItem' import CommunitiesRootMenuItem from './CommunitiesRootMenuItem' import UsersRootMenuItem from './UsersRootMenuItem' import { MenuItem } from './styles/menu' -import { uid } from '../../utils' - const MenuList = ({ items, activeRaw, diff --git a/containers/Sidebar/SearchBox.js b/containers/Sidebar/SearchBox.js index 12e5f6d..94a35e6 100644 --- a/containers/Sidebar/SearchBox.js +++ b/containers/Sidebar/SearchBox.js @@ -1,6 +1,6 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' import { Wrapper, SearchLogo, Inputer } from './styles/search_box' import { searchOnChange } from './logic' diff --git a/containers/Sidebar/UsersRootMenuItem.js b/containers/Sidebar/UsersRootMenuItem.js index e2c5132..8483710 100644 --- a/containers/Sidebar/UsersRootMenuItem.js +++ b/containers/Sidebar/UsersRootMenuItem.js @@ -1,6 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { ROUTE } from '@constant' import { MenuRow, @@ -15,7 +16,6 @@ import { ChildrenNum, } from './styles/menu' -import { ROUTE } from '../../utils' import * as logic from './logic' const MenuChildren = ({ community, activeRaw, curRaw, activeThread }) => ( diff --git a/containers/Sidebar/index.js b/containers/Sidebar/index.js index bdd03f4..98e4233 100644 --- a/containers/Sidebar/index.js +++ b/containers/Sidebar/index.js @@ -6,18 +6,18 @@ import React from 'react' import { inject, observer } from 'mobx-react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { buildLog, storePlug } from '@utils' import MenuList from './MenuList' import SearchBox from './SearchBox' import { Sidebar, Banner, Footer, BannerTitle, BannerLogo } from './styles' -import { makeDebugger, storePlug } from '../../utils' import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:Sidebar:index') +const log = buildLog('C:Sidebar:index') /* eslint-enable no-unused-vars */ class SidebarContainer extends React.Component { diff --git a/containers/Sidebar/logic.js b/containers/Sidebar/logic.js index 9be904f..a700e7f 100644 --- a/containers/Sidebar/logic.js +++ b/containers/Sidebar/logic.js @@ -1,35 +1,26 @@ import R from 'ramda' /* import store from 'store' */ -// const debug = makeDebugger('L:sidebar') -import { - asyncRes, - asyncErr, - $solver, - ERR, - makeDebugger, - EVENT, - ROUTE, - // TYPE, - dispatchEvent, -} from '../../utils' +// const log = buildLog('L:sidebar') +import { PAGE_SIZE } from '@config' +import { asyncSuit, buildLog, send } from '@utils' +import { EVENT, ERR, ROUTE } from '@constant' + import S from './schema' -import { PAGE_SIZE } from '../../config' -import SR71 from '../../utils/network/sr71' +/* eslint-disable no-unused-vars */ +const log = buildLog('L:Sidebar') +/* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit const sr71$ = new SR71({ - resv_event: [EVENT.LOGOUT, EVENT.LOGIN, EVENT.ROUTE_CHANGE], + recieve: [EVENT.LOGOUT, EVENT.LOGIN, EVENT.ROUTE_CHANGE], }) let store = null let sub$ = null -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:Sidebar') -/* eslint-enable no-unused-vars */ - -export const pin = () => store.markState({ pin: !store.pin }) +export const pin = () => store.mark({ pin: !store.pin }) export function extendMenuBar(communityRaw) { switch (communityRaw) { @@ -49,7 +40,7 @@ export function extendMenuBar(communityRaw) { export function onRootMenuSelect(mainPath, subPath) { store.markRoute({ mainPath, subPath }) - dispatchEvent(EVENT.SIDEBAR_MENU_CHANGE, { + send(EVENT.SIDEBAR_MENU_CHANGE, { data: { mainPath, subPath }, }) } @@ -72,7 +63,7 @@ export const searchCommunities = title => export const searchOnChange = e => { const searchValue = e.target.value - store.markState({ searchValue }) + store.mark({ searchValue }) if (!R.isEmpty(searchValue)) { searchCommunities(searchValue) } @@ -85,7 +76,7 @@ const DataSolver = [ { match: asyncRes('community'), action: ({ community: activeCommunity }) => - store.markState({ activeCommunity }), + store.mark({ activeCommunity }), }, { match: asyncRes('pagedCommunities'), @@ -94,13 +85,13 @@ const DataSolver = [ { match: asyncRes('searchCommunities'), action: ({ searchCommunities: matchedCommunities }) => { - store.markState({ matchedCommunities }) + store.mark({ matchedCommunities }) }, }, { match: asyncRes('countStatus'), action: ({ countStatus: rootCountStatus }) => { - store.markState({ rootCountStatus }) + store.mark({ rootCountStatus }) }, }, ] @@ -109,19 +100,19 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) }, }, ] @@ -137,7 +128,7 @@ export function init(selectedStore) { export function uninit() { if (!sub$) return false - debug('===== do uninit') + log('===== do uninit') sub$.unsubscribe() sub$ = null } diff --git a/containers/Sidebar/store.js b/containers/Sidebar/store.js index f9f0ddf..d723a6c 100644 --- a/containers/Sidebar/store.js +++ b/containers/Sidebar/store.js @@ -6,16 +6,12 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { - PagedCommunities, - emptyPagiData, - Community, -} from '../../stores/SharedModel' +import { PagedCommunities, emptyPagiData, Community } from '@model' -import { makeDebugger, markStates, stripMobx } from '../../utils' +import { buildLog, markStates, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:SidebarStore') +const log = buildLog('S:SidebarStore') /* eslint-enable no-unused-vars */ const RootCountStatus = t.model('RootCountStatus', { @@ -127,7 +123,7 @@ const SidebarStore = t markRoute(query) { self.root.route.markRoute(query) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, changeTheme(name) { diff --git a/containers/Sidebar/styles/index.js b/containers/Sidebar/styles/index.js index 20c586d..efda15c 100644 --- a/containers/Sidebar/styles/index.js +++ b/containers/Sidebar/styles/index.js @@ -1,8 +1,8 @@ import styled from 'styled-components' /* import { darken } from 'polished' */ -import Img from '../../../components/Img' -import { theme } from '../../../utils' +import Img from '@components/Img' +import { theme } from '@utils' // 纯css,div隐藏滚动条,保留鼠标滚动效果。 // http://blog.csdn.net/liusaint1992/article/details/51277751 diff --git a/containers/Sidebar/styles/menu.js b/containers/Sidebar/styles/menu.js index 6af8d20..81ec60d 100644 --- a/containers/Sidebar/styles/menu.js +++ b/containers/Sidebar/styles/menu.js @@ -1,8 +1,8 @@ import styled from 'styled-components' -import Img from '../../../components/Img' +import Img from '@components/Img' // import { darken } from 'polished' -import { theme } from '../../../utils' +import { theme } from '@utils' import { Sidebar } from './index' export const MenuItem = styled.ul` diff --git a/containers/Sidebar/styles/search_box.js b/containers/Sidebar/styles/search_box.js index 1d08666..65bf1ba 100644 --- a/containers/Sidebar/styles/search_box.js +++ b/containers/Sidebar/styles/search_box.js @@ -1,8 +1,8 @@ import styled from 'styled-components' -import { Input } from '../../../components' -import Img from '../../../components/Img' -import { theme } from '../../../utils' +import { Input } from '@components' +import Img from '@components/Img' +import { theme } from '@utils' export const Wrapper = styled.div` display: flex; diff --git a/containers/TagEditor/index.js b/containers/TagEditor/index.js index a212d2a..046e423 100644 --- a/containers/TagEditor/index.js +++ b/containers/TagEditor/index.js @@ -8,6 +8,9 @@ import React from 'react' import { inject, observer } from 'mobx-react' import R from 'ramda' +import { THREAD } from '@constant' +import { buildLog, storePlug } from '@utils' + import { Button, Icon, @@ -17,15 +20,14 @@ import { FormSelector, TagColorSelector, CommunityMatrix, -} from '../../components' +} from '@components' import { Wrapper, ActionBtns, Divider } from './styles' -import { makeDebugger, storePlug, THREAD } from '../../utils' import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:TagEditor') +const log = buildLog('C:TagEditor') /* eslint-enable no-unused-vars */ class TagEditorContainer extends React.Component { diff --git a/containers/TagEditor/logic.js b/containers/TagEditor/logic.js index a93b744..5c7c1a2 100644 --- a/containers/TagEditor/logic.js +++ b/containers/TagEditor/logic.js @@ -1,27 +1,25 @@ import R from 'ramda' +import { PAGE_SIZE } from '@config' +import { TYPE } from '@constant' import { - TYPE, - asyncRes, - makeDebugger, - $solver, + asyncSuit, + buildLog, cast, closePreviewer, updateEditing, -} from '../../utils' -import SR71 from '../../utils/network/sr71' - -import { PAGE_SIZE } from '../../config' +} from '@utils' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:TagEditor') +const log = buildLog('L:TagEditor') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null const commonFilter = page => { @@ -46,7 +44,7 @@ export const mutateConfirm = () => { ] const args = { ...store.tagData } - store.markState({ mutating: true }) + store.mark({ mutating: true }) const fargs = cast(requiredArgs, args) fargs.color = R.toUpper(fargs.color) @@ -64,7 +62,7 @@ export const mutateConfirm = () => { } const initEditData = editData => { - store.markState({ + store.mark({ tag: editData, topicValue: editData.topic.title, isEdit: true, @@ -72,7 +70,7 @@ const initEditData = editData => { } export function cancleMutate() { - store.markState({ + store.mark({ tag: {}, isEdit: false, }) @@ -96,7 +94,7 @@ const DataSolver = [ }, { match: asyncRes('pagedCommunities'), - action: ({ pagedCommunities }) => store.markState({ pagedCommunities }), + action: ({ pagedCommunities }) => store.mark({ pagedCommunities }), }, ] diff --git a/containers/TagEditor/store.js b/containers/TagEditor/store.js index 3358b64..1e3e048 100644 --- a/containers/TagEditor/store.js +++ b/containers/TagEditor/store.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { Tag, PagedCommunities } from '../../stores/SharedModel' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { Tag, PagedCommunities } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:TagEditorStore') +const log = buildLog('S:TagEditorStore') /* eslint-enable no-unused-vars */ const TagEditorStore = t @@ -40,9 +40,9 @@ const TagEditorStore = t .actions(self => ({ updateEditing(sobj) { const tag = R.merge(self.tag, { ...sobj }) - self.markState({ tag }) + self.mark({ tag }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/TagEditor/styles/index.js b/containers/TagEditor/styles/index.js index aa034cb..8516411 100644 --- a/containers/TagEditor/styles/index.js +++ b/containers/TagEditor/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import { Img } from '../../../components' -import { animate } from '../../../utils' +// import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/TagSetter/index.js b/containers/TagSetter/index.js index 6b75f25..d86c05d 100644 --- a/containers/TagSetter/index.js +++ b/containers/TagSetter/index.js @@ -5,10 +5,11 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' import R from 'ramda' -import { CommunityMatrix } from '../../components' +import { uid, buildLog, connectStore } from '@utils' + +import { CommunityMatrix } from '@components' import { Wrapper, Divider, @@ -19,11 +20,10 @@ import { ThreadText, } from './styles' -import { uid, makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, onAdd, selectCommunity } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:TagSetter') +const log = buildLog('C:TagSetter') /* eslint-enable no-unused-vars */ const TagsList = ({ tags, threadId, selectedids }) => ( @@ -32,7 +32,7 @@ const TagsList = ({ tags, threadId, selectedids }) => ( ( ) -class TagSetterContainer extends React.Component { - componentDidMount() { - const { tagSetter, editData } = this.props - logic.init(tagSetter) - logic.getPartialTags(editData) - } +const TagSetterContainer = ({ tagSetter, editData }) => { + useInit(tagSetter) - render() { - const { tagSetter, editData } = this.props - const { tagsData, activeCommunityRaw } = tagSetter + const { tagsData, activeCommunityRaw } = tagSetter - const source = editData.data - const { communities } = source - /* const { thread } = editData */ - const selectedids = R.pluck('id', source.tags) - const { id, title } = source + const source = editData.data + const { communities } = source + /* const { thread } = editData */ + const selectedids = R.pluck('id', source.tags) + const { id, title } = source - return ( - - {title} -

设置标签

- - {R.isEmpty(communities) ? ( -

该内容不属于任何社区,因此不能设置标签,请先设置社区

- ) : ( - - )} + return ( + + {title} +

设置标签

+ + {R.isEmpty(communities) ? ( +

该内容不属于任何社区,因此不能设置标签,请先设置社区

+ ) : ( + + )} - + - -
- ) - } + +
+ ) } -export default inject(storePlug('tagSetter'))(observer(TagSetterContainer)) +export default connectStore(TagSetterContainer) diff --git a/containers/TagSetter/logic.js b/containers/TagSetter/logic.js index 1989735..d5e7d38 100644 --- a/containers/TagSetter/logic.js +++ b/containers/TagSetter/logic.js @@ -1,23 +1,19 @@ import R from 'ramda' +import { useEffect } from 'react' -import { - asyncRes, - makeDebugger, - $solver, - closePreviewer, - TYPE, -} from '../../utils' +import { asyncSuit, buildLog, closePreviewer } from '@utils' +import { TYPE } from '@constant' -import SR71 from '../../utils/network/sr71' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:TagSetter') +const log = buildLog('L:TagSetter') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export function onAdd(thread, id, tagId, communityId, selectedIds) { @@ -36,7 +32,7 @@ export function getPartialTags({ thread, data: { communities } }) { } export function selectCommunity(community) { - store.markState({ activeCommunityRaw: community.raw }) + store.mark({ activeCommunityRaw: community.raw }) const args = { communityId: community.id, @@ -47,7 +43,7 @@ export function selectCommunity(community) { } export function selectThread(activeThread) { - store.markState({ activeThread }) + store.mark({ activeThread }) } // ############################### @@ -57,11 +53,11 @@ export function selectThread(activeThread) { const DataSolver = [ { match: asyncRes('pagedTags'), - action: ({ pagedTags }) => store.markState({ pagedTags }), + action: ({ pagedTags }) => store.mark({ pagedTags }), }, { match: asyncRes('partialTags'), - action: ({ partialTags: tags }) => store.markState({ tags }), + action: ({ partialTags: tags }) => store.mark({ tags }), }, { match: asyncRes('setTag'), @@ -70,10 +66,27 @@ const DataSolver = [ ] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// getPartialTags(editData) - /* getAllTags() */ +// ############################### +// init & uninit +// ############################### +export const useInit = (_store, editData) => { + useEffect( + () => { + store = _store + log(store) + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + getPartialTags(editData) + + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store, editData] + ) } diff --git a/containers/TagSetter/store.js b/containers/TagSetter/store.js index 7857c12..efe1fcf 100644 --- a/containers/TagSetter/store.js +++ b/containers/TagSetter/store.js @@ -6,11 +6,12 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { Tag } from '../../stores/SharedModel' -import { markStates, makeDebugger, THREAD, stripMobx } from '../../utils' +import { Tag } from '@model' +import { THREAD } from '@constant' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:TagSetterStore') +const log = buildLog('S:TagSetterStore') /* eslint-enable no-unused-vars */ const TagSetterStore = t @@ -29,7 +30,7 @@ const TagSetterStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/TagSetter/styles/index.js b/containers/TagSetter/styles/index.js index 73950b8..124274e 100644 --- a/containers/TagSetter/styles/index.js +++ b/containers/TagSetter/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { animate } from '../../../utils' +import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/ThemeWrapper/AntOverWrite.js b/containers/ThemeWrapper/AntOverWrite.js index e5a3af4..1431ed0 100644 --- a/containers/ThemeWrapper/AntOverWrite.js +++ b/containers/ThemeWrapper/AntOverWrite.js @@ -1,7 +1,7 @@ import { createGlobalStyle } from 'styled-components' import { lighten } from 'polished' -import { theme } from '../../utils' +import { theme } from '@utils' const tableStyle = ` .ant-table-pagination.ant-pagination { diff --git a/containers/ThemeWrapper/CodeHighlight.js b/containers/ThemeWrapper/CodeHighlight.js index bc12de6..04108a0 100644 --- a/containers/ThemeWrapper/CodeHighlight.js +++ b/containers/ThemeWrapper/CodeHighlight.js @@ -1,5 +1,5 @@ import { createGlobalStyle } from 'styled-components' -import { theme } from '../../utils' +import { theme } from '@utils' /* Solarized Color Schemes originally by Ethan Schoonover diff --git a/containers/ThemeWrapper/GlobalStyle.js b/containers/ThemeWrapper/GlobalStyle.js index 1bead27..fc7a84b 100644 --- a/containers/ThemeWrapper/GlobalStyle.js +++ b/containers/ThemeWrapper/GlobalStyle.js @@ -1,6 +1,6 @@ import { createGlobalStyle } from 'styled-components' +import { theme, cs } from '@utils' import normalize from './normalize' -import { theme, cs } from '../../utils' const GlobalStyle = createGlobalStyle` ${normalize}; diff --git a/containers/ThemeWrapper/MarkDownStyle.js b/containers/ThemeWrapper/MarkDownStyle.js index 2a9245d..9bb5f49 100644 --- a/containers/ThemeWrapper/MarkDownStyle.js +++ b/containers/ThemeWrapper/MarkDownStyle.js @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { theme } from '../../utils' +import { theme } from '@utils' const MarkDownStyle = styled.div` @font-face { diff --git a/containers/ThemeWrapper/index.js b/containers/ThemeWrapper/index.js index 6c8cc57..1559e01 100644 --- a/containers/ThemeWrapper/index.js +++ b/containers/ThemeWrapper/index.js @@ -8,7 +8,7 @@ import React from 'react' import { inject, observer } from 'mobx-react' import { ThemeProvider } from 'styled-components' -import { storePlug } from '../../utils' +import { storePlug } from '@utils' import AntOverWrite from './AntOverWrite' // import MarkDownStyle from './MarkDownStyle' diff --git a/containers/ThreadEditor/index.js b/containers/ThreadEditor/index.js index 0fac29b..41359fb 100644 --- a/containers/ThreadEditor/index.js +++ b/containers/ThreadEditor/index.js @@ -4,88 +4,72 @@ * */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import { InputNumer } from 'antd' -import { FormInputer, Icon, Button, StatusBox, Space } from '../../components' +import { buildLog, connectStore } from '@utils' +import { FormInputer, Icon, Button, StatusBox, Space } from '@components' import { Wrapper, Divider, ActionBtns } from './styles' -import { makeDebugger, storePlug } from '../../utils' +import { useInit, inputOnChange, cancleEdit, mutateConfirm } from './logic' -import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:ThreadEditor') +const log = buildLog('C:ThreadEditor') /* eslint-enable no-unused-vars */ -class ThreadEditorContainer extends React.Component { - componentDidMount() { - const { threadEditor } = this.props - logic.init(threadEditor) - } +const ThreadEditorContainer = ({ threadEditor }) => { + useInit(threadEditor) - render() { - const { threadEditor } = this.props - const { - editThreadData, - mutating, - success, - error, - warn, - statusMsg, - // isEdit, - } = threadEditor + const { + editThreadData, + mutating, + success, + error, + warn, + statusMsg, + // isEdit, + } = threadEditor - console.log('editThreadData --> ', editThreadData) - return ( - - coderplanets -

添加 Thread

- - - - - - - - + + {mutating ? ( + - - {mutating ? ( - - ) : ( - - )} - -
- ) - } + ) : ( + + )} + +
+ ) } -export default inject(storePlug('threadEditor'))( - observer(ThreadEditorContainer) -) +export default connectStore(ThreadEditorContainer) diff --git a/containers/ThreadEditor/logic.js b/containers/ThreadEditor/logic.js index 0f71396..57ec25a 100644 --- a/containers/ThreadEditor/logic.js +++ b/containers/ThreadEditor/logic.js @@ -1,32 +1,26 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { - makeDebugger, - $solver, - asyncErr, - asyncRes, - closePreviewer, - updateEditing, - ERR, -} from '../../utils' +import { ERR } from '@constant' +import { asyncSuit, buildLog, closePreviewer, updateEditing } from '@utils' -import SR71 from '../../utils/network/sr71' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:ThreadEditor') +const log = buildLog('L:ThreadEditor') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export const mutateConfirm = () => sr71$.mutate(S.createThread, store.editThreadData) export function cancleEdit() { - store.markState({ + store.mark({ community: {}, isEdit: false, }) @@ -53,28 +47,40 @@ const ErrSolver = [ { match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) }, }, ] -export function init(_store) { - if (store) return false - store = _store +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + log(store) + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) - debug(store) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/ThreadEditor/store.js b/containers/ThreadEditor/store.js index 08cb11f..c4f4f81 100644 --- a/containers/ThreadEditor/store.js +++ b/containers/ThreadEditor/store.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { Thread } from '../../stores/SharedModel' +import { Thread } from '@model' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ThreadEditor') +const log = buildLog('S:ThreadEditor') /* eslint-enable no-unused-vars */ const ThreadEditor = t @@ -38,9 +38,9 @@ const ThreadEditor = t .actions(self => ({ updateEditing(sobj) { const editThread = R.merge(self.editThread, { ...sobj }) - self.markState({ editThread }) + self.mark({ editThread }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/ThreadEditor/styles/index.js b/containers/ThreadEditor/styles/index.js index 48fe6f3..ecd800a 100644 --- a/containers/ThreadEditor/styles/index.js +++ b/containers/ThreadEditor/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../../components/Img' -import { animate } from '../../../utils' +// import Img from '@components/Img' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/ThreadSetter/index.js b/containers/ThreadSetter/index.js index a4bd206..0203313 100644 --- a/containers/ThreadSetter/index.js +++ b/containers/ThreadSetter/index.js @@ -6,16 +6,15 @@ import React from 'react' import R from 'ramda' -import { inject, observer } from 'mobx-react' // import Link from 'next/link' +import { uid, buildLog, connectStore } from '@utils' import { Wrapper, Divider, ThreadsWrapper, ThreadTag } from './styles' -import { uid, makeDebugger, storePlug } from '../../utils' -import * as logic from './logic' +import { useInit, onAdd } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:ThreadSetter') +const log = buildLog('C:ThreadSetter') /* eslint-enable no-unused-vars */ const ThreadsList = ({ communityId, threads, selectedids }) => ( @@ -24,7 +23,7 @@ const ThreadsList = ({ communityId, threads, selectedids }) => ( {c.title} @@ -32,37 +31,29 @@ const ThreadsList = ({ communityId, threads, selectedids }) => ( ) -class ThreadSetterContainer extends React.Component { - componentDidMount() { - const { threadSetter } = this.props - logic.init(threadSetter) - } - - render() { - const { threadSetter, editData } = this.props - const { pagedThreadsData } = threadSetter - - debug('pagedThreads ... > ', pagedThreadsData) - const selectedids = R.pluck('id', editData.threads) - debug('selectedCids: ', selectedids) - - return ( - - coderplanets -

设置社区Thread

- - {pagedThreadsData ? ( - - ) : null} -
- ) - } +const ThreadSetterContainer = ({ threadSetter, editData }) => { + useInit(threadSetter) + + const { pagedThreadsData } = threadSetter + + log('pagedThreads ... > ', pagedThreadsData) + const selectedids = R.pluck('id', editData.threads) + log('selectedCids: ', selectedids) + + return ( + + coderplanets +

设置社区Thread

+ + {pagedThreadsData ? ( + + ) : null} +
+ ) } -export default inject(storePlug('threadSetter'))( - observer(ThreadSetterContainer) -) +export default connectStore(ThreadSetterContainer) diff --git a/containers/ThreadSetter/logic.js b/containers/ThreadSetter/logic.js index 51a2118..cecd344 100644 --- a/containers/ThreadSetter/logic.js +++ b/containers/ThreadSetter/logic.js @@ -1,24 +1,20 @@ import R from 'ramda' +import { useEffect } from 'react' -import { - makeDebugger, - $solver, - asyncRes, - closePreviewer, - TYPE, -} from '../../utils' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' +import { TYPE } from '@constant' +import { asyncSuit, buildLog, closePreviewer } from '@utils' -import SR71 from '../../utils/network/sr71' import S from './schema' -const sr71$ = new SR71() -let sub$ = null - /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:ThreadSetter') +const log = buildLog('L:ThreadSetter') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null const commonFilter = page => { @@ -45,7 +41,7 @@ export function onAdd(communityId, threadId, selectedids) { const DataSolver = [ { match: asyncRes('pagedThreads'), - action: ({ pagedThreads }) => store.markState({ pagedThreads }), + action: ({ pagedThreads }) => store.mark({ pagedThreads }), }, { match: asyncRes('setThread'), @@ -54,11 +50,24 @@ const DataSolver = [ ] const ErrSolver = [] -export function init(selectedStore) { - store = selectedStore - debug(store) - if (sub$) sub$.unsubscribe() - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + getAllThreads() - getAllThreads() + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/ThreadSetter/store.js b/containers/ThreadSetter/store.js index 5759bc8..3a7f6c4 100644 --- a/containers/ThreadSetter/store.js +++ b/containers/ThreadSetter/store.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger, stripMobx } from '../../utils' -import { PagedThreads } from '../../stores/SharedModel' +import { PagedThreads } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ThreadSetterStore') +const log = buildLog('S:ThreadSetterStore') /* eslint-enable no-unused-vars */ const ThreadSetterStore = t @@ -26,7 +26,7 @@ const ThreadSetterStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/ThreadSetter/styles/index.js b/containers/ThreadSetter/styles/index.js index 7529a30..9bc75ed 100644 --- a/containers/ThreadSetter/styles/index.js +++ b/containers/ThreadSetter/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import { Img } from '../../../components' -import { animate } from '../../../utils' +// import { Img } from '@components' +import { animate } from '@utils' export const Wrapper = styled.div` background: #ffffff; diff --git a/containers/TypeWriter/BodyEditor.js b/containers/TypeWriter/BodyEditor.js index 92a834f..e3c0e9a 100644 --- a/containers/TypeWriter/BodyEditor.js +++ b/containers/TypeWriter/BodyEditor.js @@ -3,7 +3,7 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import R from 'ramda' import PubSub from 'pubsub-js' @@ -12,16 +12,17 @@ import Editor from 'draft-js-plugins-editor' import createMentionPlugin from 'draft-js-mention-plugin' // import createLinkifyPlugin from 'draft-js-linkify-plugin' +import { EVENT } from '@constant' +import { buildLog } from '@utils' + import toRawString from './exportContent' import { Wrapper } from './styles/body_editor' -import { EVENT, makeDebugger } from '../../utils' - /* -const linkifyPlugin = createLinkifyPlugin({ - theme: { link: 'typewriter-link' }, -}) -*/ + const linkifyPlugin = createLinkifyPlugin({ + theme: { link: 'typewriter-link' }, + }) + */ const mentionThemeClass = { mention: 'typewriter-mention', @@ -33,7 +34,7 @@ const mentionThemeClass = { } /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:BodyEditor') +const log = buildLog('C:BodyEditor') /* eslint-enable no-unused-vars */ const mentionFilter = (value, mentions) => @@ -141,7 +142,7 @@ class BodyEditor extends React.Component { loadUserSuggestions = propsMentionList => { /* eslint-disable react/destructuring-assignment */ const mentionList = propsMentionList || this.props.mentionList - // debug('loadUserSuggestions --->', mentionList) + // log('loadUserSuggestions --->', mentionList) this.setState({ suggestions: mentionList, mentionList }) /* eslint-enable react/destructuring-assignment */ } @@ -195,25 +196,25 @@ class BodyEditor extends React.Component { } BodyEditor.propTypes = { - mentionList: PropTypes.arrayOf( - PropTypes.shape({ - id: PropTypes.string, - avatar: PropTypes.string, - name: PropTypes.string, + mentionList: T.arrayOf( + T.shape({ + id: T.string, + avatar: T.string, + name: T.string, }) ), - body: PropTypes.string, - onMentionSearch: PropTypes.func, - onMention: PropTypes.func, - onChange: PropTypes.func, + body: T.string, + onMentionSearch: T.func, + onMention: T.func, + onChange: T.func, } BodyEditor.defaultProps = { body: '', mentionList: [], - onMention: debug, - onMentionSearch: debug, - onChange: debug, + onMention: log, + onMentionSearch: log, + onChange: log, } export default BodyEditor diff --git a/containers/TypeWriter/CopyrightSelector.js b/containers/TypeWriter/CopyrightSelector.js index 7139c51..99c4d3e 100644 --- a/containers/TypeWriter/CopyrightSelector.js +++ b/containers/TypeWriter/CopyrightSelector.js @@ -1,10 +1,12 @@ import React from 'react' import R from 'ramda' -// import PropTypes from 'prop-types' +// import T from 'prop-types' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { THREAD } from '@constant' +import { uid } from '@utils' -import { Popover } from '../../components' +import { Popover } from '@components' import { Wrapper, @@ -17,7 +19,6 @@ import { MoreIcon, } from './styles/copyright_selector' -import { uid, THREAD } from '../../utils' import { copyrightChange } from './logic' const FullOptions = [ diff --git a/containers/TypeWriter/Editor.js b/containers/TypeWriter/Editor.js index b060c27..5ef9f05 100644 --- a/containers/TypeWriter/Editor.js +++ b/containers/TypeWriter/Editor.js @@ -3,7 +3,7 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' import EditorHeader from './EditorHeader' import BodyEditor from './BodyEditor' @@ -32,11 +32,11 @@ const Editor = ({ cpType, thread, title, body, linkAddr }) => ( Editor.propTypes = { // https://www.npmjs.com/package/prop-types - thread: PropTypes.string.isRequired, - cpType: PropTypes.string.isRequired, - body: PropTypes.string, - title: PropTypes.string, - linkAddr: PropTypes.string, + thread: T.string.isRequired, + cpType: T.string.isRequired, + body: T.string, + title: T.string, + linkAddr: T.string, } Editor.defaultProps = { diff --git a/containers/TypeWriter/EditorFooter.js b/containers/TypeWriter/EditorFooter.js index 5ccca3a..51bc59c 100644 --- a/containers/TypeWriter/EditorFooter.js +++ b/containers/TypeWriter/EditorFooter.js @@ -1,10 +1,11 @@ import React from 'react' // import R from 'ramda' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { THREAD } from '@constant' +import { FileUploader, Maybe } from '@components' import { Labeler } from '..' -import { FileUploader, Maybe } from '../../components' import { Wrapper, @@ -14,7 +15,6 @@ import { Divider, } from './styles/editor_footer' -import { THREAD } from '../../utils' import { insertCode, onUploadImageDone } from './logic' const CodeInputer = ({ divider }) => ( diff --git a/containers/TypeWriter/EditorHeader.js b/containers/TypeWriter/EditorHeader.js index e6b8fff..60d466b 100644 --- a/containers/TypeWriter/EditorHeader.js +++ b/containers/TypeWriter/EditorHeader.js @@ -1,6 +1,6 @@ import React from 'react' -import { Button, Maybe } from '../../components' +import { Button, Maybe } from '@components' import CopyrightSelector from './CopyrightSelector' import { Wrapper, CopyRightWrapper, PreviewBtn } from './styles/editor_header' diff --git a/containers/TypeWriter/Footer.js b/containers/TypeWriter/Footer.js index ebafc6a..44fb088 100644 --- a/containers/TypeWriter/Footer.js +++ b/containers/TypeWriter/Footer.js @@ -1,7 +1,7 @@ // import React from 'react' -import { Space, StatusBox, Button, Icon } from '../../components' +import { Space, StatusBox, Button, Icon } from '@components' import { canclePublish, onPublish } from './logic' import { diff --git a/containers/TypeWriter/Header.js b/containers/TypeWriter/Header.js index 546ecb6..b2fefd2 100644 --- a/containers/TypeWriter/Header.js +++ b/containers/TypeWriter/Header.js @@ -1,6 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' +import { ICON_CMD } from '@config' +import { THREAD } from '@constant' import { Wrapper, @@ -10,7 +11,6 @@ import { BackToEditHint, } from './styles/header' -import { THREAD } from '../../utils' import * as logic from './logic' const DoingText = ({ isEdit }) => { diff --git a/containers/TypeWriter/MarkDownHelper.js b/containers/TypeWriter/MarkDownHelper.js index 578270e..5eabd55 100644 --- a/containers/TypeWriter/MarkDownHelper.js +++ b/containers/TypeWriter/MarkDownHelper.js @@ -5,9 +5,9 @@ import mentions from 'remarkable-mentions' import Prism from 'mastani-codehighlight' import R from 'ramda' -import { MENTION_USER_ADDR } from '../../config' +import { MENTION_USER_ADDR } from '@config' +import { uid } from '@utils' import MarkDownStyle from '../ThemeWrapper/MarkDownStyle' -import { uid } from '../../utils' import fullEmojis from './emojis' import { Wrapper, EmojiWraper, EmojiItem } from './styles/markdown_helper' diff --git a/containers/TypeWriter/Preview.js b/containers/TypeWriter/Preview.js index 7d5af67..415558c 100644 --- a/containers/TypeWriter/Preview.js +++ b/containers/TypeWriter/Preview.js @@ -7,8 +7,8 @@ import Remarkable from 'remarkable' import remarkableemoj from 'remarkable-emoji' import mentions from 'remarkable-mentions' // import Prism from 'mastani-codehighlight' -import { MENTION_USER_ADDR } from '../../config' -import { Button } from '../../components' +import { Button } from '@components' +import { MENTION_USER_ADDR } from '@config' import MarkDownStyle from '../ThemeWrapper/MarkDownStyle' import { Wrapper, Header, BackToEditBtn, PreviewHeader } from './styles/preview' diff --git a/containers/TypeWriter/index.js b/containers/TypeWriter/index.js index 5205268..5894dac 100644 --- a/containers/TypeWriter/index.js +++ b/containers/TypeWriter/index.js @@ -5,9 +5,10 @@ */ import React from 'react' -// import PropTypes from 'prop-types' +// import T from 'prop-types' import { inject, observer } from 'mobx-react' +import { buildLog, storePlug } from '@utils' import Editor from './Editor' import Preview from './Preview' import MarkDownHelper from './MarkDownHelper' @@ -17,10 +18,9 @@ import Footer from './Footer' import { Wrapper, ViewerWrapper } from './styles' import { init, uninit, changeView } from './logic' -import { makeDebugger, storePlug } from '../../utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:TypeWriter') +const log = buildLog('C:TypeWriter') /* eslint-enable no-unused-vars */ const View = ({ curView, thread, cpType, title, body, linkAddr }) => { @@ -58,7 +58,7 @@ class TypeWriterContainer extends React.Component { } componentWillUnmount() { - debug('TODO: store state to localstarange') + log('TODO: store state to localstarange') // Message.success('草稿已经保存') uninit() } @@ -107,7 +107,7 @@ class TypeWriterContainer extends React.Component { // TypeWriterContainer.propTypes = { // https://www.npmjs.com/package/prop-types -// closePreview: PropTypes.func.isRequired, +// closePreview: T.func.isRequired, // } // TypeWriterContainer.defaultProps = {} diff --git a/containers/TypeWriter/logic.js b/containers/TypeWriter/logic.js index 61719c5..867565f 100644 --- a/containers/TypeWriter/logic.js +++ b/containers/TypeWriter/logic.js @@ -1,36 +1,34 @@ import R from 'ramda' +import { EVENT, ERR } from '@constant' import { - asyncRes, - asyncErr, - $solver, - makeDebugger, + asyncSuit, + buildLog, isEmptyValue, - dispatchEvent, - EVENT, - ERR, + send, meteorState, countWords, extractAttachments, -} from '../../utils' -import S from './schema' -import SR71 from '../../utils/network/sr71' +} from '@utils' -const sr71$ = new SR71() +import S from './schema' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:TypeWriter') +const log = buildLog('L:TypeWriter') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, asyncErr, $solver } = asyncSuit +const sr71$ = new SR71() + let store = null let sub$ = null export function copyrightChange(cpType) { - store.markState({ cpType }) + store.mark({ cpType }) } export function changeView(curView) { - store.markState({ curView }) + store.mark({ curView }) } function checkValid() { @@ -47,8 +45,8 @@ function checkValid() { } export function onUploadImageDone(url) { - debug('onUploadImageDone: ', url) - dispatchEvent(EVENT.DRAFT_INSERT_SNIPPET, { + log('onUploadImageDone: ', url) + send(EVENT.DRAFT_INSERT_SNIPPET, { type: 'Image', data: `![](${url})`, }) @@ -75,7 +73,7 @@ const getDigest = body => { } // TODO move specfical logic outof here export function onPublish() { - // debug('onPublish: ', store.body) + // log('onPublish: ', store.body) const { body, title, cpType } = store if (checkValid()) { publishing() @@ -92,7 +90,7 @@ export function onPublish() { } if (cpType !== 'original') variables.linkAddr = store.linkAddr - // debug('variables-: ', variables) + // log('variables-: ', variables) // TODO: switch createJob sr71$.mutate(S.createPost, variables) } @@ -105,24 +103,24 @@ export const canclePublish = () => { } export function bodyOnChange(body) { - // debug('editorOnChange: ', body) - store.markState({ body }) + // log('editorOnChange: ', body) + store.mark({ body }) } export function titleOnChange(e) { - store.markState({ title: e.target.value }) + store.mark({ title: e.target.value }) } export function linkSourceOnChange(e) { - store.markState({ linkAddr: e.target.value }) + store.mark({ linkAddr: e.target.value }) } function publishing(maybe = true) { - store.markState({ publishing: maybe }) + store.mark({ publishing: maybe }) } export function insertCode() { - dispatchEvent(EVENT.DRAFT_INSERT_SNIPPET, { + send(EVENT.DRAFT_INSERT_SNIPPET, { type: 'FUCK', data: '```javascript\n\n```', }) @@ -133,7 +131,7 @@ const openAttachment = att => { const { id, title, body, digest } = att - store.markState({ + store.mark({ id, title, body: body || digest || '', @@ -157,7 +155,7 @@ const DataSolver = [ cancleLoading() store.reset() store.closePreview() - dispatchEvent(EVENT.REFRESH_POSTS) + send(EVENT.REFRESH_POSTS) // 1. empty the store // 2. close the preview // 3. notify the xxxPaper @@ -166,7 +164,7 @@ const DataSolver = [ ] const cancleLoading = () => { - store.markState({ publishing: false }) + store.mark({ publishing: false }) } const ErrSolver = [ @@ -174,7 +172,7 @@ const ErrSolver = [ match: asyncErr(ERR.CRAPHQL), action: ({ details }) => { const errMsg = details[0].detail - debug('ERR.CRAPHQL -->', details) + log('ERR.CRAPHQL -->', details) meteorState(store, 'error', 5, errMsg) cancleLoading() }, @@ -182,14 +180,14 @@ const ErrSolver = [ { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + log('ERR.TIMEOUT -->', details) cancleLoading() }, }, { match: asyncErr(ERR.NETWORK), action: ({ details }) => { - debug('ERR.NETWORK -->', details) + log('ERR.NETWORK -->', details) cancleLoading() }, }, diff --git a/containers/TypeWriter/store.js b/containers/TypeWriter/store.js index c21f671..de626ff 100644 --- a/containers/TypeWriter/store.js +++ b/containers/TypeWriter/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:TypeWriterStore') +const log = buildLog('S:TypeWriterStore') /* eslint-enable no-unused-vars */ const TypeWriterStore = t @@ -64,7 +64,7 @@ const TypeWriterStore = t self.root.closePreview() }, reset() { - self.markState({ + self.mark({ title: '', linkAddr: '', body: '', @@ -74,7 +74,7 @@ const TypeWriterStore = t // curView: }) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/TypeWriter/styles/copyright_selector.js b/containers/TypeWriter/styles/copyright_selector.js index 64e80a1..0fdeac8 100644 --- a/containers/TypeWriter/styles/copyright_selector.js +++ b/containers/TypeWriter/styles/copyright_selector.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { theme } from '../../../utils' +import { Img } from '@components' +import { theme } from '@utils' export const Wrapper = styled.div` padding: 5px 8px; diff --git a/containers/TypeWriter/styles/editor.js b/containers/TypeWriter/styles/editor.js index 97da5f1..f0818ea 100644 --- a/containers/TypeWriter/styles/editor.js +++ b/containers/TypeWriter/styles/editor.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Input } from '../../../components' -import { theme } from '../../../utils' +import { Input } from '@components' +import { theme } from '@utils' export const Wrapper = styled.div` padding: 20px; diff --git a/containers/TypeWriter/styles/editor_footer.js b/containers/TypeWriter/styles/editor_footer.js index 4a0230f..935bf74 100644 --- a/containers/TypeWriter/styles/editor_footer.js +++ b/containers/TypeWriter/styles/editor_footer.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { animate, theme } from '../../../utils' +import { Img } from '@components' +import { animate, theme } from '@utils' // export const Wrapper = styled.div` display: flex; diff --git a/containers/TypeWriter/styles/editor_header.js b/containers/TypeWriter/styles/editor_header.js index 88cc603..23fc433 100644 --- a/containers/TypeWriter/styles/editor_header.js +++ b/containers/TypeWriter/styles/editor_header.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import { Img } from '../../../components' -// import { theme } from '../../../utils' +// import { Img } from '@components' +// import { theme } from '@utils' export const Wrapper = styled.div` display: flex; diff --git a/containers/TypeWriter/styles/footer.js b/containers/TypeWriter/styles/footer.js index 412b41b..452b3cb 100644 --- a/containers/TypeWriter/styles/footer.js +++ b/containers/TypeWriter/styles/footer.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' export const FooterWrapper = styled.div` display: flex; diff --git a/containers/TypeWriter/styles/header.js b/containers/TypeWriter/styles/header.js index 3e4b5f1..96d14c0 100644 --- a/containers/TypeWriter/styles/header.js +++ b/containers/TypeWriter/styles/header.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Img } from '../../../components' -import { theme } from '../../../utils' +import { Img } from '@components' +import { theme } from '@utils' export const Wrapper = styled.div` display: flex; diff --git a/containers/TypeWriter/styles/index.js b/containers/TypeWriter/styles/index.js index 3bcf69b..19c0bb6 100644 --- a/containers/TypeWriter/styles/index.js +++ b/containers/TypeWriter/styles/index.js @@ -1,7 +1,7 @@ import styled from 'styled-components' -import { Input } from '../../../components' -import { theme } from '../../../utils' +import { Input } from '@components' +import { theme } from '@utils' export const ViewerWrapper = styled.div` display: ${({ active }) => (active ? 'block' : 'none')}; diff --git a/containers/TypeWriter/styles/markdown_helper.js b/containers/TypeWriter/styles/markdown_helper.js index ad1c594..4529813 100644 --- a/containers/TypeWriter/styles/markdown_helper.js +++ b/containers/TypeWriter/styles/markdown_helper.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' export const EmojiWraper = styled.div` margin-top: 18px; diff --git a/containers/TypeWriter/styles/preview.js b/containers/TypeWriter/styles/preview.js index 68f2e89..47f3e3b 100644 --- a/containers/TypeWriter/styles/preview.js +++ b/containers/TypeWriter/styles/preview.js @@ -1,7 +1,7 @@ import styled from 'styled-components' // BodyWrapper, BodyHeader, BackToEditBtn, PreviewHeader -import { theme } from '../../../utils' +import { theme } from '@utils' export { Wrapper } from './editor' diff --git a/containers/UsersBanner/IndexBanner.js b/containers/UsersBanner/IndexBanner.js index 0d8cd94..c8d842c 100644 --- a/containers/UsersBanner/IndexBanner.js +++ b/containers/UsersBanner/IndexBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Popover, BannerCountBrief } from '../../components' +import { Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/UsersBanner/PaysBanner.js b/containers/UsersBanner/PaysBanner.js index ef2b9e9..7323e8d 100644 --- a/containers/UsersBanner/PaysBanner.js +++ b/containers/UsersBanner/PaysBanner.js @@ -1,7 +1,7 @@ import React from 'react' -import { ICON_CMD } from '../../config' -import { Tag, Popover, BannerCountBrief } from '../../components' +import { Tag, Popover, BannerCountBrief } from '@components' +import { ICON_CMD } from '@config' import { BannerContentWrapper, diff --git a/containers/UsersBanner/index.js b/containers/UsersBanner/index.js index 80e0ce3..3da3a66 100644 --- a/containers/UsersBanner/index.js +++ b/containers/UsersBanner/index.js @@ -5,20 +5,18 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' -// import Link from 'next/link' - -import { makeDebugger, storePlug, ROUTE } from '../../utils' -import * as logic from './logic' +import { ROUTE } from '@constant' +import { buildLog, connectStore } from '@utils' import IndexBanner from './IndexBanner' import PaysBanner from './PaysBanner' import { BannerContainer } from './styles' +import { useInit } from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:UsersBanner') +const log = buildLog('C:UsersBanner') /* eslint-enable no-unused-vars */ const renderChildBanner = (curRoute, totalCount, store) => { @@ -36,22 +34,16 @@ const renderChildBanner = (curRoute, totalCount, store) => { } } -class UsersBannerContainer extends React.Component { - componentDidMount() { - const { usersBanner } = this.props - logic.init(usersBanner) - } +const UsersBannerContainer = ({ usersBanner }) => { + useInit(usersBanner) - render() { - const { usersBanner } = this.props - const { curRoute, totalCount } = usersBanner + const { curRoute, totalCount } = usersBanner - return ( - - {renderChildBanner(curRoute, totalCount, usersBanner)} - - ) - } + return ( + + {renderChildBanner(curRoute, totalCount, usersBanner)} + + ) } -export default inject(storePlug('usersBanner'))(observer(UsersBannerContainer)) +export default connectStore(UsersBannerContainer) diff --git a/containers/UsersBanner/logic.js b/containers/UsersBanner/logic.js index 2ae11a6..1416cbd 100644 --- a/containers/UsersBanner/logic.js +++ b/containers/UsersBanner/logic.js @@ -1,17 +1,17 @@ // import R from 'ramda' +import { useEffect } from 'react' -import { makeDebugger, $solver } from '../../utils' - -// import S from './schema' -import SR71 from '../../utils/network/sr71' - -const sr71$ = new SR71() -let sub$ = null +import { asyncSuit, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:UsersBanner') +const log = buildLog('L:UsersBanner') /* eslint-enable no-unused-vars */ +// import S from './schema' +const { SR71, $solver } = asyncSuit +const sr71$ = new SR71() + +let sub$ = null let store = null export function onAdd() {} @@ -23,10 +23,23 @@ export function onAdd() {} const DataSolver = [] const ErrSolver = [] -export function init(_store) { - store = _store - debug(store) - - if (sub$) return false - sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) +// ############################### +// init & uninit +// ############################### +export const useInit = _store => { + useEffect( + () => { + store = _store + log(store) + if (sub$) sub$.unsubscribe() + sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) + + return () => { + if (!sub$) return false + sub$.unsubscribe() + sub$ = null + } + }, + [_store] + ) } diff --git a/containers/UsersBanner/store.js b/containers/UsersBanner/store.js index e30139e..4c28f19 100644 --- a/containers/UsersBanner/store.js +++ b/containers/UsersBanner/store.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:UsersBannerStore') +const log = buildLog('S:UsersBannerStore') /* eslint-enable no-unused-vars */ const UsersBannerStore = t @@ -30,7 +30,7 @@ const UsersBannerStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/UsersBanner/styles/common_banner.js b/containers/UsersBanner/styles/common_banner.js index 942129a..c7c2902 100644 --- a/containers/UsersBanner/styles/common_banner.js +++ b/containers/UsersBanner/styles/common_banner.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { Img } from '../../../components' +import { Img } from '@components' import { BaseBanner, BaseBannerContent } from './index' export const BannerContainer = styled(BaseBanner)` diff --git a/containers/UsersBanner/styles/index.js b/containers/UsersBanner/styles/index.js index c961fde..d8c570a 100644 --- a/containers/UsersBanner/styles/index.js +++ b/containers/UsersBanner/styles/index.js @@ -1,6 +1,6 @@ import styled from 'styled-components' -import { theme } from '../../../utils' +import { theme } from '@utils' export const BaseBanner = styled.div` position: relative; diff --git a/containers/UsersContent/IndexContent.js b/containers/UsersContent/IndexContent.js index 5ee6046..404c049 100644 --- a/containers/UsersContent/IndexContent.js +++ b/containers/UsersContent/IndexContent.js @@ -1,13 +1,14 @@ import React from 'react' -import UsersTable from '../../components/UsersTable' +import UsersTable from '@components/UsersTable' -import * as logic from './logic' +import { loadUsers, cmsPermisstionOnChange } from './logic' const IndexContent = ({ data, restProps: { usersLoading } }) => ( ) diff --git a/containers/UsersContent/index.js b/containers/UsersContent/index.js index 6ae3526..187eb61 100644 --- a/containers/UsersContent/index.js +++ b/containers/UsersContent/index.js @@ -7,16 +7,15 @@ import React from 'react' import { inject, observer } from 'mobx-react' -// import Link from 'next/link' +import { ROUTE } from '@constant' +import { buildLog, storePlug } from '@utils' -import { makeDebugger, storePlug, ROUTE } from '../../utils' -import * as logic from './logic' - -import { Wrapper } from './styles' import IndexContent from './IndexContent' +import { Wrapper } from './styles' +import * as logic from './logic' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:UsersContent') +const log = buildLog('C:UsersContent') /* eslint-enable no-unused-vars */ const renderChildBanner = (route, store, restProps) => { diff --git a/containers/UsersContent/logic.js b/containers/UsersContent/logic.js index 7b9e47e..1455b70 100644 --- a/containers/UsersContent/logic.js +++ b/containers/UsersContent/logic.js @@ -1,29 +1,19 @@ -import { - makeDebugger, - asyncRes, - // asyncErr, - $solver, - // ERR, - EVENT, - TYPE, - ROUTE, - dispatchEvent, - scrollIntoEle, -} from '../../utils' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' +import { EVENT, TYPE, ROUTE } from '@constant' +import { asyncSuit, buildLog, send, scrollIntoEle } from '@utils' import S from './schema' -import SR71 from '../../utils/network/sr71' - -const sr71$ = new SR71({ - resv_event: [EVENT.PREVIEW_CLOSE, EVENT.SIDEBAR_MENU_CHANGE], -}) -let sub$ = null /* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:UsersContent') +const log = buildLog('L:UsersContent') /* eslint-enable no-unused-vars */ +const { SR71, asyncRes, $solver } = asyncSuit +const sr71$ = new SR71({ + recieve: [EVENT.PREVIEW_CLOSE, EVENT.SIDEBAR_MENU_CHANGE], +}) + +let sub$ = null let store = null const commonFilter = page => { @@ -34,11 +24,11 @@ const commonFilter = page => { } } -export function loadUsers(page = 1) { - debug('do loadUsers') +export const loadUsers = (page = 1) => { + log('do loadUsers') scrollIntoEle(TYPE.APP_HEADER_ID) - store.markState({ usersLoading: true }) + store.mark({ usersLoading: true }) sr71$.query(S.pagedUsers, commonFilter(page)) } @@ -46,7 +36,7 @@ export function onEdit() {} export function onDelete() {} export function cmsPermisstionOnChange(source) { - dispatchEvent(EVENT.NAV_UPDATE_PERMISSION, { + send(EVENT.NAV_UPDATE_PERMISSION, { type: TYPE.PREVIEW_UPDATE_PERMISSION, data: { type: 'cms', @@ -59,15 +49,15 @@ export function cmsPermisstionOnChange(source) { // Data & Error handlers // ############################### -const cancleLoading = () => store.markState({ usersLoading: false }) +const cancleLoading = () => store.mark({ usersLoading: false }) const DataSolver = [ { match: asyncRes('pagedUsers'), action: ({ pagedUsers }) => { cancleLoading() - debug('get pagedUsers: ', pagedUsers) - store.markState({ pagedUsers }) + log('get pagedUsers: ', pagedUsers) + store.mark({ pagedUsers }) }, }, { @@ -80,7 +70,7 @@ const DataSolver = [ return loadUsers(pageNumber) } default: { - debug('unknow event: ', closeType) + log('unknow event: ', closeType) /* return loadPosts() */ } } @@ -90,8 +80,8 @@ const DataSolver = [ match: asyncRes(EVENT.SIDEBAR_MENU_CHANGE), action: res => { const { mainPath, subPath } = res[EVENT.SIDEBAR_MENU_CHANGE].data - debug('mainPath event: ', mainPath) - debug('mainPath subPath: ', subPath) + log('mainPath event: ', mainPath) + log('mainPath subPath: ', subPath) if (mainPath !== ROUTE.USERS) return false loadUsers() @@ -129,7 +119,7 @@ export function init(_store) { export function uninit() { if (!sub$) return false - debug('===== do uninit') + log('===== do uninit') // sub$.unsubscribe() // sub$ = null } diff --git a/containers/UsersContent/store.js b/containers/UsersContent/store.js index 15a76d4..4c6210d 100644 --- a/containers/UsersContent/store.js +++ b/containers/UsersContent/store.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { PagedUsers, emptyPagiData } from '../../stores/SharedModel' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { PagedUsers, emptyPagiData } from '@model' +import { markStates, buildLog, stripMobx } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:UsersContentStore') +const log = buildLog('S:UsersContentStore') /* eslint-enable no-unused-vars */ const UsersContentStore = t @@ -35,7 +35,7 @@ const UsersContentStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/containers/index.js b/containers/index.js index b8be4d4..ff9aef0 100644 --- a/containers/index.js +++ b/containers/index.js @@ -15,7 +15,6 @@ export { default as ThemeWrapper } from './ThemeWrapper' export { default as MultiLanguage } from './MultiLanguage' export { default as Sidebar } from './Sidebar' export { default as Preview } from './Preview' -export { default as Doraemon } from './Doraemon' export { default as Route } from './Route' export { default as Header } from './Header' export { default as BodyLayout } from './BodyLayout' diff --git a/containers/schemas/fragments/base.js b/containers/schemas/fragments/base.js index 5aa6778..2f478a3 100644 --- a/containers/schemas/fragments/base.js +++ b/containers/schemas/fragments/base.js @@ -84,11 +84,7 @@ export const author = ` nickname avatar ` -export const user = ` - ${author} - bio - location - sex +export const userSocial = ` qq weibo weichat @@ -102,9 +98,17 @@ export const user = ` pinterest huaban ` -/* followersCount */ -/* followingsCount */ - +export const user = ` + ${author} + sex + bio + location + social { + ${userSocial} + } + followersCount + followingsCount +` export const c11n = ` bannerLayout contentsLayout @@ -146,10 +150,7 @@ export const comment = ` body floor author { - id - nickname - avatar - login + ${author} } likesCount dislikesCount @@ -161,9 +162,7 @@ export const commentParent = ` title commentsCount author { - id - nickname - avatar + ${author} } communities { id diff --git a/containers/schemas/fragments/index.js b/containers/schemas/fragments/index.js index 903329a..a36865b 100644 --- a/containers/schemas/fragments/index.js +++ b/containers/schemas/fragments/index.js @@ -17,6 +17,7 @@ import { author, tag, user, + userSocial, c11n, achievement, userBackgrounds, @@ -42,6 +43,7 @@ const F = { pagedRepos, user, + userSocial, c11n, achievement, userBackgrounds, diff --git a/containers/schemas/pages/user.js b/containers/schemas/pages/user.js index 639c057..9d51544 100644 --- a/containers/schemas/pages/user.js +++ b/containers/schemas/pages/user.js @@ -8,18 +8,9 @@ export const user = ` bio sex location - qq - weibo - weichat - github - zhihu - douban - twitter - facebook - dribble - instagram - pinterest - huaban + social { + ${F.userSocial} + } followersCount followingsCount viewerHasFollowed @include(if: $userHasLogin) @@ -74,9 +65,9 @@ export const pagedUsers = ` bio sex email - qq - weibo - weichat + social { + ${F.userSocial} + } subscribedCommunitiesCount location fromGithub @@ -103,9 +94,9 @@ export const sessionState = ` bio fromGithub location - qq - weibo - weichat + social { + ${F.userSocial} + } sex cmsPassport customization { diff --git a/docs/ideas.md b/docs/ideas.md index 9bdb90a..d102678 100644 --- a/docs/ideas.md +++ b/docs/ideas.md @@ -1,64 +1,72 @@ - ## pwa - [介绍](https://lavas.baidu.com/pwa) - [next Offline First Support](https://github.com/zeit/next.js/issues/861) + +[介绍](https://lavas.baidu.com/pwa) +[next Offline First Support](https://github.com/zeit/next.js/issues/861) ## Nano id - [git](https://github.com/ai/nanoid) - need IE >= 11 - nanoid 375,840 ops/sec - nanoid/generate 268,747 ops/sec - uuid/v4 374,767 ops/sec - shortid 41,260 ops/sec +[git](https://github.com/ai/nanoid) +need IE >= 11 + +nanoid 375,840 ops/sec +nanoid/generate 268,747 ops/sec +uuid/v4 374,767 ops/sec +shortid 41,260 ops/sec ## Eelectron - [基础文档](https://electron.org.cn/doc/index.html) - [weweChat](https://github.com/trazyn/weweChat) - [weweSource](https://insight.io/github.com/trazyn/weweChat/blob/master/package.json?source=0) + +[基础文档](https://electron.org.cn/doc/index.html) +[weweChat](https://github.com/trazyn/weweChat) +[weweSource](https://insight.io/github.com/trazyn/weweChat/blob/master/package.json?source=0) ## React Native - [react-native-guide](https://github.com/reactnativecn/react-native-guide) - [lottie-android](https://github.com/airbnb/lottie-android) - [掘金客户端](https://github.com/wangdicoder/JueJinClient) * - [kittenTricks](https://github.com/akveo/kittenTricks) * - [ireading](https://github.com/attentiveness/reading) * 比较新,但用的是 redux + +[react-native-guide](https://github.com/reactnativecn/react-native-guide) +[lottie-android](https://github.com/airbnb/lottie-android) +[掘金客户端](https://github.com/wangdicoder/JueJinClient) _ +[kittenTricks](https://github.com/akveo/kittenTricks) _ +[ireading](https://github.com/attentiveness/reading) \* 比较新,但用的是 redux ## GraphQL tools - [apollo-fetch](https://github.com/apollographql/apollo-fetch) - [graphql-request](https://github.com/graphcool/graphql-request) - [组织结构参考](https://github.com/apollographql/GitHunt-React/blob/4bbba0416c666768b375e65221236a736e50e942/ui/graphql/Comment.graphql) + +[apollo-fetch](https://github.com/apollographql/apollo-fetch) +[graphql-request](https://github.com/graphcool/graphql-request) +[组织结构参考](https://github.com/apollographql/GitHunt-React/blob/4bbba0416c666768b375e65221236a736e50e942/ui/graphql/Comment.graphql) ## Phoenix - [firestrom](https://insight.io/github.com/dailydrip/firestorm?source=0) + +[firestrom](https://insight.io/github.com/dailydrip/firestorm?source=0) ## PostgreSQL - [pgweb](https://github.com/sosedoff/pgweb) - [查询客户端 franchise](https://github.com/HVF/franchise) run sql in browser - [dbeaver](https://dbeaver.jkiss.org/) sql client based-on java + +[pgweb](https://github.com/sosedoff/pgweb) +[查询客户端 franchise](https://github.com/HVF/franchise) run sql in browser +[dbeaver](https://dbeaver.jkiss.org/) sql client based-on java ## packages - [uppy 文件上传](https://uppy.io/examples/dashboard/) - [store2](https://github.com/nbubna/store) --> 结合 Porsche cache, *important* - [react-loadable](https://github.com/thejameskyle/react-loadable) - [高德地图组件](https://github.com/ElemeFE/react-amap) - [adobe cc](https://color.adobe.com) - [random color](https://randomcolor.llllll.li/) --> too slow - [react-content-loader](https://github.com/danilowoz/react-content-loader)cool ! - [mobx-react-form](https://github.com/foxhound87/mobx-react-form) - [markjs](https://markjs.io/) --> search highlight - [masonry-layout](https://github.com/eiriklv/react-masonry-component) - [Autolinker](https://github.com/gregjacobs/Autolinker.js) - [react-diagrams](https://github.com/projectstorm/react-diagrams) +[uppy 文件上传](https://uppy.io/examples/dashboard/) +[store2](https://github.com/nbubna/store) --> 结合 Porsche cache, _important_ +[react-loadable](https://github.com/thejameskyle/react-loadable) +[高德地图组件](https://github.com/ElemeFE/react-amap) +[adobe cc](https://color.adobe.com) +[random color](https://randomcolor.llllll.li/) --> too slow +[react-content-loader](https://github.com/danilowoz/react-content-loader)cool ! +[mobx-react-form](https://github.com/foxhound87/mobx-react-form) +[markjs](https://markjs.io/) --> search highlight +[masonry-layout](https://github.com/eiriklv/react-masonry-component) +[Autolinker](https://github.com/gregjacobs/Autolinker.js) +[react-diagrams](https://github.com/projectstorm/react-diagrams) ## 内容填充 - [svgtrick](http://svgtrick.com/) - [svgontheweb](https://svgontheweb.com/zh/) + +[svgtrick](http://svgtrick.com/) +[svgontheweb](https://svgontheweb.com/zh/) ## issues - next.config.js 如果导出不存在的页面可能会使 build 过程出现奇怪的错误, 如 - polished 报错. 只导出需要的页面 + +next.config.js 如果导出不存在的页面可能会使 build 过程出现奇怪的错误, 如 +polished 报错. 只导出需要的页面 ## TODO-server @@ -75,7 +83,7 @@ - [ ] use styled-component extend to refator - [ ] use header section footer main ... html tags - [ ] head for every page, [example](https://github.com/zeit/next.js/blob/master/examples/head-elements/pages/index.js) -- [ ] use Rxdb to store state in browser, [see](https://github.com/mobxjs/mobx-state-tree/blob/a0916791768637665a56bc2720ec0a081d4d148f/packages/mst-example-todomvc/src/index.js) +- [ ] use Rxdb to store state in browser, [see](https://github.com/mobxjs/mobx-state-tree/blob/a0916791768637665a56bc2720ec0a081d4d148f/packages/mst-example-todomvc/src/index.js) - [ ] 使用 Github Rest/GraphQl api 摸索数据层方案 - [ ] [主页弄给](https://github.com/Sly777/ran) - [ ] use bundlesize in Ci . [here](https://github.com/siddharthkp/bundlesize) @@ -87,7 +95,7 @@ - [x] u_panel -> shell - [x] Big Bug ---> svg switch - [x] navbar -- [x] *sync route info to store* +- [x] _sync route info to store_ - [x] remove the clock page - [x] remove Doraemon panel's scrollbar - [x] [字体问题参考](http://element.eleme.io/2.0/#/zh-CN/component/typography) @@ -97,23 +105,23 @@ - [x] get app() -> get root() - [x] home page -> intro page - [x] support < > ... cmd -- [x] complete debug feature +- [x] complete log feature - [x] launch first version with changeLog staff - [x] upgrade to react v16 [check](https://github.com/react-boilerplate/react-boilerplate/pull/1969/files) - [x] upgrade to next@4 which only support react v16 - [x] upgrade mobx-state-tree - [x] cmd chian for trace and may use in header - [x] test --> tests -- [x] *test Preact in production* +- [x] _test Preact in production_ - [x] logic.js generator (only for containers) - [x] add github example using Rx.js as request lib, GraphQL if time free - [x] add Ramada example && [bebel-plugin](https://github.com/megawac/babel-plugin-ramda) - [x] Badges ( CI build / deps / coveralls / greenkeeper) - [x] prettier config -- [x] styled-component example / polish +- [x] styled-component example / polish - [x] prettier/lint before commit -- [x] gzip: use a CDN to serve statics -- [x] plop template +- [x] gzip: use a CDN to serve statics +- [x] plop template - [x] change dir stucture for more easy test/code - [x] intl: rename messages file to lang - [x] remove the typescript support @@ -121,88 +129,96 @@ - [x] generator for container and store/ - [x] Jest && Jest as 'cover tool' - [x] make test a individual dir -- [x] debug pkg +- [x] log pkg - [x] add global-css ([normalize.css](https://github.com/necolas/normalize.css)) -- [x] *design data layer*: [基于 RxJs 的前端数据层实践](https://juejin.im/post/59a7d6d06fb9a0247804f2aa) +- [x] _design data layer_: [基于 RxJs 的前端数据层实践](https://juejin.im/post/59a7d6d06fb9a0247804f2aa) - [x] add Menu - [x] 使用各国标志性的建筑作为 i18n 切换图标 - ### tools - #### [git commit emoji](https://github.com/liuchengxu/git-commit-emoji-cn) - #### [lozad.js](https://github.com/ApoorvSaxena/lozad.js) - #### [一键分享](https://github.com/overtrue/share.js) - #### [https://github.com/jawil/blog/issues/10](https://github.com/jawil/blog/issues/10) - #### [SVG优化](https://github.com/svg/svgo) -### i18n +#### [git commit emoji](https://github.com/liuchengxu/git-commit-emoji-cn) + +#### [lozad.js](https://github.com/ApoorvSaxena/lozad.js) + +#### [一键分享](https://github.com/overtrue/share.js) + +#### [https://github.com/jawil/blog/issues/10](https://github.com/jawil/blog/issues/10) + +#### [SVG 优化](https://github.com/svg/svgo) + +### i18n 0. 修改创建组件的模板 1. 初始加载使用浏览器默认语言 (通过: accept.language(['en', 'zh']), 见官方例子) -2. 后续过程中如果前端 locale 手动改变,则单独请求 locale 文件 (server.js 需要单 +1. 后续过程中如果前端 locale 手动改变,则单独请求 locale 文件 (server.js 需要单 独的 locale 路由) -3. build 的时候用 default-lang.js 脚本生成en/zh.json文件, messages 导出后 key/id 不能重复 -4. 逻辑合并到数据流 +1. build 的时候用 default-lang.js 脚本生成 en/zh.json 文件, messages 导出后 key/id 不能重复 +1. 逻辑合并到数据流 ## ui - [点击 page 隐藏菜单的思路](https://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element) - [rx + fetch](https://github.com/Cmdv/React-RxJS/blob/836d20a09f66f94db4c3e2206b14b203bf8836a1/src/intent/json-intent.js) + +[点击 page 隐藏菜单的思路](https://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element) +[rx + fetch](https://github.com/Cmdv/React-RxJS/blob/836d20a09f66f94db4c3e2206b14b203bf8836a1/src/intent/json-intent.js) ## issue 1. next export 不支持从特定目录导出,所以不能将 ts 的代码集中到一个目录 2. stores 不使用 typescript , see [this issue](https://github.com/mobxjs/mobx-state-tree/issues/276) - ## Resources ### Ramada - [invoker 的例子](https://stackoverflow.com/questions/28896800/how-can-i-do-this-better-with-ramda-js) - [Ramda 中文网](http://ramda.cn/) (简介部分有很多文章) - [Ramda 函数库参考教程 -- 阮一峰](http://www.ruanyifeng.com/blog/2017/03/ramda.html) - [Pointfree 编程风格指南](http://www.ruanyifeng.com/blog/2017/03/pointfree.html) - [Thinking in Ramda: 函数组合 -> 投票的例子不错](https://adispring.coding.me/2017/06/10/Thinking-in-Ramda-Combining-Functions/) -- - R.and / R.or / R.complement 分别是函数版本的 and / or / ! - [Thinking in Ramda: 控制流](https://adispring.coding.me/2017/06/11/Thinking-in-Ramda-Declarative-Programming/) - - [Thinking in Ramda: 重构的例子,涉及很多对象的操作例子](https://adispring.coding.me/2017/06/16/Thinking-in-Ramda-Immutability-and-Objects/) -- - evolve 太酷了.. 数组对应的是 adjust , 以及更通用的 lens 系列 - [Thinking in Ramda: Lens](https://adispring.coding.me/2017/06/18/Thinking-in-Ramda-Lenses/) - - ```js - const lineWidth = settings.lineWidth || 80 - const lineWidth = defaultTo(80, settings.lineWidth) - ``` + +[invoker 的例子](https://stackoverflow.com/questions/28896800/how-can-i-do-this-better-with-ramda-js) +[Ramda 中文网](http://ramda.cn/) (简介部分有很多文章) +[Ramda 函数库参考教程 -- 阮一峰](http://www.ruanyifeng.com/blog/2017/03/ramda.html) +[Pointfree 编程风格指南](http://www.ruanyifeng.com/blog/2017/03/pointfree.html) +[Thinking in Ramda: 函数组合 -> 投票的例子不错](https://adispring.coding.me/2017/06/10/Thinking-in-Ramda-Combining-Functions/) -- +R.and / R.or / R.complement 分别是函数版本的 and / or / ! +[Thinking in Ramda: 控制流](https://adispring.coding.me/2017/06/11/Thinking-in-Ramda-Declarative-Programming/) + +[Thinking in Ramda: 重构的例子,涉及很多对象的操作例子](https://adispring.coding.me/2017/06/16/Thinking-in-Ramda-Immutability-and-Objects/) -- +evolve 太酷了.. 数组对应的是 adjust , 以及更通用的 lens 系列 +[Thinking in Ramda: Lens](https://adispring.coding.me/2017/06/18/Thinking-in-Ramda-Lenses/) + +```js +const lineWidth = settings.lineWidth || 80 +const lineWidth = defaultTo(80, settings.lineWidth) +``` ### rx.js - [interactive Rx](http://rxmarbles.com/) - [RxJS 操作符详解](https://rxjs-cn.github.io/learn-rxjs-operators/) - [RxJS-chinese](https://buctwbzs.gitbooks.io/rxjs/) - [RxJS 中文社区](https://github.com/RxJS-CN) - [categories-of-operators](http://reactivex.io/rxjs/manual/overview.html#categories-of-operators) - [使用 RxJS 构造复杂单页应用的数据逻辑](https://github.com/xufei/blog/issues/38) - [RxJS 入门指引和初步应用](https://github.com/xufei/blog/issues/44) - [单页应用的数据流方案探索](https://github.com/xufei/blog/issues/47) - [复杂单页应用的数据层设计](https://github.com/xufei/blog/issues/42) + +[interactive Rx](http://rxmarbles.com/) +[RxJS 操作符详解](https://rxjs-cn.github.io/learn-rxjs-operators/) +[RxJS-chinese](https://buctwbzs.gitbooks.io/rxjs/) +[RxJS 中文社区](https://github.com/RxJS-CN) +[categories-of-operators](http://reactivex.io/rxjs/manual/overview.html#categories-of-operators) +[使用 RxJS 构造复杂单页应用的数据逻辑](https://github.com/xufei/blog/issues/38) +[RxJS 入门指引和初步应用](https://github.com/xufei/blog/issues/44) +[单页应用的数据流方案探索](https://github.com/xufei/blog/issues/47) +[复杂单页应用的数据层设计](https://github.com/xufei/blog/issues/42) ### mobx - [mobx-share (mobx 知识结构)](https://ckinmind.github.io/mobx-share/) - + +[mobx-share (mobx 知识结构)](https://ckinmind.github.io/mobx-share/) + ### jest - [Running Jest Tests Before Each Git Commit](https://benmccormick.org/2017/02/26/running-jest-tests-before-each-git-commit/) + +[Running Jest Tests Before Each Git Commit](https://benmccormick.org/2017/02/26/running-jest-tests-before-each-git-commit/) ### example - [react-typescript-samples](https://github.com/Lemoncode/react-typescript-samples) - [typescript-react-mobx-template](https://github.com/dimafeng/typescript-react-mobx-template) + +[react-typescript-samples](https://github.com/Lemoncode/react-typescript-samples) +[typescript-react-mobx-template](https://github.com/dimafeng/typescript-react-mobx-template) ### js/css tips - [小 tip:CSS vw让overflow:auto页面滚动条出现时不跳动](http://www.zhangxinxu.com/wordpress/2015/01/css-page-scrollbar-toggle-center-no-jumping/) - [基于vw等viewport视区单位配合rem响应式排版和布局](http://www.zhangxinxu.com/wordpress/2016/08/vw-viewport-responsive-layout-typography/) - [小tip:JS前端创建html或json文件并浏览器导出下载](http://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/) +[小 tip:CSS vw 让 overflow:auto 页面滚动条出现时不跳动](http://www.zhangxinxu.com/wordpress/2015/01/css-page-scrollbar-toggle-center-no-jumping/) +[基于 vw 等 viewport 视区单位配合 rem 响应式排版和布局](http://www.zhangxinxu.com/wordpress/2016/08/vw-viewport-responsive-layout-typography/) +[小 tip:JS 前端创建 html 或 json 文件并浏览器导出下载](http://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/) ## talk idea - 0. 就像混泥土 -- 盖小房子随便配比 --- 但是改三峡大坝可就不行了 - 1. [香港笼屋](https://www.zhihu.com/question/19757290) - +0. 就像混泥土 -- 盖小房子随便配比 --- 但是改三峡大坝可就不行了 +1. [香港笼屋](https://www.zhihu.com/question/19757290) diff --git a/package-docker.json b/package-docker.json index 20d7989..6ce007f 100644 --- a/package-docker.json +++ b/package-docker.json @@ -50,11 +50,11 @@ "ramda": "0.25.0", "randomcolor": "^0.5.3", "raven-js": "^3.26.4", - "react": "16.6.0", + "react": "16.8.1", "react-calendar-heatmap": "^1.6.3", "react-click-outside": "^3.0.1", "react-content-loader": "3.1.2", - "react-dom": "16.6.0", + "react-dom": "16.8.1", "react-intl": "2.4.0", "react-json-view": "1.19.1", "react-keydown": "1.9.7", @@ -81,8 +81,10 @@ "babel-core": "^7.0.0-bridge.0", "babel-eslint": "9.0.0", "babel-jest": "^23.6.0", + "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-import": "1.9.1", "babel-plugin-inline-dotenv": "^1.1.2", + "babel-plugin-module-resolver": "^3.1.2", "babel-plugin-ramda": "1.6.3", "babel-plugin-react-intl": "2.4.0", "babel-plugin-styled-components": "1.8.0", diff --git a/package-lock.json b/package-lock.json index 55f1278..3849938 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mastani", - "version": "0.0.1", + "version": "0.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d7977ca..51b05aa 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "coderplanets_admin", - "version": "0.4.0", + "version": "0.5.0", "license": "MIT", "scripts": { "dev": "cross-env GOAL=dev run-p server lint:watch", "prod": "cross-env GOAL=production run-p server lint:watch", "local": "cross-env NODE_ENV=local GOAL=local node server", "lint": "eslint --fix pages/**/*.js components/**/* containers/**/* stores/**/*", - "lint:watch": "esw -w pages/**/*.js components/**/* containers/**/* stores/**/*", + "lint:staged": "git diff --cached --name-only --diff-filter=ACRM | grep \".js$\" | xargs ./node_modules/.bin/eslint", "server": "npm run clean && node server.js", "build": "run-s dist clean", "build:clean": "run-s dist clean", @@ -26,7 +26,6 @@ "analyze": "cross-env ANALYZE=1 next build", "test": "cross-env NODE_ENV=test GOAL=test jest --config .jest.config.js", "test:dev": "cross-env NODE_ENV=dev GOAL=test jest --config .jest.config.js", - "test:watch": "npm run test -- --watch", "test:cover": "npm run test -- --coverage", "test:e2e": "cypress open", "coveralls": "cat ./coverage/lcov.info | coveralls", @@ -43,11 +42,6 @@ "path": "./node_modules/cz-conventional-changelog" } }, - "husky": { - "hooks": { - "commit-msg": "npm run commitmsg" - } - }, "dependencies": { "accepts": "^1.3.4", "antd": "3.8.4", @@ -57,6 +51,7 @@ "apollo-link-error": "^1.0.9", "apollo-link-http": "1.5.5", "apollo-link-retry": "2.2.5", + "babel-plugin-module-resolver": "^3.2.0", "chalk": "^2.4.1", "debug": "3.1.0", "draft-js": "^0.10.5", @@ -77,6 +72,7 @@ "mastani-codehighlight": "0.0.7", "mobx": "4.5.2", "mobx-react": "5.3.6", + "mobx-react-lite": "^1.4.1", "mobx-state-tree": "3.7.1", "module-alias": "^2.0.1", "next": "7.0.2", @@ -88,11 +84,11 @@ "ramda": "0.25.0", "randomcolor": "^0.5.3", "raven-js": "^3.26.4", - "react": "16.6.0", + "react": "16.8.1", "react-calendar-heatmap": "^1.6.3", "react-click-outside": "^3.0.1", "react-content-loader": "3.1.2", - "react-dom": "16.6.0", + "react-dom": "16.8.1", "react-intl": "2.4.0", "react-json-view": "1.19.1", "react-keydown": "1.9.7", @@ -118,9 +114,11 @@ "@babel/plugin-proposal-decorators": "^7.1.0", "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.1", + "@groupher/eslint-config-web": "^1.2.0", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "9.0.0", "babel-jest": "^23.6.0", + "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-import": "1.9.1", "babel-plugin-inline-dotenv": "^1.1.2", "babel-plugin-ramda": "1.6.3", @@ -138,20 +136,14 @@ "enzyme-adapter-react-16": "1.1.1", "enzyme-to-json": "^3.3.4", "eslint": "5.6.0", - "eslint-config-airbnb": "17.1.0", - "eslint-config-prettier": "3.0.1", - "eslint-plugin-cypress": "^2.0.1", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jsx-a11y": "6.1.1", "eslint-plugin-prettier": "2.6.2", - "eslint-plugin-react": "7.11.0", - "eslint-watch": "4.0.2", - "husky": "^0.14.3", + "husky": "2.1.0", "jest": "23.4.2", "lint-staged": "7.2.0", "npm-run-all": "^4.1.1", "plop": "2.0.0", "prettier": "1.14.0", + "pretty-quick": "^1.11.0", "react-test-renderer": "16.4.2", "regenerator-runtime": "^0.13.1", "shelljs": "0.8.2", diff --git a/pages/communities.js b/pages/communities.js index 968f76f..8d854e0 100644 --- a/pages/communities.js +++ b/pages/communities.js @@ -2,19 +2,19 @@ import React from 'react' import { Provider } from 'mobx-react' import R from 'ramda' -import GAWraper from '../components/GAWraper' -import initRootStore from '../stores/init' -import ThemeWrapper from '../containers/ThemeWrapper' -import MultiLanguage from '../containers/MultiLanguage' -import Sidebar from '../containers/Sidebar' -import Preview from '../containers/Preview' -import Doraemon from '../containers/Doraemon' -import Route from '../containers/Route' -import BodyLayout from '../containers/BodyLayout' -import Header from '../containers/Header' -import CommunitiesBanner from '../containers/CommunitiesBanner' -import CommunitiesContent from '../containers/CommunitiesContent' +import GAWraper from '@components/GAWraper' +import initRootStore from 'stores/init' +import ThemeWrapper from '@containers/ThemeWrapper' +import MultiLanguage from '@containers/MultiLanguage' +import Sidebar from '@containers/Sidebar' +import Preview from '@containers/Preview' +import Route from '@containers/Route' +import BodyLayout from '@containers/BodyLayout' +import Header from '@containers/Header' +import CommunitiesBanner from '@containers/CommunitiesBanner' +import CommunitiesContent from '@containers/CommunitiesContent' +import Footer from '@components/Footer' import { makeGQClient, // Global, @@ -25,8 +25,7 @@ import { BStore, ssrPagedSchema, ssrPagedContents, -} from '../utils' -import Footer from '../components/Footer' +} from '@utils' // try to fix safari bug // see https://github.com/yahoo/react-intl/issues/422 @@ -100,7 +99,6 @@ export default class Index extends React.Component { -
diff --git a/pages/community.js b/pages/community.js index 53912e0..a5ccde1 100644 --- a/pages/community.js +++ b/pages/community.js @@ -2,21 +2,21 @@ import React from 'react' import { Provider } from 'mobx-react' import R from 'ramda' -import GAWraper from '../components/GAWraper' -import initRootStore from '../stores/init' -import ThemeWrapper from '../containers/ThemeWrapper' -import MultiLanguage from '../containers/MultiLanguage' -import Sidebar from '../containers/Sidebar' -import Preview from '../containers/Preview' -import Doraemon from '../containers/Doraemon' -import Route from '../containers/Route' -import BodyLayout from '../containers/BodyLayout' -import Header from '../containers/Header' -import CommunityBanner from '../containers/CommunityBanner' -import CommunityContent from '../containers/CommunityContent' - -import { P } from '../containers/schemas' - +import GAWraper from '@components/GAWraper' +import initRootStore from 'stores/init' +import ThemeWrapper from '@containers/ThemeWrapper' +import MultiLanguage from '@containers/MultiLanguage' +import Sidebar from '@containers/Sidebar' +import Preview from '@containers/Preview' +import Route from '@containers/Route' +import BodyLayout from '@containers/BodyLayout' +import Header from '@containers/Header' +import CommunityBanner from '@containers/CommunityBanner' +import CommunityContent from '@containers/CommunityContent' + +import { P } from '@schemas' + +import Footer from '@components/Footer' import { makeGQClient, getMainPath, @@ -25,9 +25,7 @@ import { ssrPagedSchema, ssrCommunityFilter, ssrPagedContents, -} from '../utils' - -import Footer from '../components/Footer' +} from '@utils' // try to fix safari bug // see https://github.com/yahoo/react-intl/issues/422 @@ -101,7 +99,6 @@ export default class Index extends React.Component { -
diff --git a/pages/index.js b/pages/index.js index 766952a..cb865e5 100644 --- a/pages/index.js +++ b/pages/index.js @@ -1,10 +1,10 @@ import React from 'react' import { Provider } from 'mobx-react' /* import { request } from 'graphql-request' */ -/* import { GRAPHQL_ENDPOINT } from '../config' */ +/* import { GRAPHQL_ENDPOINT } from '@config' */ -import initRootStore from '../stores/init' -import { GAWraper, Footer } from '../components' +import initRootStore from 'stores/init' +import { GAWraper, Footer } from '@components' import { Header, @@ -14,12 +14,11 @@ import { MultiLanguage, Sidebar, Preview, - Doraemon, Route, BodyLayout, -} from '../containers' +} from '@containers' -import { P } from '../containers/schemas' +import { P } from '@schemas' import { makeGQClient, @@ -31,7 +30,7 @@ import { // TYPE, BStore, // nilOrEmpty, -} from '../utils' +} from '@utils' // try to fix safari bug // see https://github.com/yahoo/react-intl/issues/422 @@ -93,7 +92,6 @@ export default class Index extends React.Component { -
diff --git a/pages/users.js b/pages/users.js index 45c1a37..9f153d9 100644 --- a/pages/users.js +++ b/pages/users.js @@ -1,24 +1,23 @@ import React from 'react' import { Provider } from 'mobx-react' -import GAWraper from '../components/GAWraper' -import initRootStore from '../stores/init' -import ThemeWrapper from '../containers/ThemeWrapper' -import MultiLanguage from '../containers/MultiLanguage' -import Sidebar from '../containers/Sidebar' -import Preview from '../containers/Preview' -import Doraemon from '../containers/Doraemon' -import Route from '../containers/Route' -import BodyLayout from '../containers/BodyLayout' -import Header from '../containers/Header' +import { P } from '@schemas' +import { makeGQClient, BStore } from '@utils' -import UsersBanner from '../containers/UsersBanner' -import UsersContent from '../containers/UsersContent' +import GAWraper from '@components/GAWraper' +import initRootStore from 'stores/init' +import ThemeWrapper from '@containers/ThemeWrapper' +import MultiLanguage from '@containers/MultiLanguage' +import Sidebar from '@containers/Sidebar' +import Preview from '@containers/Preview' +import Route from '@containers/Route' +import BodyLayout from '@containers/BodyLayout' +import Header from '@containers/Header' -import { P } from '../containers/schemas' +import UsersBanner from '@containers/UsersBanner' +import UsersContent from '@containers/UsersContent' -import { makeGQClient, BStore } from '../utils' -import Footer from '../components/Footer' +import Footer from '@components/Footer' // try to fix safari bug // see https://github.com/yahoo/react-intl/issues/422 global.Intl = require('intl') @@ -64,7 +63,6 @@ export default class Index extends React.Component { -
diff --git a/stores/AccountStore/index.js b/stores/AccountStore/index.js index bb60686..f4da0db 100644 --- a/stores/AccountStore/index.js +++ b/stores/AccountStore/index.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { markStates, makeDebugger, stripMobx, BStore } from '../../utils' -import { User, EmptyUser } from '../SharedModel' +import { markStates, buildLog, stripMobx, BStore } from '@utils' +import { User, EmptyUser } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:AccountStore') +const log = buildLog('S:AccountStore') /* eslint-enable no-unused-vars */ const AccountStore = t @@ -53,7 +53,7 @@ const AccountStore = t updateAccount(sobj) { const user = R.merge(stripMobx(self.user), { ...sobj }) - self.markState({ user }) + self.mark({ user }) }, updateSesstion({ isValid, user }) { self.isValidSession = isValid @@ -64,8 +64,8 @@ const AccountStore = t return self.sessionCleanup() }, setSession(user, token) { - // debug('setSession user: ', user) - // debug('setSession token: ', token) + // log('setSession user: ', user) + // log('setSession token: ', token) BStore.set('user', user) BStore.set('token', token) @@ -108,7 +108,7 @@ const AccountStore = t self.root.communities.toggleSubscribe(community) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/ApiLayoutStore/index.js b/stores/ApiLayoutStore/index.js index 2e9c16f..854e788 100644 --- a/stores/ApiLayoutStore/index.js +++ b/stores/ApiLayoutStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ApiLayoutStore') +const log = buildLog('S:ApiLayoutStore') /* eslint-enable no-unused-vars */ const ApiLayoutStore = t @@ -19,7 +19,7 @@ const ApiLayoutStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/BodylayoutStore/index.js b/stores/BodylayoutStore/index.js index 6130e84..d54c0a6 100644 --- a/stores/BodylayoutStore/index.js +++ b/stores/BodylayoutStore/index.js @@ -5,26 +5,19 @@ import { types as t, getParent } from 'mobx-state-tree' -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:BodylayoutStore') +const log = buildLog('S:BodylayoutStore') /* eslint-enable no-unused-vars */ -const BodylayoutStore = t - .model('BodylayoutStore', {}) - .views(self => ({ - get root() { - return getParent(self) - }, +const BodylayoutStore = t.model('BodylayoutStore', {}).views(self => ({ + get root() { + return getParent(self) + }, - get sidebarPin() { - return self.root.sidebar.pin - }, - })) - .actions(self => ({ - openDoraemon() { - self.root.openDoraemon() - }, - })) + get sidebarPin() { + return self.root.sidebar.pin + }, +})) export default BodylayoutStore diff --git a/stores/CheatSheetContentStore/index.js b/stores/CheatSheetContentStore/index.js index c6df64f..0e0b366 100644 --- a/stores/CheatSheetContentStore/index.js +++ b/stores/CheatSheetContentStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CheatSheetContentStore') +const log = buildLog('S:CheatSheetContentStore') /* eslint-enable no-unused-vars */ const CheatSheetContentStore = t @@ -19,7 +19,7 @@ const CheatSheetContentStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/CheatSheetPaperStore/index.js b/stores/CheatSheetPaperStore/index.js index ed5fafa..d377db9 100644 --- a/stores/CheatSheetPaperStore/index.js +++ b/stores/CheatSheetPaperStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CheatSheetPaperStore') +const log = buildLog('S:CheatSheetPaperStore') /* eslint-enable no-unused-vars */ const MarkDownBlock = t.model('Suggestion', { @@ -40,7 +40,7 @@ const CheatSheetPaperStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/CommunitiesStore/index.js b/stores/CommunitiesStore/index.js index 5d2a024..700e80f 100644 --- a/stores/CommunitiesStore/index.js +++ b/stores/CommunitiesStore/index.js @@ -6,13 +6,13 @@ import R from 'ramda' import { types as t, getParent } from 'mobx-state-tree' -import { markStates, makeDebugger } from '../../utils' -import { Community } from '../SharedModel' +import { markStates, buildLog } from '@utils' +import { Community } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:communities') +const log = buildLog('S:communities') /* eslint-enable no-unused-vars */ -// const debug = makeDebugger('S:CommunitiesStore') +// const log = buildLog('S:CommunitiesStore') const CommunitiesStore = t .model('CommunitiesStore', { @@ -31,7 +31,7 @@ const CommunitiesStore = t // cheatsheet: t.optional(CheatSheetModal, { title: '', desc: '', raw: '' }), // jobs: ... // themes: ... - // debug: ... + // log: ... // user: ... // cmds: t.map(CmdModel), }) @@ -112,7 +112,7 @@ const CommunitiesStore = t } }, load(sobj) { - self.markState(sobj) + self.mark(sobj) /* R.forEachObjIndexed((v, k) => { self.languages.set(k, v) @@ -135,7 +135,7 @@ const CommunitiesStore = t } */ }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/CommunitySetterStore/index.js b/stores/CommunitySetterStore/index.js index 439ebab..bea59a0 100644 --- a/stores/CommunitySetterStore/index.js +++ b/stores/CommunitySetterStore/index.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { PagedCommunities } from '../SharedModel' -import { markStates, makeDebugger, stripMobx } from '../../utils' +import { markStates, buildLog, stripMobx } from '@utils' +import { PagedCommunities } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:CommunitySetterStore') +const log = buildLog('S:CommunitySetterStore') /* eslint-enable no-unused-vars */ const CommunitySetterStore = t @@ -25,7 +25,7 @@ const CommunitySetterStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/HeaderStore/index.js b/stores/HeaderStore/index.js index e877519..0f0424b 100644 --- a/stores/HeaderStore/index.js +++ b/stores/HeaderStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:HeaderStore') +const log = buildLog('S:HeaderStore') /* eslint-enable no-unused-vars */ const HeaderStore = t @@ -66,13 +66,10 @@ const HeaderStore = t updateAccount(sobj) { self.root.account.updateAccount(sobj) }, - openDoraemon() { - self.root.openDoraemon() - }, openPreview(type) { self.root.openPreview(type) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/JobsViewerStore/index.js b/stores/JobsViewerStore/index.js index 4a51ad7..b923c4b 100644 --- a/stores/JobsViewerStore/index.js +++ b/stores/JobsViewerStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:JobsViewerStore') +const log = buildLog('S:JobsViewerStore') /* eslint-enable no-unused-vars */ const JobsViewerStore = t @@ -19,7 +19,7 @@ const JobsViewerStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/MapViewerStore/index.js b/stores/MapViewerStore/index.js index 58eaffb..6a0f3d4 100644 --- a/stores/MapViewerStore/index.js +++ b/stores/MapViewerStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:MapViewerStore') +const log = buildLog('S:MapViewerStore') /* eslint-enable no-unused-vars */ const MapViewerStore = t @@ -19,7 +19,7 @@ const MapViewerStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/PostsPaperStore/index.js b/stores/PostsPaperStore/index.js index 191cc0f..12cc906 100644 --- a/stores/PostsPaperStore/index.js +++ b/stores/PostsPaperStore/index.js @@ -6,10 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { markStates, makeDebugger, stripMobx, TYPE } from '../../utils' -import { Article } from '../SharedModel' +import { TYPE } from '@constant' +import { markStates, buildLog, stripMobx } from '@utils' +import { Article } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:PostsPaperStore') +const log = buildLog('S:PostsPaperStore') /* eslint-enable no-unused-vars */ /* const filters = { */ @@ -100,7 +101,7 @@ const PostsPaperStore = t selectFilter(filter, val) { // TODO const community = 'js' - debug('curCommunity', self.curCommunity) + log('curCommunity', self.curCommunity) const curFilter = self.filters.get(community, filter) const newFilter = curFilter ? R.merge(curFilter, { [filter]: val }) @@ -125,7 +126,7 @@ const PostsPaperStore = t setHeaderFix(fix) { self.root.setHeaderFix(fix) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/PostsStore/index.js b/stores/PostsStore/index.js index 94f2787..45d2d32 100644 --- a/stores/PostsStore/index.js +++ b/stores/PostsStore/index.js @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger, stripMobx } from '../../utils' -import { User } from '../SharedModel' +import { markStates, buildLog, stripMobx } from '@utils' +import { User } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:PostsStore') +const log = buildLog('S:PostsStore') /* eslint-enable no-unused-vars */ const posts = [ @@ -175,10 +175,10 @@ const PostsStore = t // R.forEachObjIndexed((v, k) => { // self.all.set(k, v) // }, fakeData) - // debug('after: ', self.all.toJSON()) + // log('after: ', self.all.toJSON()) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/RootStore/index.js b/stores/RootStore/index.js index e869bb5..bb107ea 100644 --- a/stores/RootStore/index.js +++ b/stores/RootStore/index.js @@ -4,7 +4,7 @@ */ import { types as t } from 'mobx-state-tree' -import { makeDebugger, markStates } from '../../utils' +import { buildLog, markStates } from '@utils' import CommunitiesStore from '../CommunitiesStore' import { ThemeStore, ThemeDefaults } from '../ThemeStore' @@ -44,7 +44,6 @@ import { AccountViewerStore, CommentsStore, // toolbox - DoraemonStore, PreviewStore, SidebarStore, TypeWriterStore, @@ -53,7 +52,7 @@ import { } from '../index' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:rootStore') +const log = buildLog('S:rootStore') /* eslint-enable no-unused-vars */ const rootStore = t @@ -72,7 +71,6 @@ const rootStore = t // toolbox sidebar: t.optional(SidebarStore, { menuItems: [] }), preview: t.optional(PreviewStore, { visible: false }), - doraemon: t.optional(DoraemonStore, {}), docUploader: t.optional(DocUploaderStore, {}), // layouts @@ -142,9 +140,6 @@ const rootStore = t setHeaderFix(fix) { self.header.setFix(fix) }, - openDoraemon() { - self.doraemon.open() - }, openPreview(type) { self.preview.open(type) }, @@ -164,7 +159,7 @@ const rootStore = t isLocaleExist(locale) { return !!self.langs.get(locale) }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/SharedModel/Category.js b/stores/SharedModel/Category.js index 04887e4..e606c81 100644 --- a/stores/SharedModel/Category.js +++ b/stores/SharedModel/Category.js @@ -1,6 +1,6 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' // NOTE: the SimpleXXX version is to avoid circle import issue which cause MST error const SimpleCommunity = t.model('SimpleCommunity', { diff --git a/stores/SharedModel/Comment.js b/stores/SharedModel/Comment.js index 0e3cf49..369fafc 100644 --- a/stores/SharedModel/Comment.js +++ b/stores/SharedModel/Comment.js @@ -1,6 +1,6 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' import { User } from './User' import { Community } from './Community' diff --git a/stores/SharedModel/Community.js b/stores/SharedModel/Community.js index 3895168..585e9f3 100644 --- a/stores/SharedModel/Community.js +++ b/stores/SharedModel/Community.js @@ -1,5 +1,5 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' // NOTE: the SimpleXXX version is to avoid circle import issue which cause MST error diff --git a/stores/SharedModel/Job.js b/stores/SharedModel/Job.js index acffe07..ed4a37a 100644 --- a/stores/SharedModel/Job.js +++ b/stores/SharedModel/Job.js @@ -1,6 +1,6 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' import { User } from './User' import { Community } from './Community' diff --git a/stores/SharedModel/Post.js b/stores/SharedModel/Post.js index ec59842..2a825e6 100644 --- a/stores/SharedModel/Post.js +++ b/stores/SharedModel/Post.js @@ -1,6 +1,6 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' import { User } from './User' import { Community } from './Community' diff --git a/stores/SharedModel/Repo.js b/stores/SharedModel/Repo.js index b283973..685cc17 100644 --- a/stores/SharedModel/Repo.js +++ b/stores/SharedModel/Repo.js @@ -1,6 +1,6 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' import { User, PagedUsers } from './User' import { Community } from './Community' diff --git a/stores/SharedModel/Tag.js b/stores/SharedModel/Tag.js index a05c55a..33444a7 100644 --- a/stores/SharedModel/Tag.js +++ b/stores/SharedModel/Tag.js @@ -1,6 +1,7 @@ import { types as t } from 'mobx-state-tree' -import { TAG_COLORS, PAGE_SIZE } from '../../config' -import { THREAD } from '../../utils' + +import { TAG_COLORS, PAGE_SIZE } from '@config' +import { THREAD } from '@constant' import { Community } from './Community' diff --git a/stores/SharedModel/Thread.js b/stores/SharedModel/Thread.js index 49f41b7..439ec5c 100644 --- a/stores/SharedModel/Thread.js +++ b/stores/SharedModel/Thread.js @@ -1,5 +1,5 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' export const Thread = t.model('Thread', { id: t.maybeNull(t.string), diff --git a/stores/SharedModel/User.js b/stores/SharedModel/User.js index 65e9bd9..d5ff6cd 100644 --- a/stores/SharedModel/User.js +++ b/stores/SharedModel/User.js @@ -1,10 +1,11 @@ import { types as t } from 'mobx-state-tree' + +import { PAGE_SIZE } from '@config' +import { C11N } from '@constant' + import { Community /* PagedCommunities */ } from './Community' import { emptyPagiData } from './general' -import { C11N } from '../../utils' -import { PAGE_SIZE } from '../../config' - const PagedCommunities = t.model('pagedCommunities', { entries: t.optional(t.array(Community), []), totalCount: t.optional(t.number, 0), @@ -80,6 +81,21 @@ const Customization = t.model('Customization', { // ... }) +const UserSocial = t.model('UserSocial', { + qq: t.maybeNull(t.string), + weibo: t.maybeNull(t.string), + weichat: t.maybeNull(t.string), + github: t.maybeNull(t.string), + zhihu: t.maybeNull(t.string), + douban: t.maybeNull(t.string), + twitter: t.maybeNull(t.string), + facebook: t.maybeNull(t.string), + dribble: t.maybeNull(t.string), + instagram: t.maybeNull(t.string), + pinterest: t.maybeNull(t.string), + huaban: t.maybeNull(t.string), +}) + export const User = t.model('User', { // identifier is desiged to be immutable, this id would be updated when login /* id: t.optional(t.string, ''), */ @@ -97,18 +113,7 @@ export const User = t.model('User', { workBackgrounds: t.optional(t.array(WorkBackground), []), sex: t.maybeNull(t.string), // social - github: t.maybeNull(t.string), - zhihu: t.maybeNull(t.string), - douban: t.maybeNull(t.string), - twitter: t.maybeNull(t.string), - facebook: t.maybeNull(t.string), - dribble: t.maybeNull(t.string), - instagram: t.maybeNull(t.string), - pinterest: t.maybeNull(t.string), - huaban: t.maybeNull(t.string), - qq: t.maybeNull(t.string), - weichat: t.maybeNull(t.string), - weibo: t.maybeNull(t.string), + social: t.optional(UserSocial, {}), fromGithub: t.optional(t.boolean, false), /* fromWeixin: t.optional(t.boolean, false), */ diff --git a/stores/SharedModel/Video.js b/stores/SharedModel/Video.js index 4343933..97c232c 100644 --- a/stores/SharedModel/Video.js +++ b/stores/SharedModel/Video.js @@ -1,6 +1,6 @@ import { types as t } from 'mobx-state-tree' -import { PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '@config' import { User, PagedUsers } from './User' import { Community } from './Community' diff --git a/stores/ThemeStore/index.js b/stores/ThemeStore/index.js index 0e3d568..7e48c78 100644 --- a/stores/ThemeStore/index.js +++ b/stores/ThemeStore/index.js @@ -6,11 +6,11 @@ import { types as t, getParent } from 'mobx-state-tree' import R from 'ramda' -import { DEFAULT_THEME } from '../../config' -import { makeDebugger, markStates, themeSkins } from '../../utils' +import { DEFAULT_THEME } from '@config' +import { buildLog, markStates, themeSkins } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ThemeStore') +const log = buildLog('S:ThemeStore') /* eslint-enable no-unused-vars */ export const ThemeDefaults = { @@ -36,7 +36,7 @@ export const ThemeStore = t changeTheme(name) { self.curTheme = name }, - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/ThreadEditorStore/index.js b/stores/ThreadEditorStore/index.js index 2e309a6..d333f9a 100644 --- a/stores/ThreadEditorStore/index.js +++ b/stores/ThreadEditorStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:ThreadEditorStore') +const log = buildLog('S:ThreadEditorStore') /* eslint-enable no-unused-vars */ const ThreadEditorStore = t @@ -19,7 +19,7 @@ const ThreadEditorStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/TutsViewerStore/index.js b/stores/TutsViewerStore/index.js index 6609af6..7b25095 100644 --- a/stores/TutsViewerStore/index.js +++ b/stores/TutsViewerStore/index.js @@ -6,9 +6,9 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:TutsViewerStore') +const log = buildLog('S:TutsViewerStore') /* eslint-enable no-unused-vars */ const TutsViewerStore = t @@ -19,7 +19,7 @@ const TutsViewerStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/UsersStore/index.js b/stores/UsersStore/index.js index 041bee0..cb69c64 100644 --- a/stores/UsersStore/index.js +++ b/stores/UsersStore/index.js @@ -5,10 +5,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { User } from '../SharedModel' -import { markStates, makeDebugger } from '../../utils' +import { markStates, buildLog } from '@utils' +import { User } from '@model' /* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:UsersStore') +const log = buildLog('S:UsersStore') /* eslint-enable no-unused-vars */ const UsersStore = t @@ -26,7 +26,7 @@ const UsersStore = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/stores/index.js b/stores/index.js index 3fe0eab..447ae6f 100644 --- a/stores/index.js +++ b/stores/index.js @@ -1,72 +1,67 @@ // domain store -export { default as RouteStore } from '../containers/Route/store' +export { default as RouteStore } from '@containers/Route/store' export { default as AccountStore } from './AccountStore' export { default as UsersStore } from './UsersStore' export { default as PostsStore } from './PostsStore' export { default as BodylayoutStore } from './BodylayoutStore' export { default as ApiLayoutStore } from './ApiLayoutStore' -export { default as SidebarStore } from '../containers/Sidebar/store' -export { default as PreviewStore } from '../containers/Preview/store' -export { default as DoraemonStore } from '../containers/Doraemon/store' -export { default as HeaderStore } from '../containers/Header/store' +export { default as SidebarStore } from '@containers/Sidebar/store' +export { default as PreviewStore } from '@containers/Preview/store' +export { default as HeaderStore } from '@containers/Header/store' // banner store -export { default as BannerStore } from '../containers/Banner/store' -export { default as UsersBannerStore } from '../containers/UsersBanner/store' +export { default as BannerStore } from '@containers/Banner/store' +export { default as UsersBannerStore } from '@containers/UsersBanner/store' export { default as CommunitiesBannerStore, -} from '../containers/CommunitiesBanner/store' +} from '@containers/CommunitiesBanner/store' export { default as CommunityBannerStore, -} from '../containers/CommunityBanner/store' +} from '@containers/CommunityBanner/store' // contents store -export { default as ContentStore } from '../containers/Content/store' -export { default as UsersContentStore } from '../containers/UsersContent/store' +export { default as ContentStore } from '@containers/Content/store' +export { default as UsersContentStore } from '@containers/UsersContent/store' export { default as CommunitiesContentStore, -} from '../containers/CommunitiesContent/store' +} from '@containers/CommunitiesContent/store' export { default as CommunityContentStore, -} from '../containers/CommunityContent/store' +} from '@containers/CommunityContent/store' // editors -export { default as TagEditorStore } from '../containers/TagEditor/store' -export { default as ThreadEditorStore } from '../containers/ThreadEditor/store' +export { default as TagEditorStore } from '@containers/TagEditor/store' +export { default as ThreadEditorStore } from '@containers/ThreadEditor/store' export { default as CommunityEditorStore, -} from '../containers/CommunityEditor/store' +} from '@containers/CommunityEditor/store' export { default as CategoryEditorStore, -} from '../containers/CategoryEditor/store' +} from '@containers/CategoryEditor/store' export { default as PermissionEditorStore, -} from '../containers/PermissionEditor/store' +} from '@containers/PermissionEditor/store' // setter export { default as CategorySetterStore, -} from '../containers/CategorySetter/store' +} from '@containers/CategorySetter/store' -export { default as TagSetterStore } from '../containers/TagSetter/store' +export { default as TagSetterStore } from '@containers/TagSetter/store' export { default as CommunitySetterStore, -} from '../containers/CommunitySetter/store' -export { default as ThreadSetterStore } from '../containers/ThreadSetter/store' +} from '@containers/CommunitySetter/store' +export { default as ThreadSetterStore } from '@containers/ThreadSetter/store' // toolbox -export { default as DocUploaderStore } from '../containers/DocUploader/store' -export { default as TypeWriterStore } from '../containers/TypeWriter/store' -export { default as CommentsStore } from '../containers/Comments/store' -export { - default as AccountEditorStore, -} from '../containers/AccountEditor/store' +export { default as DocUploaderStore } from '@containers/DocUploader/store' +export { default as TypeWriterStore } from '@containers/TypeWriter/store' +export { default as CommentsStore } from '@containers/Comments/store' +export { default as AccountEditorStore } from '@containers/AccountEditor/store' // viewers store -export { default as ArticleViwerStore } from '../containers/ArticleViwer/store' -export { - default as AccountViewerStore, -} from '../containers/AccountViewer/store' +export { default as ArticleViwerStore } from '@containers/ArticleViwer/store' +export { default as AccountViewerStore } from '@containers/AccountViewer/store' diff --git a/stores/init.js b/stores/init.js index 0e91888..ac8c369 100644 --- a/stores/init.js +++ b/stores/init.js @@ -18,7 +18,7 @@ function initRootStore({ langSetup, ...restData }) { rootStore = createRootStore({ langSetup, ...restData }) } - rootStore.markState({ ...restData }) + rootStore.mark({ ...restData }) return rootStore } diff --git a/utils/network/handler.js b/utils/async/handler.js similarity index 73% rename from utils/network/handler.js rename to utils/async/handler.js index a00e72c..34b2e21 100644 --- a/utils/network/handler.js +++ b/utils/async/handler.js @@ -3,21 +3,27 @@ import R from 'ramda' /* import { Observable } from 'rxjs/Observable' */ import { of } from 'rxjs' -import { makeDebugger, ERR } from '..' +import { ERR } from '@constant' + import { TIMEOUT_THRESHOLD } from './setup' +import { buildLog } from '../logger' -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('Network') -/* eslint-enable no-unused-vars */ +/* eslint-disable-next-line */ +const log = buildLog('Async') export const TimoutObservable = of({ error: ERR.TIMEOUT, - details: `server has no-response in ${TIMEOUT_THRESHOLD} secs`, + details: `server has no-response in ${Math.round( + (TIMEOUT_THRESHOLD / 1000) * 100 + ) / 100} secs`, }) // refator later -const fomatDetail = errors => { +const formatDetail = errors => { const details = [] + // NOTE: eadge case, fix latter + if (!errors) return {} + errors.map(({ message, path, key, code }) => { if (Array.isArray(message)) { return message.map(msg => { @@ -40,14 +46,15 @@ const fomatDetail = errors => { } export const formatGraphErrors = error => { - if (Array.isArray(error)) - return { error: ERR.CRAPHQL, details: fomatDetail(error) } + if (Array.isArray(error)) { + return { error: ERR.GRAPHQL, details: formatDetail(error) } + } const { graphQLErrors } = error if (!R.isEmpty(graphQLErrors)) { // graphQLErrors may not catch in graph query (wrang sytax etc ...) // checkout this issue https://github.com/apollographql/apollo-client/issues/2810 - return { error: ERR.CRAPHQL, details: fomatDetail(graphQLErrors) } + return { error: ERR.GRAPHQL, details: formatDetail(graphQLErrors) } } return { error: ERR.NETWORK, details: 'checkout your server or network' } } @@ -62,7 +69,7 @@ export const getThenHandler = res => { details: `${res.url}`, }) default: - debug('unhandle error: ', res) + log('unhandle error: ', res) return Promise.reject({ error: 10000, details: `${res.statusText}: unhandle`, @@ -72,10 +79,10 @@ export const getThenHandler = res => { export const getCatchHandler = err => { /* - if (!navigator.onLine) { - return { error: 'NET_OFFLINE', details: 'NET_OFFLINE' } - } - */ + if (!navigator.onLine) { + return { error: 'NET_OFFLINE', details: 'NET_OFFLINE' } + } + */ switch (true) { case err.error === ERR.NOT_FOUND: diff --git a/utils/async/index.js b/utils/async/index.js new file mode 100644 index 0000000..1ab869f --- /dev/null +++ b/utils/async/index.js @@ -0,0 +1,2 @@ +export { default as SR71 } from './sr71' +export const holder = 1 diff --git a/utils/network/index.js b/utils/async/methods.js similarity index 76% rename from utils/network/index.js rename to utils/async/methods.js index 8403cbe..64c5868 100644 --- a/utils/network/index.js +++ b/utils/async/methods.js @@ -1,14 +1,13 @@ -import fetch from 'isomorphic-fetch' import { from } from 'rxjs' +import fetch from 'isomorphic-fetch' -/* import { makeDebugger } from '../../utils' */ +import { buildLog } from '../logger' import { client, context } from './setup' import { getThenHandler, getCatchHandler, formatGraphErrors } from './handler' -/* eslint-disable no-unused-vars */ -/* const debug = makeDebugger('Network') */ -/* eslint-enable no-unused-vars */ +/* eslint-disable-next-line */ +const log = buildLog('Async') const doQuery = (query, variables) => client @@ -30,7 +29,12 @@ const doMutate = (mutation, variables) => variables, context, }) - .then(res => res.data) + .then(res => { + // once login user has mutation to server + // then clear all the cache store in Apollo client. + client.clearStore() + return res.data + }) .catch(formatGraphErrors) const GET = url => @@ -45,14 +49,3 @@ export const mutatePromise = ({ mutation, variables }) => from(doMutate(mutation, variables)) export const restGetPromise = url => from(GET(url)) - -/* - - const network = { - query, - mutate, - GET, - } - - export default network - */ diff --git a/utils/network/promise_timeout_handler.js b/utils/async/promise_timeout_handler.js similarity index 93% rename from utils/network/promise_timeout_handler.js rename to utils/async/promise_timeout_handler.js index 0f94983..1a09dd8 100644 --- a/utils/network/promise_timeout_handler.js +++ b/utils/async/promise_timeout_handler.js @@ -4,10 +4,10 @@ import R from 'ramda' import { Observable } from 'rxjs/Observable' -import { makeDebugger, notEmpty } from '../../utils' +import { buildLog, notEmpty } from '@utils' import { TIMEOUT_THRESHOLD, GRAPHQL_TIMEOUT } from './setup' -const debug = makeDebugger('Network') +const log = buildLog('Network') export const TimoutObservable = Observable.of({ error: 'TimeoutError', @@ -48,7 +48,7 @@ export const getThenHandler = res => { details: `${res.url}`, }) default: - debug('unhandle error: ', res) + log('unhandle error: ', res) return Promise.reject({ error: 10000, details: `${res.statusText}: unhandle`, diff --git a/utils/network/promise_timeout_version.js b/utils/async/promise_timeout_version.js similarity index 92% rename from utils/network/promise_timeout_version.js rename to utils/async/promise_timeout_version.js index 2452c6d..84651d4 100644 --- a/utils/network/promise_timeout_version.js +++ b/utils/async/promise_timeout_version.js @@ -2,7 +2,7 @@ import { timeout } from 'promise-timeout' import fetch from 'isomorphic-fetch' -import { makeDebugger } from '../' +import { buildLog } from '../' import { client, context, @@ -13,7 +13,7 @@ import { import { getThenHandler, getCatchHandler, formatGraphErrors } from './handler' -const debug = makeDebugger('Network') +const log = buildLog('Network') const query = query => timeout( diff --git a/utils/network/setup.js b/utils/async/setup.js similarity index 59% rename from utils/network/setup.js rename to utils/async/setup.js index 140b564..d720199 100644 --- a/utils/network/setup.js +++ b/utils/async/setup.js @@ -8,19 +8,29 @@ import fetch from 'isomorphic-fetch' /* import { onError } from 'apollo-link-error' */ -import { makeDebugger, BStore } from '..' -import { GRAPHQL_ENDPOINT } from '../../config' +import { GRAPHQL_ENDPOINT } from '@config' +import { ERR } from '@constant' -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('Network') -/* eslint-enable no-unused-vars */ +import { errRescue } from '../functions' +import { buildLog } from '../logger' +import BStore from '../bstore' + +/* eslint-disable-next-line */ +const log = buildLog('Async') const graphLink = new HttpLink({ uri: GRAPHQL_ENDPOINT, fetch }) -export const TIMEOUT_THRESHOLD = 15000 // 5 sec -export const GRAPHQL_TIMEOUT = 15000 -export const MUTIATION_TIMEOUT = 15000 -export const QUERY_TIMEOUT = 15000 +/* // for log + export const TIMEOUT_THRESHOLD = 10 // 10 sec + export const GRAPHQL_TIMEOUT = 10 // 10 sec + export const MUTIATION_TIMEOUT = 10 // 10 sec + export const QUERY_TIMEOUT = 10 // 10 sec + */ + +export const TIMEOUT_THRESHOLD = 10000 // 10 sec +export const GRAPHQL_TIMEOUT = 10000 // 10 sec +export const MUTIATION_TIMEOUT = 10000 // 10 sec +export const QUERY_TIMEOUT = 10000 // 10 sec const retryLink = new RetryLink({ delay: { @@ -35,13 +45,13 @@ const retryLink = new RetryLink({ }) /* const errorLink = onError(({ operation, graphQLErrors }) => { */ -const errorLink = onError(({ graphQLErrors }) => { - if (graphQLErrors) { - /* graphQLErrors.map(({ message, path, detail }) => */ - debug('[GraphQL error happend]: ') - graphQLErrors.map(({ message }) => debug(`[error detail--> ]: ${message}`)) - } -}) +const errorLink = onError(({ operation: { operationName }, graphQLErrors }) => + errRescue({ + type: ERR.GRAPHQL, + operation: operationName, + details: graphQLErrors, + }) +) const token = BStore.get('token') || '' export const context = { @@ -58,16 +68,19 @@ const link = ApolloLink.from([retryLink, errorLink, graphLink]) // disable cache in apollo-client // sse https://www.apollographql.com/docs/react/essentials/queries.html#graphql-config-options-fetchPolicy // see https://stackoverflow.com/questions/47879016/how-to-disable-cache-in-apollo-link-or-apollo-client -const defaultOptions = { - watchQuery: { - fetchPolicy: 'network-only', - errorPolicy: 'ignore', - }, - query: { - fetchPolicy: 'network-only', - errorPolicy: 'all', - }, -} +/* + const defaultOptions = { + watchQuery: { + fetchPolicy: 'network-only', + errorPolicy: 'ignore', + }, + query: { + fetchPolicy: 'network-only', + errorPolicy: 'all', + }, + } + */ + // single-instance-pattern // see: https://k94n.com/es6-modules-single-instance-pattern export const client = new ApolloClient({ @@ -76,5 +89,5 @@ export const client = new ApolloClient({ cache: new InMemoryCache(), connectToDevTools: true, /* shouldBatch: false, */ - defaultOptions, + // defaultOptions, }) diff --git a/utils/network/sr71.js b/utils/async/sr71.js similarity index 75% rename from utils/network/sr71.js rename to utils/async/sr71.js index 8ca91e5..bcfdd99 100644 --- a/utils/network/sr71.js +++ b/utils/async/sr71.js @@ -11,35 +11,23 @@ import { timeoutWith, } from 'rxjs/operators' -// import 'rxjs/add/observable/of' -// import 'rxjs/add/observable/fromEventPattern' - -/* - import 'rxjs/add/operator/debounceTime' - import 'rxjs/add/operator/do' - import 'rxjs/add/operator/switchMap' - import 'rxjs/add/operator/merge' - import 'rxjs/add/operator/timeoutWith' - */ - import { TimoutObservable } from './handler' import { TIMEOUT_THRESHOLD } from './setup' -import { queryPromise, mutatePromise, restGetPromise } from './index' +import { queryPromise, mutatePromise, restGetPromise } from './methods' // import { debounceTime, switchMap, merge, timeoutWith } from 'rxjs/operator' class SR71 { - constructor(opts = { resv_event: '' }) { + constructor(opts = { recieve: '' }) { this.getInput$ = new Subject() this.queryInput$ = new Subject() this.mutateInput$ = new Subject() this.stop$ = new Subject() this.eventInput$ = new Subject() - this.resv_event = opts.resv_event + this.recieve = opts.recieve this.initEventSubscription() - /* this.query$ = this.queryInput$.debounceTime(300).switchMap(q => */ this.query$ = this.queryInput$.pipe( debounce(() => timer(300)), switchMap(q => @@ -50,7 +38,6 @@ class SR71 { ) ) - /* this.mutate$ = this.mutateInput$.debounceTime(300).switchMap(q => */ this.mutate$ = this.mutateInput$.pipe( debounce(() => timer(300)), switchMap(q => @@ -61,7 +48,6 @@ class SR71 { ) ) - /* this.restGet$ = this.getInput$.debounceTime(300).switchMap(q => */ this.restGet$ = this.getInput$.pipe( debounce(() => timer(300)), switchMap(q => @@ -81,12 +67,12 @@ class SR71 { // Private initEventSubscription() { - if (Array.isArray(this.resv_event)) { + if (Array.isArray(this.recieve)) { R.forEach(event => { this.subscriptEvent(event) - }, this.resv_event) + }, this.recieve) } else { - this.subscriptEvent(this.resv_event) + this.subscriptEvent(this.recieve) } } diff --git a/utils/async_suit.js b/utils/async_suit.js new file mode 100644 index 0000000..fd8bf2b --- /dev/null +++ b/utils/async_suit.js @@ -0,0 +1,10 @@ +import SR71 from './async/sr71' +import { asyncErr, asyncRes } from './graphql_helper' +import { $solver } from './mobx_helper' + +export default { + SR71, + asyncErr, + asyncRes, + $solver, +} diff --git a/utils/constant/c11n.js b/utils/constant/c11n.js new file mode 100644 index 0000000..59d9a1b --- /dev/null +++ b/utils/constant/c11n.js @@ -0,0 +1,7 @@ +const C11N = { + DIGEST: 'digest', + LIST: 'list', + BRIEF: 'brief', +} + +export default C11N diff --git a/utils/constant/err.js b/utils/constant/err.js new file mode 100644 index 0000000..42683dc --- /dev/null +++ b/utils/constant/err.js @@ -0,0 +1,9 @@ +const ERR = { + CRAPHQL: 'CRAPHQL', + PARSE_CHEATSHEET_MD: 'PARSE_CHEATSHEET_MD', + NETWORK: 'NETWORK', + NOT_FOUND: 'NOT_FOUND', + TIMEOUT: 'TIMEOUT', +} + +export default ERR diff --git a/utils/constant/event.js b/utils/constant/event.js new file mode 100644 index 0000000..f1a7810 --- /dev/null +++ b/utils/constant/event.js @@ -0,0 +1,43 @@ +const EVENT = { + LOGIN_PANEL: 'LOGIN_PANEL', + LOGIN: 'LOGIN', + LOGOUT: 'LOGOUT', + ROUTE_CHANGE: 'ROUTE_CHANGE', + PREVIEW: 'PREVIEW', + PREVIEW_CLOSE: 'PREVIEW_CLOSE', + PREVIEW_CLOSED: 'PREVIEW_CLOSED', + PREVIEW_POST: 'PREVIEW_POST', + NAV_EDIT: 'NAV_EDIT', + NAV_CREATE_POST: 'NAV_CREATE_POST', + REFRESH_POSTS: 'REFRESH_POSTS', + + // menu + SIDEBAR_MENU_CHANGE: 'SIDEBAR_MENU_CHANGE', + // ROUTE_COMMUNITY_MENU_CHANGE: 'ROUTE_COMMUNITY_MENU_CHANGE', + + // admin + NAV_CREATE_COMMUNITY: 'NAV_CREATE_COMMUNITY', + NAV_UPDATE_COMMUNITY: 'NAV_UPDATE_COMMUNITY', + + // community + NAV_SET_COMMUNITY: 'NAV_SET_COMMUNITY', + + // category + NAV_CREATE_CATEGORY: 'NAV_CREATE_CATEGORY', + NAV_UPDATE_CATEGORY: 'NAV_UPDATE_CATEGORY', + NAV_SET_CATEGORY: 'NAV_SET_CATEGORY', + // thread + NAV_CREATE_THREAD: 'NAV_CREATE_THREAD', + NAV_SET_THREAD: 'NAV_SET_THREAD', + // tag + NAV_SET_TAG: 'NAV_SET_TAG', + NAV_CREATE_TAG: 'NAV_CREATE_TAG', + NAV_UPDATE_TAG: 'NAV_UPDATE_TAG', + // permission + NAV_CREATE_PERMISSION: 'NAV_CREATE_PERMISSION', + NAV_UPDATE_PERMISSION: 'NAV_UPDATE_PERMISSION', + + DRAFT_INSERT_SNIPPET: 'DRAFT_INSERT_SNIPPET', +} + +export default EVENT diff --git a/utils/constant/index.js b/utils/constant/index.js new file mode 100644 index 0000000..8c0fefb --- /dev/null +++ b/utils/constant/index.js @@ -0,0 +1,14 @@ +export { default as ERR } from './err' + +export { default as EVENT } from './event' +export { default as TYPE } from './type' +export { default as ROUTE } from './route' +export { default as C11N } from './c11n' + +export { THREAD, COMMUNITY_SPEC_THREADS } from './thread' + +export { PAYMENT_USAGE, PAYMENT_METHOD } from './payment' + +/* some svg icon are sensitive to fill color */ +/* some community svg need fill color, like city etc.. */ +export const NON_FILL_COMMUNITY = ['javascript'] diff --git a/utils/constant/payment.js b/utils/constant/payment.js new file mode 100644 index 0000000..63a90bd --- /dev/null +++ b/utils/constant/payment.js @@ -0,0 +1,11 @@ +export const PAYMENT_USAGE = { + SENIOR: 'SENIOR', + GIRLS_CODE_TOO_PLAN: 'GirlsCodeTooPlan', + DONATE: 'DONATE', + SPONSOR: 'SPONSOR', +} + +export const PAYMENT_METHOD = { + ALIPAY: 'ALIPAY', + WECHAT: 'WECHAT', +} diff --git a/utils/constant/route.js b/utils/constant/route.js new file mode 100644 index 0000000..e2bdcef --- /dev/null +++ b/utils/constant/route.js @@ -0,0 +1,37 @@ +const ROUTE = { + // NOTE: use lower case for god sake + // the fake id for all communities, this item do not has a id, so make a fake one + // id is used for UI when item is active + // communities CURD + COMMUNITIES: 'communities', + COMMUNITY: 'community', + // communities categories CURD + TAGS: 'tags', + THREADS: 'threads', + CATEGORIES: 'categories', + + USERS: 'users', + SENIOR: 'senior', + // valid part + POSTS: 'posts', + JOBS: 'jobs', + VIDEOS: 'videos', + REPOS: 'repos', + + ACTIVITIES: 'activities', + CHEATSHEETS: 'cheatsheets', + EDITORS: 'editors', + SUBSCRIBERS: 'subscribers', + + // users + // register users + REGISTERS: 'registers', + // mother and fathers + PAYS: 'pays', + // users passport CURD + PASSPORTS: 'passports', + // roles CURD (based on passports) + ROLES: 'roles', +} + +export default ROUTE diff --git a/utils/constant/thread.js b/utils/constant/thread.js new file mode 100644 index 0000000..71e6387 --- /dev/null +++ b/utils/constant/thread.js @@ -0,0 +1,21 @@ +export const COMMUNITY_SPEC_THREADS = { + USER: 'user', + JOB: 'job', + VIDEO: 'video', + REPO: 'repo', + WIKI: 'wiki', + CHEATSHEET: 'cheatsheet', +} + +export const THREAD = { + ...COMMUNITY_SPEC_THREADS, + POST: 'post', + // home spec + TECH: 'tech', + SHARE: 'share', + RADAR: 'radar', + CITY: 'city', + // city spec + GROUP: 'group', + COMPANY: 'company', +} diff --git a/utils/constant/type.js b/utils/constant/type.js new file mode 100644 index 0000000..d54244d --- /dev/null +++ b/utils/constant/type.js @@ -0,0 +1,66 @@ +export const TYPE = { + APP_HEADER_ID: 'APP_HEADER_ID', + + CHEATSHEET_ROOT_PAGE: 'CHEATSHEET_ROOT_PAGE', + COMMUNITIES_ROOT_PAGE: 'COMMUNITIES_ROOT_PAGE', + COMMUNITY_PAGE: 'COMMUNITY_PAGE', + POST_PAGE: 'POST_PAGE', + ACTIVITIES_ROOT_PAGE: 'ACTIVITIES_ROOT_PAGE', + + POST: 'POST', + JOB: 'JOB', + REPO: 'REPO', + VIDEO: 'VIDEO', + FAVORITE: 'FAVORITE', + STAR: 'STAR', + WATCH: 'WATCH', + REACTION: 'reaction', + UNDO_REACTION: 'undoReaction', + POST_PREVIEW_VIEW: 'POST_PREVIEW_VIEW', + PREVIEW_ACCOUNT_VIEW: 'PREVIEW_ACCOUNT_VIEW', + PREVIEW_ACCOUNT_EDIT: 'PREVIEW_ACCOUNT_EDIT', + PREVIEW_ROOT_STORE: 'PREVIEW_ROOT_STORE', + PREVIEW_CREATE_POST: 'PREVIEW_CREATE_POST', + + // admin + PREVIEW_CREATE_COMMUNITY: 'PREVIEW_CREATE_COMMUNITY', + PREVIEW_UPDATE_COMMUNITY: 'PREVIEW_UPDATE_COMMUNITY', + // >> community + PREVIEW_SET_COMMUNITY: 'PREVIEW_SET_COMMUNITY', + // >> tags + PREVIEW_SET_TAG: 'PREVIEW_SET_TAG', + PREVIEW_CREATE_TAG: 'PREVIEW_CREATE_TAG', + PREVIEW_UPDATE_TAG: 'PREVIEW_UPDATE_TAG', + // >> categories + PREVIEW_CREATE_CATEGORY: 'PREVIEW_CREATE_CATEGORY', + PREVIEW_UPDATE_CATEGORY: 'PREVIEW_UPDATE_CATEGORY', + PREVIEW_SET_CATEGORY: 'PREVIEW_SET_CATEGORY', + // >> threads + PREVIEW_CREATE_THREAD: 'PREVIEW_CREATE_THREAD', + PREVIEW_SET_THREAD: 'PREVIEW_SET_THREAD', + // >> permission + PREVIEW_CREATE_PERMISSION: 'PREVIEW_CREATE_PERMISSION', + PREVIEW_UPDATE_PERMISSION: 'PREVIEW_UPDATE_PERMISSION', + + // PAGE STATE + LOADING: 'LOADING', + NOT_FOUND: 'NOT_FOUND', + RESULT: 'RESULT', + // filters + ASC_INSERTED: 'ASC_INSERTED', + DESC_INSERTED: 'DESC_INSERTED', + MOST_LIKES: 'MOST_LIKES', + MOST_DISLIKES: 'MOST_DISLIKES', + + // ACTION EVENTS + POSTS_REFRESH: 'POSTS_REFRESH', + POSTS_CONTENT_REFRESH: 'POSTS_CONTENT_REFRESH', + JOBS_CONTENT_REFRESH: 'JOBS_CONTENT_REFRESH', + COMMUNITIES_REFRESH: 'COMMUNITIES_REFRESH', + TAGS_REFRESH: 'TAGS_REFRESH', + GATEGORIES_REFRESH: 'GATEGORIES_REFRESH', + + USERS_REFRESH: 'USERS_REFRESH', +} + +export default TYPE diff --git a/utils/constants.js b/utils/constants.js deleted file mode 100644 index 9471e5e..0000000 --- a/utils/constants.js +++ /dev/null @@ -1,195 +0,0 @@ -export const ERR = { - CRAPHQL: 'CRAPHQL', - PARSE_CHEATSHEET_MD: 'PARSE_CHEATSHEET_MD', - NETWORK: 'NETWORK', - NOT_FOUND: 'NOT_FOUND', - TIMEOUT: 'TIMEOUT', -} - -export const EVENT = { - LOGIN_PANEL: 'LOGIN_PANEL', - LOGIN: 'LOGIN', - LOGOUT: 'LOGOUT', - ROUTE_CHANGE: 'ROUTE_CHANGE', - PREVIEW: 'PREVIEW', - PREVIEW_CLOSE: 'PREVIEW_CLOSE', - PREVIEW_CLOSED: 'PREVIEW_CLOSED', - PREVIEW_POST: 'PREVIEW_POST', - NAV_EDIT: 'NAV_EDIT', - NAV_CREATE_POST: 'NAV_CREATE_POST', - REFRESH_POSTS: 'REFRESH_POSTS', - - // menu - SIDEBAR_MENU_CHANGE: 'SIDEBAR_MENU_CHANGE', - // ROUTE_COMMUNITY_MENU_CHANGE: 'ROUTE_COMMUNITY_MENU_CHANGE', - - // admin - NAV_CREATE_COMMUNITY: 'NAV_CREATE_COMMUNITY', - NAV_UPDATE_COMMUNITY: 'NAV_UPDATE_COMMUNITY', - - // community - NAV_SET_COMMUNITY: 'NAV_SET_COMMUNITY', - - // category - NAV_CREATE_CATEGORY: 'NAV_CREATE_CATEGORY', - NAV_UPDATE_CATEGORY: 'NAV_UPDATE_CATEGORY', - NAV_SET_CATEGORY: 'NAV_SET_CATEGORY', - // thread - NAV_CREATE_THREAD: 'NAV_CREATE_THREAD', - NAV_SET_THREAD: 'NAV_SET_THREAD', - // tag - NAV_SET_TAG: 'NAV_SET_TAG', - NAV_CREATE_TAG: 'NAV_CREATE_TAG', - NAV_UPDATE_TAG: 'NAV_UPDATE_TAG', - // permission - NAV_CREATE_PERMISSION: 'NAV_CREATE_PERMISSION', - NAV_UPDATE_PERMISSION: 'NAV_UPDATE_PERMISSION', - - DRAFT_INSERT_SNIPPET: 'DRAFT_INSERT_SNIPPET', -} - -export const TYPE = { - APP_HEADER_ID: 'APP_HEADER_ID', - - CHEATSHEET_ROOT_PAGE: 'CHEATSHEET_ROOT_PAGE', - COMMUNITIES_ROOT_PAGE: 'COMMUNITIES_ROOT_PAGE', - COMMUNITY_PAGE: 'COMMUNITY_PAGE', - POST_PAGE: 'POST_PAGE', - ACTIVITIES_ROOT_PAGE: 'ACTIVITIES_ROOT_PAGE', - - POST: 'POST', - JOB: 'JOB', - REPO: 'REPO', - VIDEO: 'VIDEO', - FAVORITE: 'FAVORITE', - STAR: 'STAR', - WATCH: 'WATCH', - REACTION: 'reaction', - UNDO_REACTION: 'undoReaction', - POST_PREVIEW_VIEW: 'POST_PREVIEW_VIEW', - PREVIEW_ACCOUNT_VIEW: 'PREVIEW_ACCOUNT_VIEW', - PREVIEW_ACCOUNT_EDIT: 'PREVIEW_ACCOUNT_EDIT', - PREVIEW_ROOT_STORE: 'PREVIEW_ROOT_STORE', - PREVIEW_CREATE_POST: 'PREVIEW_CREATE_POST', - - // admin - PREVIEW_CREATE_COMMUNITY: 'PREVIEW_CREATE_COMMUNITY', - PREVIEW_UPDATE_COMMUNITY: 'PREVIEW_UPDATE_COMMUNITY', - // >> community - PREVIEW_SET_COMMUNITY: 'PREVIEW_SET_COMMUNITY', - // >> tags - PREVIEW_SET_TAG: 'PREVIEW_SET_TAG', - PREVIEW_CREATE_TAG: 'PREVIEW_CREATE_TAG', - PREVIEW_UPDATE_TAG: 'PREVIEW_UPDATE_TAG', - // >> categories - PREVIEW_CREATE_CATEGORY: 'PREVIEW_CREATE_CATEGORY', - PREVIEW_UPDATE_CATEGORY: 'PREVIEW_UPDATE_CATEGORY', - PREVIEW_SET_CATEGORY: 'PREVIEW_SET_CATEGORY', - // >> threads - PREVIEW_CREATE_THREAD: 'PREVIEW_CREATE_THREAD', - PREVIEW_SET_THREAD: 'PREVIEW_SET_THREAD', - // >> permission - PREVIEW_CREATE_PERMISSION: 'PREVIEW_CREATE_PERMISSION', - PREVIEW_UPDATE_PERMISSION: 'PREVIEW_UPDATE_PERMISSION', - - // PAGE STATE - LOADING: 'LOADING', - NOT_FOUND: 'NOT_FOUND', - RESULT: 'RESULT', - // filters - ASC_INSERTED: 'ASC_INSERTED', - DESC_INSERTED: 'DESC_INSERTED', - MOST_LIKES: 'MOST_LIKES', - MOST_DISLIKES: 'MOST_DISLIKES', - - // ACTION EVENTS - POSTS_REFRESH: 'POSTS_REFRESH', - POSTS_CONTENT_REFRESH: 'POSTS_CONTENT_REFRESH', - JOBS_CONTENT_REFRESH: 'JOBS_CONTENT_REFRESH', - COMMUNITIES_REFRESH: 'COMMUNITIES_REFRESH', - TAGS_REFRESH: 'TAGS_REFRESH', - GATEGORIES_REFRESH: 'GATEGORIES_REFRESH', - - USERS_REFRESH: 'USERS_REFRESH', -} - -export const COMMUNITY_SPEC_THREADS = { - USER: 'user', - JOB: 'job', - VIDEO: 'video', - REPO: 'repo', - WIKI: 'wiki', - CHEATSHEET: 'cheatsheet', -} - -export const THREAD = { - ...COMMUNITY_SPEC_THREADS, - POST: 'post', - // home spec - TECH: 'tech', - SHARE: 'share', - RADAR: 'radar', - CITY: 'city', - // city spec - GROUP: 'group', - COMPANY: 'company', -} - -export const ROUTE = { - // NOTE: use lower case for god sake - // the fake id for all communities, this item do not has a id, so make a fake one - // id is used for UI when item is active - // communities CURD - COMMUNITIES: 'communities', - COMMUNITY: 'community', - // communities categories CURD - TAGS: 'tags', - THREADS: 'threads', - CATEGORIES: 'categories', - - USERS: 'users', - SENIOR: 'senior', - // valid part - POSTS: 'posts', - JOBS: 'jobs', - VIDEOS: 'videos', - REPOS: 'repos', - - ACTIVITIES: 'activities', - CHEATSHEETS: 'cheatsheets', - EDITORS: 'editors', - SUBSCRIBERS: 'subscribers', - - // users - // register users - REGISTERS: 'registers', - // mother and fathers - PAYS: 'pays', - // users passport CURD - PASSPORTS: 'passports', - // roles CURD (based on passports) - ROLES: 'roles', -} - -// customization -export const C11N = { - DIGEST: 'digest', - LIST: 'list', - BRIEF: 'brief', -} - -export const PAYMENT_USAGE = { - SENIOR: 'SENIOR', - GIRLS_CODE_TOO_PLAN: 'GirlsCodeTooPlan', - DONATE: 'DONATE', - SPONSOR: 'SPONSOR', -} - -export const PAYMENT_METHOD = { - ALIPAY: 'ALIPAY', - WECHAT: 'WECHAT', -} - -/* some svg icon are sensitive to fill color */ -/* some community svg need fill color, like city etc.. */ -export const NON_FILL_COMMUNITY = ['javascript'] diff --git a/utils/dom_operator.js b/utils/dom_operator.js index cad9d87..48abb09 100644 --- a/utils/dom_operator.js +++ b/utils/dom_operator.js @@ -44,32 +44,4 @@ export const unholdPage = () => { } } -export const focusDoraemonBar = () => { - const safeDocument = getDocument() - - if (safeDocument) { - setTimeout(() => { - // side effect - // has to use setTimeout - // see: https://stackoverflow.com/questions/1096436/document-getelementbyidid-focus-is-not-working-for-firefox-or-chrome - try { - safeDocument.getElementById('doraemonInputbar').focus() - } catch (e) { - console.error(e) - } - }, 0) - } -} - -export const hideDoraemonBarRecover = () => { - const safeDocument = getDocument() - - if (safeDocument) { - // side effect - // onBlur will on focus the whole page, if not use this - // openDoraemon will not work until you click the page - document.getElementById('whereCallShowDoraemon').click() - } -} - /* eslint-enable no-undef */ diff --git a/utils/functions.js b/utils/functions.js index 70e0474..0d98611 100644 --- a/utils/functions.js +++ b/utils/functions.js @@ -1,9 +1,10 @@ import R from 'ramda' import PubSub from 'pubsub-js' -import { EVENT } from './constants' +import { TAG_COLOR_ORDER } from '@config' +import { EVENT } from '@constant' + import { nilOrEmpty, isEmptyNil } from './validator' -import { TAG_COLOR_ORDER } from '../config' /* eslint-disable */ // TODO: document ? @@ -114,15 +115,11 @@ export function toPercentNum(top, bottom) { return `${fixedNum}%` } -export const dispatchEvent = (msg, data = {}) => { - // TODO: check the msg is valid - // PubSub.publishSync(msg, data) - PubSub.publish(msg, data) -} +export const send = (msg, data = {}) => PubSub.publish(msg, data) +export const closePreviewer = (type = '') => send(EVENT.PREVIEW_CLOSE, { type }) -export const closePreviewer = (type = '') => { - dispatchEvent(EVENT.PREVIEW_CLOSE, { type }) -} +export const errRescue = ({ type, operation, details, path }) => + send(EVENT.ERR_RESCUE, { type, data: { operation, details, path } }) /* eslint-disable */ export function debounce(func, wait, immediate) { diff --git a/utils/graphql_helper.js b/utils/graphql_helper.js index 12cf06f..b3350d4 100644 --- a/utils/graphql_helper.js +++ b/utils/graphql_helper.js @@ -1,7 +1,7 @@ import R from 'ramda' import { request, GraphQLClient } from 'graphql-request' -import { GRAPHQL_ENDPOINT, PAGE_SIZE } from '../config' +import { GRAPHQL_ENDPOINT, PAGE_SIZE } from '@config' import { nilOrEmpty } from './validator' export const asyncRes = R.curry((key, obj) => R.and(obj[key], R.has(key, obj))) diff --git a/utils/index.js b/utils/index.js index 8c7fbe5..a9be0e7 100644 --- a/utils/index.js +++ b/utils/index.js @@ -2,24 +2,16 @@ * constants used cross the site */ -export { - EVENT, - ERR, - TYPE, - ROUTE, - THREAD, - NON_FILL_COMMUNITY, - C11N, -} from './constants' +export { default as asyncSuit } from './async_suit' -export { makeDebugger } from './debug' +export { buildLog } from './logger' export { default as uid } from './uid' /* * utils functiosn */ export { - dispatchEvent, + send, mapKeys, mapKey, mapValue, @@ -75,6 +67,7 @@ export { } from './route_helper' export { + connectStore, storePlug, markStates, meteorState, @@ -84,14 +77,7 @@ export { updateEditing, } from './mobx_helper' -export { - pageGoTop, - scrollIntoEle, - holdPage, - unholdPage, - focusDoraemonBar, - hideDoraemonBarRecover, -} from './dom_operator' +export { pageGoTop, scrollIntoEle, holdPage, unholdPage } from './dom_operator' /* * theme related diff --git a/utils/debug.js b/utils/logger.js similarity index 84% rename from utils/debug.js rename to utils/logger.js index a896e8c..05a19db 100644 --- a/utils/debug.js +++ b/utils/logger.js @@ -21,7 +21,7 @@ if ( } catch (e) { /* eslint-disable no-console */ console.error('Mastani could not enable debug.') - console.error(e) + /* console.error(e) */ /* eslint-enable no-console */ } @@ -33,13 +33,13 @@ if ( * Create a namespaced debug function. * @param {String} namespace Usually a component name. * @example - * import { makeDebugger } from 'src/lib' - * const debug = makeDebugger('namespace') + * import { buildLog } from 'src/lib' + * const log = buildLog('namespace') * * debug('Some message') * @returns {Function} */ -export const makeDebugger = namespace => _debug(`${namespace}`) +export const buildLog = namespace => _debug(`${namespace}`) /** * Default debugger, simple log. @@ -47,4 +47,4 @@ export const makeDebugger = namespace => _debug(`${namespace}`) * import { debug } from 'src/lib' * debug('Some message') */ -export const debug = makeDebugger('log') +export const log = buildLog('log') diff --git a/utils/mobx_helper.js b/utils/mobx_helper.js index 3435219..253287b 100644 --- a/utils/mobx_helper.js +++ b/utils/mobx_helper.js @@ -1,8 +1,50 @@ -import { inject, observer } from 'mobx-react' +import { inject } from 'mobx-react' +import { observer } from 'mobx-react-lite' import R from 'ramda' import { isObject } from './validator' +/* + * select sub store from root store + * by design, one container should only access it's own store + * + * see: https://github.com/mobxjs/mobx-react Customizing inject + * + * 从根状态树中选出子状态树 + * 一个容器组件只能连接到一个和它相关的子状态树 + * + */ +const storeFilter = R.curry((selectedStore, props) => ({ + [selectedStore]: R.path(['store', selectedStore], props), +})) + +/* + * inject sub-store to container + * e.g: connectStore(HelloWorldContainer) + will make HelloWorldContainer connect to 'helloWorld' sub-store + * + * 将传入的 container 链接到相对应的子状态树 + * 比如: onnectStore(HelloWorldContainer) + * 会将 HelloWorldContainer 链接到 'helloWorld' 的子状态树 + * + * NOTE: container should be naming as XxxContainer (end with Container) + * 注意: 容器组件的命名需遵守 XxxContainer 的约定规则 (以 Container 结尾) + * + */ +export const connectStore = (container, store) => { + let subStoreName = '' + // console.log('container displayName: ', container.displayName) + if (store) { + subStoreName = store + } else { + // const cname = R.head(R.split('Container', container.name)) + const cname = R.head(R.split('Container', container.displayName)) + subStoreName = R.toLower(R.head(cname)) + cname.slice(1) + } + + return inject(storeFilter(subStoreName))(observer(container)) +} + export const storePlug = R.curry((selectedStore, props) => ({ [selectedStore]: R.path(['store', selectedStore], props), })) @@ -29,7 +71,7 @@ export const $solver = R.curry((dataResolver, errResolver, data) => { export const markStates = (sobj, self) => { if (!isObject(sobj)) { - throw new Error('markState get invalid object, exepect a object') + throw new Error('mark get invalid object, exepect a object') } const selfKeys = R.keys(self) R.forEachObjIndexed((val, key) => { @@ -51,13 +93,13 @@ export const meteorState = (store, state, secs, statusMsg = '') => { return false } - store.markState({ + store.mark({ [state]: true, statusMsg, }) setTimeout(() => { - store.markState({ + store.mark({ [state]: false, statusMsg: '', }) diff --git a/utils/network/sr71_simple.js b/utils/network/sr71_simple.js deleted file mode 100644 index 9cf1868..0000000 --- a/utils/network/sr71_simple.js +++ /dev/null @@ -1,70 +0,0 @@ -/* cool version */ - -import { Subject } from 'rxjs/Subject' - -import 'rxjs/add/observable/of' -/* import 'rxjs/add/observable/fromPromise' */ -import 'rxjs/add/operator/debounceTime' -import 'rxjs/add/operator/do' -import 'rxjs/add/operator/switchMap' -import 'rxjs/add/operator/merge' -import 'rxjs/add/operator/timeoutWith' - -import { TimoutObservable } from './handler' -import { TIMEOUT_THRESHOLD } from './setup' - -import { queryPromise, mutatePromise, restGetPromise } from './index' - -// import network from './index' -const getInput$ = new Subject() -const queryInput$ = new Subject() -const mutateInput$ = new Subject() -const stop$ = new Subject() - -const query$ = queryInput$ - .debounceTime(300) - .switchMap(q => - queryPromise(q).timeoutWith(TIMEOUT_THRESHOLD, TimoutObservable) - ) - -const mutate$ = mutateInput$ - .debounceTime(300) - .switchMap(q => - mutatePromise(q).timeoutWith(TIMEOUT_THRESHOLD, TimoutObservable) - ) - -const restGet$ = getInput$.debounceTime(300).switchMap(q => - restGetPromise(q) - .timeoutWith(TIMEOUT_THRESHOLD, TimoutObservable) - .takeUntil(stop$) -) - -const data$ = query$.merge(restGet$, mutate$) - -/* -* those are functions to handle the query/mutate/restGet ... -*/ - -const stop = () => stop$.next() - -const restGet = url => getInput$.next(url) - -const query = (query, variables = {}) => queryInput$.next({ query, variables }) - -const mutate = (mutation, variables) => - mutateInput$.next({ mutation, variables }) - -const data = () => data$ - -/* -* export those functions -*/ -const sr71$ = { - stop, - restGet, - query, - mutate, - data, -} - -export default sr71$ diff --git a/utils/scripts/component_exists.js b/utils/scripts/component_exists.js index 7783522..ce8df22 100644 --- a/utils/scripts/component_exists.js +++ b/utils/scripts/component_exists.js @@ -6,6 +6,7 @@ const fs = require('fs') const path = require('path') + const appComponents = fs.readdirSync(path.join(__dirname, '../../components')) const appPages = fs.readdirSync(path.join(__dirname, '../../pages')) const components = appComponents.concat(appPages) diff --git a/utils/scripts/generators/component/class.js.hbs b/utils/scripts/generators/component/class.js.hbs index 95ad3ff..3d3f5f3 100644 --- a/utils/scripts/generators/component/class.js.hbs +++ b/utils/scripts/generators/component/class.js.hbs @@ -5,7 +5,7 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' {{#if wantStyle}} import { Wrapper } from './styles' @@ -15,16 +15,18 @@ import { FormattedMessage } from 'react-intl' import messages from './messages' {{/if}} -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' + +/* eslint-disable-next-line */ +const log = buildLog('c:{{ properCase name }}:index') -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:{{ properCase name }}:index') -/* eslint-enable no-unused-vars */ class {{ properCase name }} extends React.PureComponent { - componentDidMount() {} + constructor(props) { + super(props) + } - componentWillUnmount() {} + // componentWillUnmount() {} render() { return ( diff --git a/utils/scripts/generators/component/loadable.js.hbs b/utils/scripts/generators/component/loadable.js.hbs deleted file mode 100644 index 889bbf6..0000000 --- a/utils/scripts/generators/component/loadable.js.hbs +++ /dev/null @@ -1,12 +0,0 @@ -/** - * - * Asynchronously loads the component for {{ properCase name }} - * - */ - -import Loadable from 'react-loadable'; - -export default Loadable({ - loader: () => import('./index'), - loading: () => null, -}); diff --git a/utils/scripts/generators/component/stateless.js.hbs b/utils/scripts/generators/component/stateless.js.hbs index 93dcc49..130d318 100644 --- a/utils/scripts/generators/component/stateless.js.hbs +++ b/utils/scripts/generators/component/stateless.js.hbs @@ -5,7 +5,7 @@ */ import React from 'react' -import PropTypes from 'prop-types' +import T from 'prop-types' {{#if wantStyle}} import { Wrapper } from './styles' @@ -15,11 +15,11 @@ import { FormattedMessage as I18n } from 'react-intl' import lang from './lang' {{/if}} -import { makeDebugger } from '../../utils' +import { buildLog } from '@utils' + +/* eslint-disable-next-line */ +const log = buildLog('c:{{ properCase name }}:index') -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('c:{{ properCase name }}:index') -/* eslint-enable no-unused-vars */ const {{ properCase name }} = (props) => { return ( diff --git a/utils/scripts/generators/component/styles.js.hbs b/utils/scripts/generators/component/styles.js.hbs index fd21fe5..6d919e5 100644 --- a/utils/scripts/generators/component/styles.js.hbs +++ b/utils/scripts/generators/component/styles.js.hbs @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../Img' -// import { theme } from '../../../utils' +// import Img from '@Img' +// import { theme } from '@utils' export const Wrapper = styled.div`` export const Title = styled.div`` diff --git a/utils/scripts/generators/container/class.js.hbs b/utils/scripts/generators/container/class.js.hbs index 95bcc26..883bc32 100644 --- a/utils/scripts/generators/container/class.js.hbs +++ b/utils/scripts/generators/container/class.js.hbs @@ -5,28 +5,30 @@ */ import React from 'react' -import { inject, observer } from 'mobx-react' {{#if wantMessages}} import { FormattedMessage } from 'react-intl' import messages from './messages' {{/if}} +import { connectStore, buildLog } from '@utils' + // import { } from './styles' +import * as logic from './logic' -import { makeDebugger, storePlug } from '../../utils' +/* eslint-disable-next-line */ +const log = buildLog('C:{{ properCase name }}') -import * as logic from './logic' -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('C:{{ properCase name }}') -/* eslint-enable no-unused-vars */ -// NOTE: add me to ../containers/index class {{ properCase name }}Container extends React.Component { componentDidMount() { const {{preCurly ""}} {{ camelCase name}} {{afterCurly ""}} = this.props logic.init({{ camelCase name }}) } + componentWillUnmount() { + logic.uninit() + } + render() { return (
@@ -40,4 +42,4 @@ class {{ properCase name }}Container extends React.Component { } } -export default inject(storePlug('{{ camelCase name }}'))(observer({{ properCase name }}Container)) +export default connectStore({{ properCase name }}Container) diff --git a/utils/scripts/generators/container/loadable.js.hbs b/utils/scripts/generators/container/loadable.js.hbs deleted file mode 100644 index 889bbf6..0000000 --- a/utils/scripts/generators/container/loadable.js.hbs +++ /dev/null @@ -1,12 +0,0 @@ -/** - * - * Asynchronously loads the component for {{ properCase name }} - * - */ - -import Loadable from 'react-loadable'; - -export default Loadable({ - loader: () => import('./index'), - loading: () => null, -}); diff --git a/utils/scripts/generators/container/logic.js.hbs b/utils/scripts/generators/container/logic.js.hbs index f0ee20f..9ea306b 100644 --- a/utils/scripts/generators/container/logic.js.hbs +++ b/utils/scripts/generators/container/logic.js.hbs @@ -1,20 +1,21 @@ // import R from 'ramda' -import { makeDebugger, $solver, asyncErr, ERR } from '../../utils' -import SR71 from '../../utils/network/sr71' +import { ERR } from '@constant' +import { buildLog, $solver, asyncErr, errRescue } from '@utils' +import SR71 from '@utils/async/sr71' // import S from './schema' const sr71$ = new SR71() let sub$ = null +let store = null -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('L:{{ properCase name }}') -/* eslint-enable no-unused-vars */ +/* eslint-disable-next-line */ +const log = buildLog('L:{{ properCase name }}') -let store = null +export const someMethod = () => {} -export function someMethod() {} +// const const cancleLoading = () => {} // ############################### // Data & Error handlers @@ -23,30 +24,39 @@ export function someMethod() {} const DataSolver = [] const ErrSolver = [ { - match: asyncErr(ERR.CRAPHQL), - action: ({ details }) => { - debug('ERR.CRAPHQL -->', details) + match: asyncErr(ERR.GRAPHQL), + action: () => { + // cancleLoading() }, }, { match: asyncErr(ERR.TIMEOUT), action: ({ details }) => { - debug('ERR.TIMEOUT -->', details) + // cancleLoading() + errRescue({ type: ERR.TIMEOUT, details, path: '{{ properCase name }}' }) }, }, { match: asyncErr(ERR.NETWORK), - action: ({ details }) => { - debug('ERR.NETWORK -->', details) + action: () => { + // cancleLoading() + errRescue({ type: ERR.NETWORK, path: '{{ properCase name }}' }) }, }, ] -export function init(_store) { - if (store) return false +export const init = (_store) => { store = _store - debug(store) - if (sub$) sub$.unsubscribe() + log(store) + if (sub$) return false sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver)) } + +export const uninit = () => { + if (!sub$) return false + log('===== do uninit') + sr71$.stop() + sub$.unsubscribe() + sub$ = null +} diff --git a/utils/scripts/generators/container/store.js.hbs b/utils/scripts/generators/container/store.js.hbs index fbe3d6c..ee9211e 100644 --- a/utils/scripts/generators/container/store.js.hbs +++ b/utils/scripts/generators/container/store.js.hbs @@ -6,12 +6,12 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:{{ properCase name }}') -/* eslint-enable no-unused-vars */ +import { markStates, buildLog } from '@utils' +/* eslint-disable-next-line */ +const log = buildLog('S:{{ properCase name }}') -// NOTE: add me to ../../stores/index && ../../stores/RootStore/index + +// NOTE: add me to stores/index && stores/RootStore/index const {{ properCase name }} = t .model('{{ properCase name }}', {}) .views(self => ({ @@ -20,7 +20,7 @@ const {{ properCase name }} = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/utils/scripts/generators/container/styles.js.hbs b/utils/scripts/generators/container/styles.js.hbs index a7065a7..bfc7940 100644 --- a/utils/scripts/generators/container/styles.js.hbs +++ b/utils/scripts/generators/container/styles.js.hbs @@ -1,7 +1,7 @@ import styled from 'styled-components' -// import Img from '../../../components/Img' -// import { theme } from '../../../utils' +// import Img from '@components/Img' +// import { theme } from '@utils' export const Wrapper = styled.div`` export const Title = styled.div`` diff --git a/utils/scripts/generators/store/index.js b/utils/scripts/generators/store/index.js index ff98914..7440a41 100644 --- a/utils/scripts/generators/store/index.js +++ b/utils/scripts/generators/store/index.js @@ -31,13 +31,13 @@ module.exports = { const actions = [ { type: 'add', - path: '../../../stores/{{properCase name}}/index.js', + path: '../stores/{{properCase name}}/index.js', templateFile: './store/store.js.hbs', abortOnFail: true, }, { type: 'add', - path: '../../../stores/{{properCase name}}/test/index.test.js', + path: '../stores/{{properCase name}}/test/index.test.js', templateFile: './store/store.test.js.hbs', abortOnFail: true, }, diff --git a/utils/scripts/generators/store/store.js.hbs b/utils/scripts/generators/store/store.js.hbs index 87ad9eb..26dec7e 100644 --- a/utils/scripts/generators/store/store.js.hbs +++ b/utils/scripts/generators/store/store.js.hbs @@ -6,10 +6,10 @@ import { types as t, getParent } from 'mobx-state-tree' // import R from 'ramda' -import { markStates, makeDebugger } from '../../utils' -/* eslint-disable no-unused-vars */ -const debug = makeDebugger('S:{{ properCase name }}') -/* eslint-enable no-unused-vars */ +import { markStates, buildLog } from '@utils' +/* eslint-disable-next-line */ +const log = buildLog('S:{{ properCase name }}') + const {{ properCase name }} = t .model('{{ properCase name }}', {}) @@ -19,7 +19,7 @@ const {{ properCase name }} = t }, })) .actions(self => ({ - markState(sobj) { + mark(sobj) { markStates(sobj, self) }, })) diff --git a/utils/ssr_helper.js b/utils/ssr_helper.js index a547ce3..a78ac28 100644 --- a/utils/ssr_helper.js +++ b/utils/ssr_helper.js @@ -1,6 +1,6 @@ // import R from 'ramda' -import { P } from '../containers/schemas' -import { ROUTE } from './constants' +import { P } from '@schemas' +import { ROUTE } from '@constant' export const ssrPagedSchema = (subpath, opt = {}) => { switch (subpath) { diff --git a/yarn.lock b/yarn.lock index d07bcea..ec7050f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,20 +2,12 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" +"@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.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.0.0-beta.35": - version "7.0.0-beta.36" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.36.tgz#2349d7ec04b3a06945ae173280ef8579b63728e4" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - "@babel/core@7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/@babel/core/-/core-7.0.0.tgz#0cb0c0fd2e78a0a2bec97698f549ae9ce0b99515" @@ -36,31 +28,31 @@ source-map "^0.5.0" "@babel/core@^7.1.6": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.2.2" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.2.2" - "@babel/types" "^7.2.2" + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" - lodash "^4.17.10" + lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.2.2": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc" +"@babel/generator@^7.0.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" dependencies: - "@babel/types" "^7.2.2" + "@babel/types" "^7.5.5" jsesc "^2.5.1" - lodash "^4.17.10" + lodash "^4.17.13" source-map "^0.5.0" trim-right "^1.0.1" @@ -77,38 +69,39 @@ "@babel/helper-explode-assignable-expression" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-builder-react-jsx@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.3.0" esutils "^2.0.0" -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.2.2": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.2.2.tgz#aac79552e41c94716a804d371e943f20171df0c5" +"@babel/helper-create-class-features-plugin@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" + "@babel/types" "^7.5.5" + lodash "^4.17.13" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -131,41 +124,34 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" +"@babel/helper-member-expression-to-functions@^7.0.0", "@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.5.5" -"@babel/helper-module-imports@^7.0.0": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.40": version "7.0.0" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-imports@^7.0.0-beta.40": - version "7.0.0-beta.46" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.46.tgz#8bd2e1fcfae883d28149a350e31ce606aa24eda6" - dependencies: - "@babel/types" "7.0.0-beta.46" - lodash "^4.2.0" - -"@babel/helper-module-transforms@^7.1.0": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.2.2" - "@babel/types" "^7.2.2" - lodash "^4.17.10" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" + lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -177,11 +163,11 @@ version "7.0.0" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" dependencies: - lodash "^4.17.10" + lodash "^4.17.13" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -193,14 +179,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.0.0", "@babel/helper-replace-supers@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" +"@babel/helper-replace-supers@^7.0.0", "@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -209,11 +195,11 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.4" "@babel/helper-wrap-function@^7.1.0": version "7.2.0" @@ -224,25 +210,25 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.0.0", "@babel/helpers@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" +"@babel/helpers@^7.0.0", "@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.2.0" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" "@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.2.2": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.2.2.tgz#37ebdbc88a2e1ebc6c8dd3d35ea9436e3e39e477" +"@babel/parser@^7.0.0", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" "@babel/plugin-proposal-async-generator-functions@^7.0.0": version "7.2.0" @@ -264,10 +250,10 @@ "@babel/plugin-syntax-class-properties" "^7.0.0" "@babel/plugin-proposal-decorators@^7.1.0": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.2.2.tgz#e7ce762732760542a5268a49bd19251f06dccd08" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0" dependencies: - "@babel/helper-create-class-features-plugin" "^7.2.2" + "@babel/helper-create-class-features-plugin" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-decorators" "^7.2.0" @@ -286,8 +272,8 @@ "@babel/plugin-syntax-object-rest-spread" "^7.0.0" "@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8" + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -300,12 +286,12 @@ "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-proposal-unicode-property-regex@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" "@babel/plugin-syntax-async-generators@^7.0.0", "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -362,8 +348,8 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-async-to-generator@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -376,23 +362,23 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-block-scoping@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" dependencies: "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" + lodash "^4.17.13" "@babel/plugin-transform-classes@^7.0.0": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" + "@babel/helper-define-map" "^7.5.5" "@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.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.0.0": @@ -402,22 +388,22 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-dotall-regex@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" "@babel/plugin-transform-duplicate-keys@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -429,14 +415,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-for-of@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-function-name@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -448,26 +434,29 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-amd@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" 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.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" dependencies: - "@babel/helper-module-transforms" "^7.1.0" + "@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.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" dependencies: - "@babel/helper-hoist-variables" "^7.0.0" + "@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.0.0": version "7.2.0" @@ -477,23 +466,23 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-object-super@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-replace-supers" "^7.5.5" "@babel/plugin-transform-parameters@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" dependencies: - "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-call-delegate" "^7.4.4" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -511,25 +500,25 @@ "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz#ca36b6561c4d3b45524f8efb6f0fbc9a0d1d622f" + version "7.3.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" dependencies: - "@babel/helper-builder-react-jsx" "^7.0.0" + "@babel/helper-builder-react-jsx" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-regenerator@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + version "7.4.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" dependencies: - regenerator-transform "^0.13.3" + regenerator-transform "^0.14.0" "@babel/plugin-transform-runtime@7.0.0": version "7.0.0" @@ -559,8 +548,8 @@ "@babel/helper-regex" "^7.0.0" "@babel/plugin-transform-template-literals@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -572,19 +561,12 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-unicode-regex@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/polyfill@^7.0.0-beta.51": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.0.0.tgz#c8ff65c9ec3be6a1ba10113ebd40e8750fb90bff" - dependencies: - core-js "^2.5.7" - regenerator-runtime "^0.11.1" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" "@babel/preset-env@7.0.0": version "7.0.0" @@ -655,11 +637,11 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.5": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f" +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.5", "@babel/runtime@^7.4.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" dependencies: - regenerator-runtime "^0.12.0" + regenerator-runtime "^0.13.2" "@babel/template@7.0.0": version "7.0.0" @@ -669,163 +651,149 @@ "@babel/parser" "^7.0.0" "@babel/types" "^7.0.0" -"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907" +"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.2.2" - "@babel/types" "^7.2.2" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.2.tgz#961039de1f9bcb946d807efe2dba9c92e859d188" +"@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.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.2.2" - "@babel/types" "^7.2.2" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.10" + lodash "^4.17.13" -"@babel/types@7.0.0-beta.46": - version "7.0.0-beta.46" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.46.tgz#eb84399a699af9fcb244440cce78e1acbeb40e0c" +"@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.npmjs.org/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" dependencies: esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" - -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e" - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" + lodash "^4.17.13" to-fast-properties "^2.0.0" "@commitlint/cli@^7.0.0": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-7.1.2.tgz#9ad1b4703679e18e3b1972c4abf0441255219e78" + version "7.6.1" + resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-7.6.1.tgz#a93cf995082831999937f6d5ec1a582c8fc0393a" dependencies: - "@commitlint/format" "^7.1.2" - "@commitlint/lint" "^7.1.2" - "@commitlint/load" "^7.1.2" - "@commitlint/read" "^7.1.2" + "@commitlint/format" "^7.6.1" + "@commitlint/lint" "^7.6.0" + "@commitlint/load" "^7.6.1" + "@commitlint/read" "^7.6.0" babel-polyfill "6.26.0" chalk "2.3.1" - get-stdin "5.0.1" - lodash.merge "4.6.1" - lodash.pick "4.4.0" + get-stdin "7.0.0" + lodash "4.17.11" meow "5.0.0" + resolve-from "5.0.0" + resolve-global "1.0.0" "@commitlint/config-conventional@^7.0.1": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-7.1.2.tgz#5b5e45924c9abd8f9a8d83eb1f66e24e5f66916f" + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-7.6.0.tgz#f3dc66bf39e3b627fdd6f5ac3d0510dd0dd38f94" -"@commitlint/ensure@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-7.1.2.tgz#30d74bf0062ac6d917037f20dbf27bb63a4ae7c1" +"@commitlint/ensure@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-7.6.0.tgz#e873ff6786a3b9504e88a4debed41df29cd8ac36" dependencies: - lodash.camelcase "4.3.0" - lodash.kebabcase "4.1.1" - lodash.snakecase "4.1.1" - lodash.startcase "4.4.0" - lodash.upperfirst "4.3.1" + lodash "4.17.11" -"@commitlint/execute-rule@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-7.1.2.tgz#b504e800c5f7c0fbfa24a261b04c549aa2726254" +"@commitlint/execute-rule@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-7.6.0.tgz#60c1c34b5f2fca6c6cbca019a9c7d81c2fab1e4a" dependencies: babel-runtime "6.26.0" -"@commitlint/format@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/format/-/format-7.1.2.tgz#0f601d572d97d7cca59ef6f3da0cde0d10de3de2" +"@commitlint/format@^7.6.1": + version "7.6.1" + resolved "https://registry.npmjs.org/@commitlint/format/-/format-7.6.1.tgz#106750de50fab7d153eed80e7577c768bb9a3a1b" dependencies: babel-runtime "^6.23.0" chalk "^2.0.1" -"@commitlint/is-ignored@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-7.1.2.tgz#1168ef48883e86446dd2930f23300ec0e038dddc" +"@commitlint/is-ignored@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-7.6.0.tgz#d069f25741dcf859b324e5f709835af3aac9cf45" dependencies: - semver "5.5.0" + semver "6.0.0" -"@commitlint/lint@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-7.1.2.tgz#7166a9ba71e75c2f981f531a2386739ef28b21a3" +"@commitlint/lint@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-7.6.0.tgz#a6da320026b937aa9bf971e060e471edd6b088ec" dependencies: - "@commitlint/is-ignored" "^7.1.2" - "@commitlint/parse" "^7.1.2" - "@commitlint/rules" "^7.1.2" + "@commitlint/is-ignored" "^7.6.0" + "@commitlint/parse" "^7.6.0" + "@commitlint/rules" "^7.6.0" babel-runtime "^6.23.0" - lodash.topairs "4.3.0" + lodash "4.17.11" -"@commitlint/load@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/load/-/load-7.1.2.tgz#91fc756f63477d19299cd1ed79be2d36aaa8c33d" +"@commitlint/load@^7.6.1": + version "7.6.2" + resolved "https://registry.npmjs.org/@commitlint/load/-/load-7.6.2.tgz#b5ed8163fa3117d60faf70a4e677b2017bbc71bb" dependencies: - "@commitlint/execute-rule" "^7.1.2" - "@commitlint/resolve-extends" "^7.1.2" + "@commitlint/execute-rule" "^7.6.0" + "@commitlint/resolve-extends" "^7.6.0" babel-runtime "^6.23.0" - cosmiconfig "^4.0.0" - lodash.merge "4.6.1" - lodash.mergewith "4.6.1" - lodash.pick "4.4.0" - lodash.topairs "4.3.0" - resolve-from "4.0.0" - -"@commitlint/message@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/message/-/message-7.1.2.tgz#b8e7ed3914896f8490b5897c4f6b8923105b55fd" + cosmiconfig "^5.2.0" + lodash "4.17.11" + resolve-from "^5.0.0" -"@commitlint/parse@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-7.1.2.tgz#d63b246cebd5a2cf326b0356421f9ec5f227a2d4" +"@commitlint/message@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/message/-/message-7.6.0.tgz#899b6b411945dd091d261408b6e994043967bc06" + +"@commitlint/parse@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-7.6.0.tgz#e7b8d6dc145e78cf56940bbf405ca6fac3085196" dependencies: conventional-changelog-angular "^1.3.3" conventional-commits-parser "^2.1.0" + lodash "^4.17.11" -"@commitlint/read@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/read/-/read-7.1.2.tgz#6a1fcb192e54e311eee280e5070627981d8d7bf3" +"@commitlint/read@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/read/-/read-7.6.0.tgz#e55863354b436683daa2081de7ec2189573bc306" dependencies: - "@commitlint/top-level" "^7.1.2" + "@commitlint/top-level" "^7.6.0" "@marionebl/sander" "^0.6.0" babel-runtime "^6.23.0" git-raw-commits "^1.3.0" -"@commitlint/resolve-extends@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-7.1.2.tgz#886f589f1c2ce87c42f2786696b68fac7e356978" +"@commitlint/resolve-extends@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-7.6.0.tgz#0680b76eeb0e41f728c2f38645473a0956299edb" dependencies: babel-runtime "6.26.0" - lodash.merge "4.6.1" - lodash.omit "4.5.0" - require-uncached "^1.0.3" - resolve-from "^4.0.0" - resolve-global "^0.1.0" - -"@commitlint/rules@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-7.1.2.tgz#ba241dc3dbb6c05ce4a186a7cdf85c170345778c" - dependencies: - "@commitlint/ensure" "^7.1.2" - "@commitlint/message" "^7.1.2" - "@commitlint/to-lines" "^7.1.2" + import-fresh "^3.0.0" + lodash "4.17.11" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-7.6.0.tgz#f9a833c1eab8144fd8f545a71408b39e51acb64e" + dependencies: + "@commitlint/ensure" "^7.6.0" + "@commitlint/message" "^7.6.0" + "@commitlint/to-lines" "^7.6.0" babel-runtime "^6.23.0" -"@commitlint/to-lines@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-7.1.2.tgz#2277347e50eac2a8d38ab6ab2c70f01b84c5f115" +"@commitlint/to-lines@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-7.6.0.tgz#5ed4dbf39db0ceff96dbb661b9ce048ed3db7a4b" -"@commitlint/top-level@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-7.1.2.tgz#58f78043546bce0c1bfba36291bc4a812b6426b3" +"@commitlint/top-level@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-7.6.0.tgz#0ed88078ac585c93ee314ff3b7f8c20143c57652" dependencies: find-up "^2.1.0" @@ -838,9 +806,9 @@ date-fns "^1.27.2" figures "^1.7.0" -"@cypress/xvfb@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz#6319afdcdcff7d1505daeeaa84484d0596189860" +"@cypress/xvfb@1.2.4": + version "1.2.4" + resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" dependencies: debug "^3.1.0" lodash.once "^4.1.1" @@ -855,6 +823,23 @@ version "0.6.6" resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz#004b98298d04c7ca3b4f50ca2035d4f60d2eed1b" +"@groupher/eslint-config-web@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@groupher/eslint-config-web/-/eslint-config-web-1.2.0.tgz#de628ca8d7a185f0e4140f343776ace277bcde3c" + dependencies: + babel-eslint "^10.0.2" + babel-plugin-module-resolver "^3.2.0" + eslint-config-airbnb "^17.1.0" + eslint-config-prettier "^5.0.0" + eslint-import-resolver-babel-module "^5.1.0" + eslint-plugin-cypress "^2.2.1" + eslint-plugin-import "^2.17.3" + eslint-plugin-jsx-a11y "^6.2.1" + eslint-plugin-prettier "^3.1.0" + eslint-plugin-react "^7.13.0" + eslint-plugin-react-hooks "^1.6.0" + prettier "^1.18.2" + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -870,9 +855,9 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.stat@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz#54c5a964462be3d4d78af631363c18d6fa91ac26" +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" @@ -881,90 +866,24 @@ any-observable "^0.3.0" "@tanem/svg-injector@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@tanem/svg-injector/-/svg-injector-2.1.1.tgz#e9bc12d87d2d1adfcaa46c17c9f481c563ee9d88" + version "2.1.4" + resolved "https://registry.npmjs.org/@tanem/svg-injector/-/svg-injector-2.1.4.tgz#b804f1c78b5179365ae21061f119263acccbeb13" "@types/async@2.0.50": version "2.0.50" resolved "https://registry.npmjs.org/@types/async/-/async-2.0.50.tgz#117540e026d64e1846093abbd5adc7e27fda7bcb" -"@types/blob-util@1.3.3": - version "1.3.3" - resolved "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz#adba644ae34f88e1dd9a5864c66ad651caaf628a" - -"@types/bluebird@3.5.18": - version "3.5.18" - resolved "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6" - -"@types/chai-jquery@1.1.35": - version "1.1.35" - resolved "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz#9a8f0a39ec0851b2768a8f8c764158c2a2568d04" - dependencies: - "@types/chai" "*" - "@types/jquery" "*" - -"@types/chai@*": - version "4.1.4" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz#5ca073b330d90b4066d6ce18f60d57f2084ce8ca" - -"@types/chai@4.0.8": - version "4.0.8" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz#d27600e9ba2f371e08695d90a0fe0408d89c7be7" - -"@types/graphql@0.12.6": - version "0.12.6" - resolved "https://registry.npmjs.org/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13" - -"@types/jquery@*": - version "3.3.6" - resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.6.tgz#5932ead926307ca21e5b36808257f7c926b06565" - -"@types/jquery@3.2.16": - version "3.2.16" - resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.16.tgz#04419c404a3194350e7d3f339a90e72c88db3111" - "@types/jquery@^2.0.40": - version "2.0.48" - resolved "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.48.tgz#3e90d8cde2d29015e5583017f7830cb3975b2eef" - -"@types/lodash@4.14.87": - version "4.14.87" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz#55f92183b048c2c64402afe472f8333f4e319a6b" - -"@types/minimatch@3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - -"@types/mocha@2.2.44": - version "2.2.44" - resolved "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz#1d4a798e53f35212fd5ad4d04050620171cd5b5e" + version "2.0.53" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.53.tgz#89c53bc83d820e50c3b667ae2fdf4276df8b3aba" "@types/node@*": - version "8.5.7" - resolved "https://registry.npmjs.org/@types/node/-/node-8.5.7.tgz#9c498c35af354dcfbca3790fb2e81129e93cf0e2" - -"@types/node@^6.0.46": - version "6.0.89" - resolved "http://r.cnpmjs.org/@types/node/download/@types/node-6.0.89.tgz#154be0e6a823760cd6083aa8c48f952e2e63e0b0" - -"@types/sinon-chai@2.7.29": - version "2.7.29" - resolved "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz#4db01497e2dd1908b2bd30d1782f456353f5f723" - dependencies: - "@types/chai" "*" - "@types/sinon" "*" - -"@types/sinon@*": - version "5.0.2" - resolved "https://registry.npmjs.org/@types/sinon/-/sinon-5.0.2.tgz#7a9d64df40b26dd48d673f745addc2fdb2bda193" - -"@types/sinon@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/sinon/-/sinon-4.0.0.tgz#9a93ffa4ee1329e85166278a5ed99f81dc4c8362" + version "12.6.8" + resolved "https://registry.npmjs.org/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c" -"@types/zen-observable@0.5.3": - version "0.5.3" - resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5" +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" "@types/zen-observable@0.8.0", "@types/zen-observable@^0.8.0": version "0.8.0" @@ -1095,6 +1014,12 @@ "@webassemblyjs/wast-parser" "1.7.8" "@xtuc/long" "4.2.1" +"@wry/equality@^0.1.2": + version "0.1.9" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz#b13e18b7a8053c6858aa6c85b54911fb31e3a909" + dependencies: + tslib "^1.9.3" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1104,33 +1029,26 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" JSONStream@^1.0.4: - version "1.3.4" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz#615bb2adb0cd34c8f4c447b5f6512fa1d8f16a2e" + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^1.0.3: - version "1.0.3" - resolved "http://r.cnpmjs.org/abab/download/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" abbrev@1: - version "1.1.0" - resolved "http://r.cnpmjs.org/abbrev/download/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" - -accepts@^1.3.4: - version "1.3.4" - resolved "http://r.cnpmjs.org/accepts/download/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" - dependencies: - mime-types "~2.1.16" - negotiator "0.6.1" + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" +accepts@^1.3.4, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" + mime-types "~2.1.24" + negotiator "0.6.2" acorn-dynamic-import@^3.0.0: version "3.0.0" @@ -1138,39 +1056,28 @@ acorn-dynamic-import@^3.0.0: dependencies: acorn "^5.0.0" -acorn-globals@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" - dependencies: - acorn "^5.0.0" - -acorn-jsx@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" +acorn-globals@^4.1.0: + version "4.3.2" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" dependencies: - acorn "^5.0.3" - -acorn@^5.0.0: - version "5.1.1" - resolved "http://r.cnpmjs.org/acorn/download/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + acorn "^6.0.1" + acorn-walk "^6.0.1" -acorn@^5.0.3, acorn@^5.6.0: - version "5.7.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5" +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" -acorn@^5.1.2: - version "5.3.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" -acorn@^5.6.2, acorn@^5.7.3: +acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3: version "5.7.3" resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" -add-dom-event-listener@1.x: - version "1.0.2" - resolved "http://r.cnpmjs.org/add-dom-event-listener/download/add-dom-event-listener-1.0.2.tgz#8faed2c41008721cf111da1d30d995b85be42bed" - dependencies: - object-assign "4.x" +acorn@^6.0.1, acorn@^6.0.2: + version "6.2.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" add-dom-event-listener@^1.1.0: version "1.1.0" @@ -1178,126 +1085,77 @@ add-dom-event-listener@^1.1.0: dependencies: object-assign "4.x" -ajv-errors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59" - -ajv-keywords@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - -ajv-keywords@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" - -ajv@^4.9.1: - version "4.11.8" - resolved "http://r.cnpmjs.org/ajv/download/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.1.0: - version "5.2.3" - resolved "http://r.cnpmjs.org/ajv/download/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - json-schema-traverse "^0.3.0" - json-stable-stringify "^1.0.1" - -ajv@^5.3.0: - version "5.5.1" - resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.1.tgz#b38bb8876d9e86bee994956a04e721e88b248eb2" +airbnb-prop-types@^2.13.2: + version "2.14.0" + resolved "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.14.0.tgz#3d45cb1459f4ce78fdf1240563d1aa2315391168" dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" + array.prototype.find "^2.1.0" + function.prototype.name "^1.1.1" + has "^1.0.3" + is-regex "^1.0.4" + object-is "^1.0.1" + object.assign "^4.1.0" + object.entries "^1.1.0" + prop-types "^15.7.2" + prop-types-exact "^1.2.0" + react-is "^16.8.6" -ajv@^6.0.1: - version "6.5.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" -ajv@^6.1.0: - version "6.1.1" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e" - dependencies: - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" +ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: + version "3.4.1" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" -ajv@^6.5.3: - version "6.6.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" +ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3, ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "http://r.cnpmjs.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - amator@1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/amator/download/amator-1.0.1.tgz#0fd3663fef5f3334d088cf68a70ba74398aa0e26" + resolved "https://registry.npmjs.org/amator/-/amator-1.0.1.tgz#0fd3663fef5f3334d088cf68a70ba74398aa0e26" dependencies: bezier-easing "^2.0.3" -amdefine@>=0.0.4: - version "1.0.1" - resolved "http://r.cnpmjs.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - ansi-colors@^3.0.0: - version "3.2.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + version "3.2.4" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: version "1.4.0" - resolved "http://r.cnpmjs.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" -ansi-escapes@^3.0.0: - version "3.0.0" - resolved "http://r.cnpmjs.org/ansi-escapes/download/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" ansi-html@0.0.7: version "0.0.7" - resolved "http://r.cnpmjs.org/ansi-html/download/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" ansi-regex@^2.0.0: version "2.1.1" - resolved "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" -ansi-regex@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" ansi-styles@^2.2.1: version "2.2.1" - resolved "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.1.0, ansi-styles@^3.2.0: - version "3.2.0" - resolved "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" - -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: @@ -1362,14 +1220,7 @@ any-observable@^0.3.0: any-promise@^1.1.0: version "1.3.0" - resolved "http://r.cnpmjs.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - -anymatch@^1.3.0: - version "1.3.2" - resolved "http://r.cnpmjs.org/anymatch/download/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" anymatch@^2.0.0: version "2.0.0" @@ -1393,10 +1244,11 @@ apollo-cache@1.1.20: apollo-utilities "^1.0.25" apollo-cache@^1.1.20: - version "1.1.21" - resolved "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.21.tgz#950025e2272741ba8e5064419906e3ac4072925d" + version "1.3.2" + resolved "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.2.tgz#df4dce56240d6c95c613510d7e409f7214e6d26a" dependencies: - apollo-utilities "^1.0.26" + apollo-utilities "^1.3.2" + tslib "^1.9.3" apollo-client@2.4.5: version "2.4.5" @@ -1413,22 +1265,27 @@ apollo-client@2.4.5: "@types/async" "2.0.50" apollo-link-dedup@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.5.tgz#1c213d7ebbe48e74b016fffacd7e6a53dc309e32" + version "1.0.19" + resolved "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.19.tgz#f0f58312c80b9bf0d927a53d5cad56875c679e14" dependencies: - apollo-link "^1.0.7" + apollo-link "^1.2.12" + tslib "^1.9.3" apollo-link-error@^1.0.9: - version "1.1.0" - resolved "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.0.tgz#ef8a64411361314364db40c1d4023b987a84860f" + version "1.1.11" + resolved "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.11.tgz#7cd363179616fb90da7866cee85cb00ee45d2f3b" dependencies: - apollo-link "^1.2.2" + apollo-link "^1.2.12" + apollo-link-http-common "^0.2.14" + tslib "^1.9.3" -apollo-link-http-common@^0.2.5: - version "0.2.8" - resolved "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.8.tgz#c6deedfc2739db8b11013c3c2d2ccd657152941f" +apollo-link-http-common@^0.2.14, apollo-link-http-common@^0.2.5: + version "0.2.14" + resolved "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.14.tgz#d3a195c12e00f4e311c417f121181dcc31f7d0c8" dependencies: - apollo-link "^1.2.6" + apollo-link "^1.2.12" + ts-invariant "^0.4.0" + tslib "^1.9.3" apollo-link-http@1.5.5: version "1.5.5" @@ -1451,28 +1308,14 @@ apollo-link@1.2.3: apollo-utilities "^1.0.0" zen-observable-ts "^0.8.10" -apollo-link@^1.0.0, apollo-link@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.0.7.tgz#42cd38a7378332fc3e41a214ff6a6e5e703a556f" - dependencies: - "@types/zen-observable" "0.5.3" - apollo-utilities "^1.0.0" - zen-observable "^0.6.0" - -apollo-link@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03" - dependencies: - "@types/graphql" "0.12.6" - apollo-utilities "^1.0.0" - zen-observable-ts "^0.8.9" - -apollo-link@^1.2.3, apollo-link@^1.2.6: - version "1.2.6" - resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.6.tgz#d9b5676d79c01eb4e424b95c7171697f6ad2b8da" +apollo-link@^1.0.0, apollo-link@^1.2.12, apollo-link@^1.2.3: + version "1.2.12" + resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.12.tgz#014b514fba95f1945c38ad4c216f31bcfee68429" dependencies: - apollo-utilities "^1.0.0" - zen-observable-ts "^0.8.13" + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.19" apollo-utilities@1.0.25: version "1.0.25" @@ -1480,50 +1323,49 @@ apollo-utilities@1.0.25: dependencies: fast-json-stable-stringify "^2.0.0" -apollo-utilities@^1.0.0: - version "1.0.13" - resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.13.tgz#793c858bb42243f7254d3c2961c64a7158e51022" - -apollo-utilities@^1.0.25, apollo-utilities@^1.0.26: - version "1.0.26" - resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.26.tgz#589c66bf4d16223531351cf667a230c787def1da" +apollo-utilities@^1.0.0, apollo-utilities@^1.0.25, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9" dependencies: + "@wry/equality" "^0.1.2" fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" app-root-path@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" + version "2.2.1" + resolved "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" append-transform@^0.4.0: version "0.4.0" - resolved "http://r.cnpmjs.org/append-transform/download/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + resolved "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3: - version "1.1.2" - resolved "http://r.cnpmjs.org/aproba/download/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" - -aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" +arch@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "http://r.cnpmjs.org/are-we-there-yet/download/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + version "1.1.5" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7: - version "1.0.9" - resolved "http://r.cnpmjs.org/argparse/download/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" dependencies: sprintf-js "~1.0.2" argparse@~0.1.15: version "0.1.16" - resolved "http://r.cnpmjs.org/argparse/download/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c" + resolved "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c" dependencies: underscore "~1.7.0" underscore.string "~2.4.0" @@ -1537,7 +1379,7 @@ aria-query@^3.0.0: arr-diff@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" dependencies: arr-flatten "^1.0.1" @@ -1547,7 +1389,7 @@ arr-diff@^4.0.0: arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" arr-union@^3.1.0: version "3.1.0" @@ -1555,19 +1397,23 @@ arr-union@^3.1.0: array-differ@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/array-differ/download/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" array-each@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/array-each/download/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" array-equal@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" array-filter@~0.0.0: version "0.0.1" - resolved "http://r.cnpmjs.org/array-filter/download/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + resolved "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" array-find-index@^1.0.1: version "1.0.2" @@ -1575,7 +1421,7 @@ array-find-index@^1.0.1: array-flatten@1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" array-ify@^1.0.0: version "1.0.0" @@ -1583,81 +1429,87 @@ array-ify@^1.0.0: array-includes@^3.0.3: version "3.0.3" - resolved "http://r.cnpmjs.org/array-includes/download/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" dependencies: define-properties "^1.1.2" es-abstract "^1.7.0" array-map@~0.0.0: version "0.0.0" - resolved "http://r.cnpmjs.org/array-map/download/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + resolved "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" array-reduce@~0.0.0: version "0.0.0" - resolved "http://r.cnpmjs.org/array-reduce/download/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + resolved "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" array-slice@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/array-slice/download/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f" + version "1.1.0" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" array-tree-filter@^1.0.0: version "1.0.1" - resolved "http://r.cnpmjs.org/array-tree-filter/download/array-tree-filter-1.0.1.tgz#0a8ad1eefd38ce88858632f9cc0423d7634e4d5d" + resolved "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-1.0.1.tgz#0a8ad1eefd38ce88858632f9cc0423d7634e4d5d" array-tree-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.0.0.tgz#20fbc2d5a0de83242c0a9eb90894d4bfb7e2a69e" + version "2.1.0" + resolved "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" -array-union@^1.0.1: +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "http://r.cnpmjs.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" array-unique@^0.2.1: version "0.2.1" - resolved "http://r.cnpmjs.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" array-unique@^0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" +array.prototype.find@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" + dependencies: + define-properties "^1.1.3" + es-abstract "^1.13.0" + arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asap@~2.0.3: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" asn1.js@^4.0.0: - version "4.9.1" - resolved "http://r.cnpmjs.org/asn1.js/download/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + version "4.10.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" asn1@~0.2.3: - version "0.2.3" - resolved "http://r.cnpmjs.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + dependencies: + safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "http://r.cnpmjs.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" assert@^1.1.1: - version "1.4.1" - resolved "http://r.cnpmjs.org/assert/download/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + version "1.5.0" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" dependencies: + object-assign "^4.1.1" util "0.10.3" assign-symbols@^1.0.0: @@ -1670,51 +1522,39 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7: astral-regex@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" -async-each@^1.0.0: - version "1.0.1" - resolved "http://r.cnpmjs.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -async-validator@1.x: - version "1.8.1" - resolved "http://r.cnpmjs.org/async-validator/download/async-validator-1.8.1.tgz#6665788ca39269af770e5ee02f0e557f2438d2ca" - dependencies: - babel-runtime "6.x" - -async@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611" - dependencies: - lodash "^4.14.0" - -async@^1.4.0: - version "1.5.2" - resolved "http://r.cnpmjs.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.1.4: - version "2.5.0" - resolved "http://r.cnpmjs.org/async/download/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" - dependencies: - lodash "^4.14.0" +async-validator@~1.11.3: + version "1.11.5" + resolved "https://registry.npmjs.org/async-validator/-/async-validator-1.11.5.tgz#9d43cf49ef6bb76be5442388d19fb9a6e47597ea" -async@^2.5.0: +async@2.6.1: version "2.6.1" resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" dependencies: lodash "^4.17.10" +async@^2.1.4: + version "2.6.3" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + dependencies: + lodash "^4.17.14" + asynckit@^0.4.0: version "0.4.0" - resolved "http://r.cnpmjs.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" -atob@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" autodll-webpack-plugin@0.4.2: version "0.4.2" @@ -1731,27 +1571,21 @@ autodll-webpack-plugin@0.4.2: webpack-merge "^4.1.0" webpack-sources "^1.0.1" -autolinker@~0.15.0: - version "0.15.3" - resolved "http://r.cnpmjs.org/autolinker/download/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "http://r.cnpmjs.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" +autolinker@~0.28.0: + version "0.28.1" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" + dependencies: + gulp-header "^1.7.1" aws-sign2@~0.7.0: version "0.7.0" - resolved "http://r.cnpmjs.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.6.0" - resolved "http://r.cnpmjs.org/aws4/download/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" aws4@^1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -axobject-query@^2.0.1: +axobject-query@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" dependencies: @@ -1759,7 +1593,7 @@ axobject-query@^2.0.1: babel-code-frame@^6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -1770,8 +1604,8 @@ babel-core@7.0.0-bridge.0, babel-core@^7.0.0-bridge.0: resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.0" - resolved "http://r.cnpmjs.org/babel-core/download/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + version "6.26.3" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -1783,15 +1617,15 @@ babel-core@^6.0.0, babel-core@^6.26.0: babel-traverse "^6.26.0" babel-types "^6.26.0" babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" + convert-source-map "^1.5.1" + debug "^2.6.9" json5 "^0.5.1" lodash "^4.17.4" minimatch "^3.0.4" path-is-absolute "^1.0.1" - private "^0.1.7" + private "^0.1.8" slash "^1.0.0" - source-map "^0.5.6" + source-map "^0.5.7" babel-eslint@9.0.0: version "9.0.0" @@ -1804,9 +1638,20 @@ babel-eslint@9.0.0: eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" +babel-eslint@^10.0.2: + version "10.0.2" + resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.2.tgz#182d5ac204579ff0881684b040560fdcc1558456" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" + eslint-visitor-keys "^1.0.0" + babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.0" - resolved "http://r.cnpmjs.org/babel-generator/download/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + version "6.26.1" + resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -1814,23 +1659,16 @@ babel-generator@^6.18.0, babel-generator@^6.26.0: detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.17.4" - source-map "^0.5.6" + source-map "^0.5.7" trim-right "^1.0.1" babel-helpers@^6.24.1: version "6.24.1" - resolved "http://r.cnpmjs.org/babel-helpers/download/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^23.4.2: - version "23.4.2" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-23.4.2.tgz#f276de67798a5d68f2d6e87ff518c2f6e1609877" - dependencies: - babel-plugin-istanbul "^4.1.6" - babel-preset-jest "^23.2.0" - babel-jest@^23.6.0: version "23.6.0" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" @@ -1849,10 +1687,20 @@ babel-loader@8.0.2: babel-messages@^6.23.0: version "6.23.0" - resolved "http://r.cnpmjs.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" +babel-plugin-add-react-displayname@^0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + dependencies: + object.assign "^4.1.0" + babel-plugin-import@1.9.1: version "1.9.1" resolved "https://registry.npmjs.org/babel-plugin-import/-/babel-plugin-import-1.9.1.tgz#ceb3b37e4920cec094a075fee674fb3dddafc9c8" @@ -1861,14 +1709,14 @@ babel-plugin-import@1.9.1: "@babel/runtime" "^7.0.0" babel-plugin-inline-dotenv@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/babel-plugin-inline-dotenv/-/babel-plugin-inline-dotenv-1.1.2.tgz#d9b43f48b1471506bdc5fe571a067472f16aedf6" + version "1.3.3" + resolved "https://registry.npmjs.org/babel-plugin-inline-dotenv/-/babel-plugin-inline-dotenv-1.3.3.tgz#3e24cb330d8a46adb0e6ab96655bd55756d9d06d" dependencies: - dotenv "^4.0.0" + dotenv "^8.0.0" babel-plugin-istanbul@^4.1.6: version "4.1.6" - resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" dependencies: babel-plugin-syntax-object-rest-spread "^6.13.0" find-up "^2.1.0" @@ -1879,6 +1727,16 @@ babel-plugin-jest-hoist@^23.2.0: version "23.2.0" resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" +babel-plugin-module-resolver@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" + dependencies: + find-babel-config "^1.1.0" + glob "^7.1.2" + pkg-up "^2.0.0" + reselect "^3.0.1" + resolve "^1.4.0" + babel-plugin-ramda@1.6.3: version "1.6.3" resolved "https://registry.npmjs.org/babel-plugin-ramda/-/babel-plugin-ramda-1.6.3.tgz#7afc0b40217f1cf197f0146c2f1eb2396e6c3631" @@ -1896,7 +1754,7 @@ babel-plugin-react-intl@2.4.0: babel-plugin-react-require@3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/babel-plugin-react-require/download/babel-plugin-react-require-3.0.0.tgz#2e4e7b4496b93a654a1c80042276de4e4eeb20e3" + resolved "https://registry.npmjs.org/babel-plugin-react-require/-/babel-plugin-react-require-3.0.0.tgz#2e4e7b4496b93a654a1c80042276de4e4eeb20e3" babel-plugin-styled-components@1.8.0: version "1.8.0" @@ -1906,21 +1764,21 @@ babel-plugin-styled-components@1.8.0: lodash "^4.17.10" "babel-plugin-styled-components@>= 1": - version "1.10.0" - resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.0.tgz#ff1f42ad2cc78c21f26b62266b8f564dbc862939" + version "1.10.6" + resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.6.tgz#f8782953751115faf09a9f92431436912c34006b" dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-module-imports" "^7.0.0" babel-plugin-syntax-jsx "^6.18.0" - lodash "^4.17.10" + lodash "^4.17.11" babel-plugin-syntax-jsx@6.18.0, babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" - resolved "http://r.cnpmjs.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" - resolved "http://r.cnpmjs.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" babel-plugin-transform-inline-environment-variables@^0.4.3: version "0.4.3" @@ -1940,7 +1798,7 @@ babel-polyfill@6.23.0: babel-polyfill@6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-polyfill/download/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" dependencies: babel-runtime "^6.26.0" core-js "^2.5.0" @@ -1955,7 +1813,7 @@ babel-preset-jest@^23.2.0: babel-register@^6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-register/download/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -1965,23 +1823,16 @@ babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@6.26.0, babel-runtime@6.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: +babel-runtime@6.26.0, babel-runtime@6.x, babel-runtime@^6.11.6, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-runtime@^6.2.0, babel-runtime@^6.22.0: - version "6.23.0" - resolved "http://r.cnpmjs.org/babel-runtime/download/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-template@^6.16.0, babel-template@^6.26.0: +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-template/download/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -1989,19 +1840,9 @@ babel-template@^6.16.0, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-template@^6.24.1: - version "6.25.0" - resolved "http://r.cnpmjs.org/babel-template/download/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.25.0" - babel-types "^6.25.0" - babylon "^6.17.2" - lodash "^4.2.0" - -babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.25.0, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-traverse/download/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -2013,30 +1854,30 @@ babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.25.0, babel-tra invariant "^2.2.2" lodash "^4.17.4" -babel-types@6.26.0, babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.25.0, babel-types@^6.26.0: +babel-types@6.26.0, babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" - resolved "http://r.cnpmjs.org/babel-types/download/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.17.2, babylon@^6.18.0: +babylon@^6.18.0: version "6.18.0" - resolved "http://r.cnpmjs.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" balanced-match@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base16@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" base64-js@^1.0.2: - version "1.2.1" - resolved "http://r.cnpmjs.org/base64-js/download/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + version "1.3.0" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" base@^0.11.1: version "0.11.2" @@ -2052,110 +1893,86 @@ base@^0.11.1: batch-processor@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/batch-processor/download/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" + resolved "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "http://r.cnpmjs.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" dependencies: tweetnacl "^0.14.3" bezier-easing@^2.0.3: - version "2.0.3" - resolved "http://r.cnpmjs.org/bezier-easing/download/bezier-easing-2.0.3.tgz#cb493fddb7f8920ecca00973344ce0518885f17e" + version "2.1.0" + resolved "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz#c04dfe8b926d6ecaca1813d69ff179b7c2025d86" bfj@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" + version "6.1.2" + resolved "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" dependencies: - bluebird "^3.5.1" - check-types "^7.3.0" - hoopy "^0.1.2" - tryer "^1.0.0" + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" big.js@^3.1.3: - version "3.1.3" - resolved "http://r.cnpmjs.org/big.js/download/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + version "3.2.0" + resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" -binary-extensions@^1.0.0: - version "1.10.0" - resolved "http://r.cnpmjs.org/binary-extensions/download/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" -block-stream@*: - version "0.0.9" - resolved "http://r.cnpmjs.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" bluebird@3.5.0: version "3.5.0" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" -bluebird@^3.5.0: - version "3.5.3" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - -bluebird@^3.5.1: - version "3.5.1" - resolved "http://r.cnpmjs.org/bluebird/download/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5: + version "3.5.5" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" - resolved "http://r.cnpmjs.org/bn.js/download/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -body-parser@1.18.3: - version "1.18.3" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" dependencies: - bytes "3.0.0" + bytes "3.1.0" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" - http-errors "~1.6.3" - iconv-lite "0.4.23" + http-errors "1.7.2" + iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.5.2" - raw-body "2.3.3" - type-is "~1.6.16" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" boolbase@~1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "http://r.cnpmjs.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "http://r.cnpmjs.org/boom/download/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "http://r.cnpmjs.org/boom/download/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" brace-expansion@^1.1.7: - version "1.1.8" - resolved "http://r.cnpmjs.org/brace-expansion/download/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^1.8.2: version "1.8.5" - resolved "http://r.cnpmjs.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + resolved "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" dependencies: expand-range "^1.8.1" preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.0: +braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: @@ -2170,30 +1987,13 @@ braces@^2.3.0: split-string "^3.0.2" to-regex "^3.0.1" -braces@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - define-property "^1.0.0" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - kind-of "^6.0.2" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - brorand@^1.0.1: version "1.1.0" - resolved "http://r.cnpmjs.org/brorand/download/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" browser-process-hrtime@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + version "0.1.3" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" browser-resolve@^1.11.3: version "1.11.3" @@ -2202,41 +2002,43 @@ browser-resolve@^1.11.3: resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "http://r.cnpmjs.org/browserify-aes/download/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/browserify-cipher/download/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/browserify-des/download/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" browserify-rsa@^4.0.0: version "4.0.1" - resolved "http://r.cnpmjs.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" dependencies: bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: version "4.0.4" - resolved "http://r.cnpmjs.org/browserify-sign/download/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" @@ -2246,23 +2048,23 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "http://r.cnpmjs.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" dependencies: - pako "~0.2.0" + pako "~1.0.5" browserslist@^4.1.0: - version "4.3.6" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz#0f9d9081afc66b36f477c6bdf3813f784f42396a" + version "4.6.6" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" dependencies: - caniuse-lite "^1.0.30000921" - electron-to-chromium "^1.3.92" - node-releases "^1.1.1" + caniuse-lite "^1.0.30000984" + electron-to-chromium "^1.3.191" + node-releases "^1.1.25" bser@^2.0.0: - version "2.0.0" - resolved "http://r.cnpmjs.org/bser/download/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + version "2.1.0" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" dependencies: node-int64 "^0.4.0" @@ -2274,33 +2076,29 @@ buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" - resolved "http://r.cnpmjs.org/buffer-xor/download/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" buffer@^4.3.0: version "4.9.1" - resolved "http://r.cnpmjs.org/buffer/download/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0: - version "1.1.1" - resolved "http://r.cnpmjs.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - builtin-status-codes@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -bytes@3.0.0: - version "3.0.0" - resolved "http://r.cnpmjs.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" cacache@^10.0.4: version "10.0.4" - resolved "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + resolved "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" dependencies: bluebird "^3.5.1" chownr "^1.0.1" @@ -2317,22 +2115,22 @@ cacache@^10.0.4: y18n "^4.0.0" cacache@^11.0.2: - version "11.3.1" - resolved "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" + version "11.3.3" + resolved "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - figgy-pudding "^3.1.0" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.3" + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + 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.2" - ssri "^6.0.0" - unique-filename "^1.1.0" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" y18n "^4.0.0" cache-base@^1.0.1: @@ -2359,19 +2157,35 @@ call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + dependencies: + callsites "^2.0.0" + caller-path@^0.1.0: version "0.1.0" - resolved "http://r.cnpmjs.org/caller-path/download/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + dependencies: + caller-callsite "^2.0.0" + callsites@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" callsites@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" camel-case@^3.0.0: version "3.0.0" @@ -2395,25 +2209,27 @@ camelcase-keys@^4.0.0: map-obj "^2.0.0" quick-lru "^1.0.0" -camelcase@^1.0.2: - version "1.2.1" - resolved "http://r.cnpmjs.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - camelcase@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" camelcase@^4.1.0: version "4.1.0" - resolved "http://r.cnpmjs.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -camelize@1.0.0: +camelize@1.0.0, camelize@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" -caniuse-lite@^1.0.30000921: - version "1.0.30000921" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz#7a607c1623444b22351d834e093aedda3c42fbe8" +caniuse-lite@^1.0.30000984: + version "1.0.30000987" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000987.tgz#bc6b47217afd8226a2b1964635c6bff62cdf5738" + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + dependencies: + rsvp "^3.3.3" case-sensitive-paths-webpack-plugin@2.1.2: version "2.1.2" @@ -2421,18 +2237,11 @@ case-sensitive-paths-webpack-plugin@2.1.2: caseless@~0.12.0: version "0.12.0" - resolved "http://r.cnpmjs.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "http://r.cnpmjs.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" - resolved "http://r.cnpmjs.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -2440,7 +2249,7 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@2.3.1, chalk@^2.3.1: +chalk@2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" dependencies: @@ -2448,33 +2257,17 @@ chalk@2.3.1, chalk@^2.3.1: escape-string-regexp "^1.0.5" supports-color "^5.2.0" -chalk@2.4.1, chalk@^2.3.2, chalk@^2.4.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" +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.3.2, chalk@^2.4.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: - version "2.1.0" - resolved "http://r.cnpmjs.org/chalk/download/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chalk@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - change-case@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037" + version "3.1.0" + resolved "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e" dependencies: camel-case "^3.0.0" constant-case "^2.0.0" @@ -2507,68 +2300,67 @@ check-more-types@2.24.0: version "2.24.0" resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" -check-types@^7.3.0: - version "7.3.0" - resolved "https://registry.npmjs.org/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d" +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" cheerio@^1.0.0-rc.2: - version "1.0.0-rc.2" - resolved "http://r.cnpmjs.org/cheerio/download/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + version "1.0.0-rc.3" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" dependencies: css-select "~1.2.0" - dom-serializer "~0.1.0" + dom-serializer "~0.1.1" entities "~1.1.1" htmlparser2 "^3.9.1" lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^2.0.0, chokidar@^2.0.2: - version "2.0.4" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" +chokidar@^2.0.2: + version "2.1.6" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" dependencies: anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" + async-each "^1.0.1" + braces "^2.3.2" glob-parent "^3.1.0" - inherits "^2.0.1" + inherits "^2.0.3" is-binary-path "^1.0.0" is-glob "^4.0.0" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" + normalize-path "^3.0.0" path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" + readdirp "^2.2.1" + upath "^1.1.1" optionalDependencies: - fsevents "^1.2.2" + fsevents "^1.2.7" -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" +chownr@^1.0.1, chownr@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + version "1.0.2" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" dependencies: tslib "^1.9.0" -ci-info@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/ci-info/download/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" - ci-info@^1.5.0: - version "1.5.1" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz#17e8eb5de6f8b2b6038f0cbb714d410bfa9f3030" + version "1.6.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "http://r.cnpmjs.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" circular-json@^0.3.1: version "0.3.3" - resolved "http://r.cnpmjs.org/circular-json/download/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" class-utils@^0.3.5: version "0.3.6" @@ -2579,17 +2371,13 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@2.x, classnames@^2.2.0, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@~2.2.0: - version "2.2.5" - resolved "http://r.cnpmjs.org/classnames/download/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" - -classnames@^2.2.6: +classnames@2.x, classnames@^2.2.0, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@~2.2.0: version "2.2.6" resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" cli-cursor@^1.0.1, cli-cursor@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/cli-cursor/download/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" dependencies: restore-cursor "^1.0.1" @@ -2601,38 +2389,30 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: cli-spinners@^0.1.2: version "0.1.2" - resolved "http://r.cnpmjs.org/cli-spinners/download/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" cli-truncate@^0.2.1: version "0.2.1" - resolved "http://r.cnpmjs.org/cli-truncate/download/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" dependencies: slice-ansi "0.0.4" string-width "^1.0.1" cli-width@^2.0.0: version "2.2.0" - resolved "http://r.cnpmjs.org/cli-width/download/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cliui@^2.1.0: - version "2.1.0" - resolved "http://r.cnpmjs.org/cliui/download/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" cliui@^3.2.0: version "3.2.0" - resolved "http://r.cnpmjs.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrap-ansi "^2.0.0" cliui@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + version "4.1.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -2640,11 +2420,11 @@ cliui@^4.0.0: co@^4.6.0: version "4.6.0" - resolved "http://r.cnpmjs.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" code-point-at@^1.0.0: version "1.1.0" - resolved "http://r.cnpmjs.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" collection-visit@^1.0.0: version "1.0.0" @@ -2654,55 +2434,37 @@ collection-visit@^1.0.0: object-visit "^1.0.0" color-convert@^1.9.0: - version "1.9.0" - resolved "http://r.cnpmjs.org/color-convert/download/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" dependencies: - color-name "^1.1.1" + color-name "1.1.3" -color-name@^1.1.1: +color-name@1.1.3: version "1.1.3" - resolved "http://r.cnpmjs.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -colors@0.5.x: - version "0.5.1" - resolved "http://r.cnpmjs.org/colors/download/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" colors@^1.1.2: - version "1.1.2" - resolved "http://r.cnpmjs.org/colors/download/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@1.0.6, combined-stream@~1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" + version "1.3.3" + resolved "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "http://r.cnpmjs.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" dependencies: delayed-stream "~1.0.0" -commander@2.11.0, commander@^2.9.0: - version "2.11.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" +commander@2.15.1: + version "2.15.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" -commander@^2.11.0, commander@^2.18.0: - version "2.19.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - -commander@^2.14.1: - version "2.15.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322" +commander@^2.11.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.9.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" commander@~2.13.0: version "2.13.0" resolved "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" -commander@~2.17.1: - version "2.17.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - commitizen@^2.10.1: version "2.10.1" resolved "https://registry.npmjs.org/commitizen/-/commitizen-2.10.1.tgz#8c395def34a895f4e94952c2efc3c9eb4c3683bd" @@ -2724,15 +2486,13 @@ commitizen@^2.10.1: shelljs "0.7.6" strip-json-comments "2.0.1" -common-tags@1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" - dependencies: - babel-runtime "^6.18.0" +common-tags@1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" commondir@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" compare-func@^1.3.1: version "1.3.2" @@ -2743,31 +2503,23 @@ compare-func@^1.3.1: component-classes@1.x, component-classes@^1.2.5, component-classes@^1.2.6: version "1.2.6" - resolved "http://r.cnpmjs.org/component-classes/download/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" + resolved "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" dependencies: component-indexof "0.0.3" component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" component-indexof@0.0.3: version "0.0.3" - resolved "http://r.cnpmjs.org/component-indexof/download/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" + resolved "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" concat-map@0.0.1: version "0.0.1" - resolved "http://r.cnpmjs.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@^1.5.0: - version "1.6.0" - resolved "http://r.cnpmjs.org/concat-stream/download/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.10: +concat-stream@1.6.2, concat-stream@^1.4.10, concat-stream@^1.4.7, concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -2776,9 +2528,19 @@ concat-stream@^1.4.10: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-with-sourcemaps@*: + version "1.1.0" + resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + dependencies: + source-map "^0.6.1" + +confusing-browser-globals@^1.0.5: + version "1.0.7" + resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz#5ae852bd541a910e7ffb2dbb864a2d21a36ad29b" + consola@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/consola/-/consola-1.4.3.tgz#945e967e05430ddabd3608b37f5fa37fcfacd9dd" + version "1.4.5" + resolved "https://registry.npmjs.org/consola/-/consola-1.4.5.tgz#09732d07cb50af07332e54e0f42fafb92b962c4a" dependencies: chalk "^2.3.2" figures "^2.0.0" @@ -2787,17 +2549,17 @@ consola@^1.4.3: console-browserify@^1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/console-browserify/download/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" -consolidated-events@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/consolidated-events/-/consolidated-events-1.1.1.tgz#25395465b35e531395418b7bbecb5ecaf198d179" +"consolidated-events@^1.1.0 || ^2.0.0": + version "2.0.2" + resolved "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz#da8d8f8c2b232831413d9e190dc11669c79f4a91" constant-case@^2.0.0: version "2.0.0" @@ -2808,27 +2570,25 @@ constant-case@^2.0.0: constants-browserify@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" contains-path@^0.1.0: version "0.1.0" - resolved "http://r.cnpmjs.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -content-disposition@0.5.2: - version "0.5.2" - resolved "http://r.cnpmjs.org/content-disposition/download/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" -content-security-policy-builder@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz#8749a1d542fcbe82237281ea9f716ce68b394dd2" +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + dependencies: + safe-buffer "5.1.2" -content-type-parser@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/content-type-parser/download/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" +content-security-policy-builder@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb" content-type@~1.0.4: version "1.0.4" - resolved "http://r.cnpmjs.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" conventional-changelog-angular@^1.3.3, conventional-changelog-angular@^1.6.6: version "1.6.6" @@ -2940,8 +2700,8 @@ conventional-changelog@^1.1.0: conventional-changelog-preset-loader "^1.1.8" conventional-commit-types@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz#5db95739d6c212acbe7b6f656a11b940baa68946" + version "2.1.1" + resolved "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.1.1.tgz#352eb53f56fbc7c1a6c1ba059c2b6670c90b2a8a" conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.6: version "1.1.6" @@ -2974,21 +2734,23 @@ conventional-recommended-bump@^1.0.0: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@1.5.1, convert-source-map@^1.1.0: +convert-source-map@1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" -convert-source-map@^1.4.0, convert-source-map@^1.5.0: - version "1.5.0" - resolved "http://r.cnpmjs.org/convert-source-map/download/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + dependencies: + safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "http://r.cnpmjs.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" -cookie@0.3.1: - version "0.3.1" - resolved "http://r.cnpmjs.org/cookie/download/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" copy-concurrently@^1.0.0: version "1.0.5" @@ -3009,33 +2771,21 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: - version "2.5.0" - resolved "http://r.cnpmjs.org/core-js/download/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" - -core-js@^2.5.7: - version "2.5.7" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" +core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.7: + version "2.6.9" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" - resolved "http://r.cnpmjs.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - require-from-string "^2.0.1" - -cosmiconfig@^5.0.2: - version "5.0.6" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" +cosmiconfig@^5.0.2, cosmiconfig@^5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" dependencies: + import-fresh "^2.0.0" is-directory "^0.3.1" - js-yaml "^3.9.0" + js-yaml "^3.13.1" parse-json "^4.0.0" coveralls@3.0.2: @@ -3050,24 +2800,25 @@ coveralls@3.0.2: request "^2.85.0" create-ecdh@^4.0.0: - version "4.0.0" - resolved "http://r.cnpmjs.org/create-ecdh/download/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + version "4.0.3" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "http://r.cnpmjs.org/create-hash/download/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" dependencies: cipher-base "^1.0.1" inherits "^2.0.1" - ripemd160 "^2.0.0" + md5.js "^1.3.4" + ripemd160 "^2.0.1" sha.js "^2.4.0" create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "http://r.cnpmjs.org/create-hmac/download/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -3076,9 +2827,9 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@15.x, create-react-class@^15.5.2, create-react-class@^15.5.3, create-react-class@^15.6.0, create-react-class@^15.6.2: - version "15.6.2" - resolved "http://r.cnpmjs.org/create-react-class/download/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" +create-react-class@^15.5.2, create-react-class@^15.5.3, create-react-class@^15.6.0, create-react-class@^15.6.2: + version "15.6.3" + resolved "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" dependencies: fbjs "^0.8.9" loose-envify "^1.3.1" @@ -3092,22 +2843,22 @@ create-react-context@^0.2.2: gud "^1.0.0" cross-env@^5.0.5: - version "5.0.5" - resolved "http://r.cnpmjs.org/cross-env/download/cross-env-5.0.5.tgz#4383d364d9660873dd185b398af3bfef5efffef3" + version "5.2.0" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" dependencies: - cross-spawn "^5.1.0" + cross-spawn "^6.0.5" is-windows "^1.0.0" -cross-fetch@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.0.0.tgz#a17475449561e0f325146cea636a8619efb9b382" +cross-fetch@2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" dependencies: - node-fetch "2.0.0" - whatwg-fetch "2.0.3" + node-fetch "2.1.2" + whatwg-fetch "2.0.4" -cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@5.1.0, cross-spawn@^5.0.1: version "5.1.0" - resolved "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -3123,21 +2874,9 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cryptiles@2.x.x: - version "2.0.5" - resolved "http://r.cnpmjs.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "http://r.cnpmjs.org/cryptiles/download/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - crypto-browserify@^3.11.0: - version "3.11.1" - resolved "http://r.cnpmjs.org/crypto-browserify/download/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -3149,21 +2888,22 @@ crypto-browserify@^3.11.0: pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" + randomfill "^1.0.3" css-animation@1.x, css-animation@^1.2.5, css-animation@^1.3.2: - version "1.4.1" - resolved "http://r.cnpmjs.org/css-animation/download/css-animation-1.4.1.tgz#5b8813125de0fbbbb0bbe1b472ae84221469b7a8" + version "1.6.1" + resolved "https://registry.npmjs.org/css-animation/-/css-animation-1.6.1.tgz#162064a3b0d51f958b7ff37b3d6d4de18e17039e" dependencies: babel-runtime "6.x" component-classes "^1.2.5" css-color-keywords@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/css-color-keywords/download/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" css-select@~1.2.0: version "1.2.0" - resolved "http://r.cnpmjs.org/css-select/download/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" dependencies: boolbase "~1.0.0" css-what "2.1" @@ -3171,24 +2911,24 @@ css-select@~1.2.0: nth-check "~1.0.1" css-to-react-native@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.2.2.tgz#c077d0f7bf3e6c915a539e7325821c9dd01f9965" + version "2.3.1" + resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.1.tgz#cf0f61e0514846e2d4dc188b0886e29d8bef64a2" dependencies: + camelize "^1.0.0" css-color-keywords "^1.0.0" - fbjs "^0.8.5" postcss-value-parser "^3.3.0" css-what@2.1: - version "2.1.0" - resolved "http://r.cnpmjs.org/css-what/download/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + version "2.1.3" + resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.2" - resolved "http://r.cnpmjs.org/cssom/download/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" -"cssstyle@>= 0.2.37 < 0.3.0": - version "0.2.37" - resolved "http://r.cnpmjs.org/cssstyle/download/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" dependencies: cssom "0.3.x" @@ -3203,49 +2943,39 @@ cyclist@~0.2.2: resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" cypress@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-3.1.0.tgz#b718ba64289b887c7ab7a7f09245d871a4a409ba" + version "3.4.1" + resolved "https://registry.npmjs.org/cypress/-/cypress-3.4.1.tgz#ca2e4e9864679da686c6a6189603efd409664c30" dependencies: "@cypress/listr-verbose-renderer" "0.4.1" - "@cypress/xvfb" "1.2.3" - "@types/blob-util" "1.3.3" - "@types/bluebird" "3.5.18" - "@types/chai" "4.0.8" - "@types/chai-jquery" "1.1.35" - "@types/jquery" "3.2.16" - "@types/lodash" "4.14.87" - "@types/minimatch" "3.0.3" - "@types/mocha" "2.2.44" - "@types/sinon" "4.0.0" - "@types/sinon-chai" "2.7.29" + "@cypress/xvfb" "1.2.4" + arch "2.1.1" bluebird "3.5.0" cachedir "1.3.0" - chalk "2.4.1" + chalk "2.4.2" check-more-types "2.24.0" - commander "2.11.0" - common-tags "1.4.0" - debug "3.1.0" + commander "2.15.1" + common-tags "1.8.0" + debug "3.2.6" execa "0.10.0" executable "4.1.1" - extract-zip "1.6.6" - fs-extra "4.0.1" - getos "3.1.0" - glob "7.1.2" - is-ci "1.0.10" + extract-zip "1.6.7" + fs-extra "5.0.0" + getos "3.1.1" + is-ci "1.2.1" is-installed-globally "0.1.0" lazy-ass "1.6.0" listr "0.12.0" - lodash "4.17.10" + lodash "4.17.15" log-symbols "2.2.0" minimist "1.2.0" - progress "1.1.8" + moment "2.24.0" ramda "0.24.1" - request "2.87.0" - request-progress "0.3.1" - supports-color "5.1.0" - tmp "0.0.31" + request "2.88.0" + request-progress "3.0.0" + supports-color "5.5.0" + tmp "0.1.0" url "0.11.0" - yauzl "2.8.0" + yauzl "2.10.0" cz-conventional-changelog@2.0.0: version "2.0.0" @@ -3269,8 +2999,8 @@ cz-conventional-changelog@^2.1.0: word-wrap "^1.0.3" damerau-levenshtein@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" + version "1.0.5" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" dargs@^4.0.1: version "4.1.0" @@ -3280,7 +3010,7 @@ dargs@^4.0.1: dashdash@^1.12.0: version "1.14.1" - resolved "http://r.cnpmjs.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" @@ -3288,39 +3018,47 @@ dasherize@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308" +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + date-fns@^1.27.2: - version "1.28.5" - resolved "http://r.cnpmjs.org/date-fns/download/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf" + version "1.30.1" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" date-now@^0.1.4: version "0.1.4" - resolved "http://r.cnpmjs.org/date-now/download/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" dateformat@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" -debug@2.6.9, debug@^2.1.2, debug@^2.3.3: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" - resolved "http://r.cnpmjs.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@3.1.0, debug@^3.0.1, debug@^3.1.0: +debug@3.1.0: version "3.1.0" - resolved "http://r.cnpmjs.org/debug/download/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -debug@^2.2.0, debug@^2.6.8: - version "2.6.8" - resolved "http://r.cnpmjs.org/debug/download/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" +debug@3.2.6, debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" dependencies: - ms "2.0.0" + ms "^2.1.1" debug@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" dependencies: ms "^2.1.1" @@ -3331,9 +3069,9 @@ decamelize-keys@^1.0.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" - resolved "http://r.cnpmjs.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" decode-uri-component@^0.2.0: version "0.2.0" @@ -3355,26 +3093,21 @@ deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" -deep-extend@~0.4.0: - version "0.4.2" - resolved "http://r.cnpmjs.org/deep-extend/download/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - deep-is@~0.1.3: version "0.1.3" - resolved "http://r.cnpmjs.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" default-require-extensions@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" dependencies: strip-bom "^2.0.0" -define-properties@^1.1.2: - version "1.1.2" - resolved "http://r.cnpmjs.org/define-properties/download/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" + object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" @@ -3397,7 +3130,7 @@ define-property@^2.0.2: del@3.0.0, del@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/del/download/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + resolved "https://registry.npmjs.org/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" dependencies: globby "^6.1.0" is-path-cwd "^1.0.0" @@ -3406,9 +3139,9 @@ del@3.0.0, del@^3.0.0: pify "^3.0.0" rimraf "^2.2.8" -del@^2.0.2, del@^2.2.0: +del@^2.2.0: version "2.2.2" - resolved "http://r.cnpmjs.org/del/download/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" @@ -3420,44 +3153,52 @@ del@^2.0.2, del@^2.2.0: delayed-stream@~1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" delegates@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1, depd@~1.1.1: +depd@1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/depd/download/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" -depd@~1.1.2: +depd@~1.1.1, depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" des.js@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/des.js/download/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" desandro-matches-selector@^2.0.0: version "2.0.2" - resolved "http://r.cnpmjs.org/desandro-matches-selector/download/desandro-matches-selector-2.0.2.tgz#717beed4dc13e7d8f3762f707a6d58a6774218e1" + resolved "https://registry.npmjs.org/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz#717beed4dc13e7d8f3762f707a6d58a6774218e1" destroy@~1.0.4: version "1.0.4" - resolved "http://r.cnpmjs.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" detect-file@^0.1.0: version "0.1.0" - resolved "http://r.cnpmjs.org/detect-file/download/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" dependencies: fs-exists-sync "^0.1.0" +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + detect-indent@4.0.0, detect-indent@^4.0.0: version "4.0.0" - resolved "http://r.cnpmjs.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: repeating "^2.0.0" @@ -3470,18 +3211,18 @@ detect-newline@^2.1.0: resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" diff@^3.2.0: - version "3.3.1" - resolved "http://r.cnpmjs.org/diff/download/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + version "3.5.0" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" diffie-hellman@^5.0.0: - version "5.0.2" - resolved "http://r.cnpmjs.org/diffie-hellman/download/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.0.0: +dir-glob@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" dependencies: @@ -3490,15 +3231,15 @@ dir-glob@^2.0.0: discontinuous-range@1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/discontinuous-range/download/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" -dns-prefetch-control@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz#60ddb457774e178f1f9415f0cabb0e85b0b300b2" +dns-prefetch-control@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz#73988161841f3dcc81f47686d539a2c702c88624" doctrine@1.5.0: version "1.5.0" - resolved "http://r.cnpmjs.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: esutils "^2.0.2" isarray "^1.0.0" @@ -3509,74 +3250,68 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -dom-align@1.x: - version "1.6.5" - resolved "http://r.cnpmjs.org/dom-align/download/dom-align-1.6.5.tgz#48890ee37563dd43d3b580b75cfb79a6ac8fa004" - dom-align@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/dom-align/-/dom-align-1.8.0.tgz#c0e89b5b674c6e836cd248c52c2992135f093654" + version "1.10.1" + resolved "https://registry.npmjs.org/dom-align/-/dom-align-1.10.1.tgz#515e7469b78a69ab8ff0adb5f866d0840467a6bb" dom-closest@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/dom-closest/download/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" + resolved "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" dependencies: dom-matches ">=1.0.1" dom-matches@>=1.0.1: version "2.0.0" - resolved "http://r.cnpmjs.org/dom-matches/download/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" + resolved "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" dom-scroll-into-view@1.x, dom-scroll-into-view@^1.2.0: version "1.2.1" - resolved "http://r.cnpmjs.org/dom-scroll-into-view/download/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" + resolved "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" -dom-serializer@0, dom-serializer@~0.1.0: - version "0.1.0" - resolved "http://r.cnpmjs.org/dom-serializer/download/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" +dom-serializer@0, dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" + domelementtype "^1.3.0" + entities "^1.1.1" domain-browser@^1.1.1: - version "1.1.7" - resolved "http://r.cnpmjs.org/domain-browser/download/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.0" - resolved "http://r.cnpmjs.org/domelementtype/download/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + version "1.2.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" -domelementtype@~1.1.1: - version "1.1.3" - resolved "http://r.cnpmjs.org/domelementtype/download/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" -domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.0.tgz#81fe5df81b3f057052cde3a9fa9bf536a85b9ab0" +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + dependencies: + webidl-conversions "^4.0.2" domhandler@^2.3.0: - version "2.4.1" - resolved "http://r.cnpmjs.org/domhandler/download/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" + version "2.4.2" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" dependencies: domelementtype "1" domutils@1.5.1: version "1.5.1" - resolved "http://r.cnpmjs.org/domutils/download/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" dependencies: dom-serializer "0" domelementtype "1" domutils@^1.5.1: - version "1.6.2" - resolved "http://r.cnpmjs.org/domutils/download/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" dependencies: dom-serializer "0" domelementtype "1" -dont-sniff-mimetype@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz#5932890dc9f4e2f19e5eb02a20026e5e5efc8f58" +dont-sniff-mimetype@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2" dot-case@^2.1.0: version "2.1.1" @@ -3600,14 +3335,14 @@ dotenv@6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" -dotenv@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" - dotenv@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" +dotenv@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.0.0.tgz#ed310c165b4e8a97bb745b0a9d99c31bda566440" + dotgitignore@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/dotgitignore/-/dotgitignore-1.0.3.tgz#a442cbde7dc20dff51cdb849e4c5a64568c07923" @@ -3647,15 +3382,7 @@ draft-js-plugins-editor@2.1.1: prop-types "^15.5.8" union-class-names "^1.0.0" -draft-js@^0.10.0, draft-js@~0.10.0: - version "0.10.4" - resolved "http://r.cnpmjs.org/draft-js/download/draft-js-0.10.4.tgz#147741642097c8120d8edc232e9503e8b7fb8d35" - dependencies: - fbjs "^0.8.15" - immutable "~3.7.4" - object-assign "^4.1.0" - -draft-js@^0.10.5: +draft-js@^0.10.0, draft-js@^0.10.5, draft-js@~0.10.0: version "0.10.5" resolved "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz#bfa9beb018fe0533dbb08d6675c371a6b08fa742" dependencies: @@ -3663,13 +3390,13 @@ draft-js@^0.10.5: immutable "~3.7.4" object-assign "^4.1.0" -duplexer@^0.1.1, duplexer@~0.1.1: +duplexer@^0.1.1: version "0.1.1" - resolved "http://r.cnpmjs.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3677,36 +3404,37 @@ duplexify@^3.4.2, duplexify@^3.5.3: stream-shift "^1.0.0" ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "http://r.cnpmjs.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" dependencies: jsbn "~0.1.0" + safer-buffer "^2.1.0" ee-first@1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" ejs@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" + version "2.6.2" + resolved "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz#3a32c63d1cd16d11266cd4703b14fec4e74ab4f6" -electron-to-chromium@^1.3.92: - version "1.3.94" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.94.tgz#896dba14f6fefb431295b90543874925ee0cd46e" +electron-to-chromium@^1.3.191: + version "1.3.205" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.205.tgz#084835a5ecca0765a805acb50a0fddc23d8d530e" elegant-spinner@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" element-resize-detector@^1.1.9: - version "1.1.12" - resolved "http://r.cnpmjs.org/element-resize-detector/download/element-resize-detector-1.1.12.tgz#8b3fd6eedda17f9c00b360a0ea2df9927ae80ba2" + version "1.1.15" + resolved "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.1.15.tgz#48eba1a2eaa26969a4c998d972171128c971d8d2" dependencies: batch-processor "^1.0.0" elliptic@^6.0.0: - version "6.4.0" - resolved "http://r.cnpmjs.org/elliptic/download/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + version "6.5.0" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3718,21 +3446,17 @@ elliptic@^6.0.0: emitter-mixin@0.0.3: version "0.0.3" - resolved "http://r.cnpmjs.org/emitter-mixin/download/emitter-mixin-0.0.3.tgz#5948cb286f2e48edc3b251a7cfc1f7883396d65c" + resolved "https://registry.npmjs.org/emitter-mixin/-/emitter-mixin-0.0.3.tgz#5948cb286f2e48edc3b251a7cfc1f7883396d65c" -emoji-regex@^6.5.1: - version "6.5.1" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" +emoji-regex@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" emojis-list@^2.0.0: version "2.1.0" - resolved "http://r.cnpmjs.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/encodeurl/download/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encodeurl@~1.0.2: +encodeurl@~1.0.1, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -3761,8 +3485,8 @@ enquire.js@^2.1.1, enquire.js@^2.1.6: resolved "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "http://r.cnpmjs.org/entities/download/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + version "1.1.2" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" enzyme-adapter-react-16@1.1.1: version "1.1.1" @@ -3777,16 +3501,19 @@ enzyme-adapter-react-16@1.1.1: react-test-renderer "^16.0.0-0" enzyme-adapter-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz#d6c85756826c257a8544d362cc7a67e97ea698c7" + version "1.12.0" + resolved "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93" dependencies: - lodash "^4.17.4" - object.assign "^4.0.4" - prop-types "^15.6.0" + airbnb-prop-types "^2.13.2" + function.prototype.name "^1.1.0" + object.assign "^4.1.0" + object.fromentries "^2.0.0" + prop-types "^15.7.2" + semver "^5.6.0" enzyme-to-json@^3.3.4: - version "3.3.4" - resolved "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.3.4.tgz#67c6040e931182f183418af2eb9f4323258aa77f" + version "3.3.5" + resolved "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.3.5.tgz#f8eb82bd3d5941c9d8bc6fd9140030777d17d0af" dependencies: lodash "^4.17.4" @@ -3811,156 +3538,140 @@ enzyme@3.3.0: raf "^3.4.0" rst-selector-parser "^2.2.3" -errno@^0.1.2, errno@^0.1.3: - version "0.1.4" - resolved "http://r.cnpmjs.org/errno/download/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -errno@^0.1.4: +errno@^0.1.2, errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.1" - resolved "http://r.cnpmjs.org/error-ex/download/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" dependencies: is-arrayish "^0.2.1" error-stack-parser@^2.0.0: - version "2.0.1" - resolved "http://r.cnpmjs.org/error-stack-parser/download/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a" - dependencies: - stackframe "^1.0.3" - -es-abstract@^1.4.3, es-abstract@^1.7.0: - version "1.8.1" - resolved "http://r.cnpmjs.org/es-abstract/download/es-abstract-1.8.1.tgz#fd85a3bdfa67786ce7be7e1584678e119cd70c04" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-abstract@^1.5.1: - version "1.10.0" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + version "2.0.2" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" + stackframe "^1.0.4" -es-abstract@^1.6.1: - version "1.8.2" - resolved "http://r.cnpmjs.org/es-abstract/download/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee" +es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" dependencies: - es-to-primitive "^1.1.1" + es-to-primitive "^1.2.0" function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" + has "^1.0.3" + is-callable "^1.1.4" is-regex "^1.0.4" + object-keys "^1.0.12" -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "http://r.cnpmjs.org/es-to-primitive/download/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" dependencies: - is-callable "^1.1.1" + is-callable "^1.1.4" is-date-object "^1.0.1" - is-symbol "^1.0.1" + is-symbol "^1.0.2" escape-html@~1.0.3: version "1.0.3" - resolved "http://r.cnpmjs.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "http://r.cnpmjs.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" +escodegen@^1.9.1: + version "1.11.1" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" dependencies: esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: - source-map "~0.5.6" + source-map "~0.6.1" -eslint-config-airbnb-base@^13.1.0: - version "13.1.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" +eslint-config-airbnb-base@^13.2.0: + version "13.2.0" + resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943" dependencies: - eslint-restricted-globals "^0.1.1" + confusing-browser-globals "^1.0.5" object.assign "^4.1.0" - object.entries "^1.0.4" + object.entries "^1.1.0" -eslint-config-airbnb@17.1.0: - version "17.1.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" +eslint-config-airbnb@^17.1.0: + version "17.1.1" + resolved "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz#2272e0b86bb1e2b138cdf88d07a3b6f4cda3d626" dependencies: - eslint-config-airbnb-base "^13.1.0" + eslint-config-airbnb-base "^13.2.0" object.assign "^4.1.0" - object.entries "^1.0.4" + object.entries "^1.1.0" -eslint-config-prettier@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.0.1.tgz#479214f64c1a4b344040924bfb97543db334b7b1" +eslint-config-prettier@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-5.1.0.tgz#bf29442e7c818236a77acfe2241ec991299f9bf1" dependencies: get-stdin "^6.0.0" -eslint-import-resolver-node@^0.3.1: - version "0.3.1" - resolved "http://r.cnpmjs.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" +eslint-import-resolver-babel-module@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/eslint-import-resolver-babel-module/-/eslint-import-resolver-babel-module-5.1.0.tgz#50dac176dfbce2824b0e12100d6c23370d4325c0" dependencies: - debug "^2.6.8" - resolve "^1.2.0" + pkg-up "^2.0.0" + resolve "^1.10.0" -eslint-module-utils@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" +eslint-import-resolver-node@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" dependencies: debug "^2.6.8" - pkg-dir "^1.0.0" + pkg-dir "^2.0.0" -eslint-plugin-cypress@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.0.1.tgz#647e942cacbfd71b0f1a1ed6978472fbd475c60a" +eslint-plugin-cypress@^2.2.1: + version "2.6.0" + resolved "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.6.0.tgz#c726dd1a312cd5234de94765ca79718a14edf0ef" dependencies: - globals "^11.0.1" + globals "^11.12.0" -eslint-plugin-import@2.13.0: - version "2.13.0" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz#df24f241175e312d91662dc91ca84064caec14ed" +eslint-plugin-import@^2.17.3: + version "2.18.2" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" dependencies: + array-includes "^3.0.3" contains-path "^0.1.0" - debug "^2.6.8" + debug "^2.6.9" doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" read-pkg-up "^2.0.0" - resolve "^1.6.0" + resolve "^1.11.0" -eslint-plugin-jsx-a11y@6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.1.tgz#7bf56dbe7d47d811d14dbb3ddff644aa656ce8e1" +eslint-plugin-jsx-a11y@^6.2.1: + version "6.2.3" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" dependencies: + "@babel/runtime" "^7.4.5" aria-query "^3.0.0" array-includes "^3.0.3" ast-types-flow "^0.0.7" - axobject-query "^2.0.1" + axobject-query "^2.0.2" damerau-levenshtein "^1.0.4" - emoji-regex "^6.5.1" + emoji-regex "^7.0.2" has "^1.0.3" - jsx-ast-utils "^2.0.1" + jsx-ast-utils "^2.2.1" eslint-plugin-prettier@2.6.2: version "2.6.2" @@ -3969,19 +3680,29 @@ eslint-plugin-prettier@2.6.2: fast-diff "^1.1.1" jest-docblock "^21.0.0" -eslint-plugin-react@7.11.0: - version "7.11.0" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.0.tgz#b3124af974c4da978e62a57ea49a7bc26f11e76d" +eslint-plugin-prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz#8695188f95daa93b0dc54b249347ca3b79c4686d" + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^1.6.0: + version "1.6.1" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.6.1.tgz#3c66a5515ea3e0a221ffc5d4e75c971c217b1a4c" + +eslint-plugin-react@^7.13.0: + version "7.14.3" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" dependencies: array-includes "^3.0.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.0.1" - prop-types "^15.6.2" - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "http://r.cnpmjs.org/eslint-restricted-globals/download/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + 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" eslint-scope@3.7.1: version "3.7.1" @@ -3991,37 +3712,22 @@ eslint-scope@3.7.1: estraverse "^4.1.1" eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + version "4.0.3" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + version "1.4.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" + dependencies: + eslint-visitor-keys "^1.0.0" eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint-watch@4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/eslint-watch/-/eslint-watch-4.0.2.tgz#83a59a96c69addb5320a14879ff89f7635976098" - dependencies: - "@babel/polyfill" "^7.0.0-beta.51" - bluebird "^3.5.1" - chalk "^2.1.0" - chokidar "^2.0.0" - debug "^3.0.1" - keypress "^0.2.1" - lodash "^4.17.4" - optionator "^0.8.2" - source-map-support "^0.5.3" - strip-ansi "^4.0.0" - text-table "^0.2.0" - unicons "0.0.3" - eslint@5.6.0: version "5.6.0" resolved "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz#b6f7806041af01f71b3f1895cbb20971ea4b6223" @@ -4066,19 +3772,20 @@ eslint@5.6.0: text-table "^0.2.0" espree@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" + version "4.1.0" + resolved "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" dependencies: - acorn "^5.6.0" - acorn-jsx "^4.1.1" + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" esprima@^3.1.3: version "3.1.3" - resolved "http://r.cnpmjs.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esprima@^4.0.0: - version "4.0.0" - resolved "http://r.cnpmjs.org/esprima/download/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" esquery@^1.0.1: version "1.0.1" @@ -4087,64 +3794,51 @@ esquery@^1.0.1: estraverse "^4.0.0" esrecurse@^4.1.0: - version "4.2.0" - resolved "http://r.cnpmjs.org/esrecurse/download/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + version "4.2.1" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" dependencies: estraverse "^4.1.0" - object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" - resolved "http://r.cnpmjs.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" - resolved "http://r.cnpmjs.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" etag@1.8.1, etag@~1.8.1: version "1.8.1" - resolved "http://r.cnpmjs.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" ev-emitter@^1.0.0: version "1.1.1" - resolved "http://r.cnpmjs.org/ev-emitter/download/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" + resolved "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" event-source-polyfill@0.0.12: version "0.0.12" resolved "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-0.0.12.tgz#e539cd67fdef2760a16aa5262fa98134df52e3af" -event-stream@~3.3.0: - version "3.3.4" - resolved "http://r.cnpmjs.org/event-stream/download/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - eventlistener@0.0.1: version "0.0.1" - resolved "http://r.cnpmjs.org/eventlistener/download/eventlistener-0.0.1.tgz#ed2baabb852227af2bcf889152c72c63ca532eb8" + resolved "https://registry.npmjs.org/eventlistener/-/eventlistener-0.0.1.tgz#ed2baabb852227af2bcf889152c72c63ca532eb8" -events@^1.0.0: - version "1.1.1" - resolved "http://r.cnpmjs.org/events/download/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" +events@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" -evp_bytestokey@^1.0.0: - version "1.0.2" - resolved "http://r.cnpmjs.org/evp_bytestokey/download/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" exec-sh@^0.2.0: - version "0.2.1" - resolved "http://r.cnpmjs.org/exec-sh/download/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" + version "0.2.2" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" dependencies: - merge "^1.1.3" + merge "^1.2.0" execa@0.10.0: version "0.10.0" @@ -4160,7 +3854,19 @@ execa@0.10.0: execa@^0.7.0: version "0.7.0" - resolved "http://r.cnpmjs.org/execa/download/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -4182,6 +3888,18 @@ execa@^0.9.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + executable@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -4190,7 +3908,7 @@ executable@4.1.1: exit-hook@^1.0.0: version "1.1.1" - resolved "http://r.cnpmjs.org/exit-hook/download/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" exit@^0.1.2: version "0.1.2" @@ -4198,7 +3916,7 @@ exit@^0.1.2: expand-brackets@^0.1.4: version "0.1.5" - resolved "http://r.cnpmjs.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" dependencies: is-posix-bracket "^0.1.0" @@ -4216,69 +3934,69 @@ expand-brackets@^2.1.4: expand-range@^1.8.1: version "1.8.2" - resolved "http://r.cnpmjs.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" expand-tilde@^1.2.2: version "1.2.2" - resolved "http://r.cnpmjs.org/expand-tilde/download/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" dependencies: os-homedir "^1.0.1" -expand-tilde@^2.0.2: +expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "http://r.cnpmjs.org/expand-tilde/download/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" dependencies: homedir-polyfill "^1.0.1" -expect-ct@0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz#de84476a2dbcb85000d5903737e9bc8a5ba7b897" +expect-ct@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz#3a54741b6ed34cc7a93305c605f63cd268a54a62" -expect@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/expect/-/expect-23.5.0.tgz#18999a0eef8f8acf99023fde766d9c323c2562ed" +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" dependencies: ansi-styles "^3.2.0" - jest-diff "^23.5.0" + jest-diff "^23.6.0" jest-get-type "^22.1.0" - jest-matcher-utils "^23.5.0" + jest-matcher-utils "^23.6.0" jest-message-util "^23.4.0" jest-regex-util "^23.3.0" express@^4.16.3, express@^4.16.4: - version "4.16.4" - resolved "https://registry.npmjs.org/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + version "4.17.1" + resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" dependencies: - accepts "~1.3.5" + accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.18.3" - content-disposition "0.5.2" + body-parser "1.19.0" + content-disposition "0.5.3" content-type "~1.0.4" - cookie "0.3.1" + cookie "0.4.0" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.1" + finalhandler "~1.1.2" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.2" + parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.4" - qs "6.5.2" - range-parser "~1.2.0" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" safe-buffer "5.1.2" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -4295,41 +4013,29 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "http://r.cnpmjs.org/extend/download/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" external-editor@^1.1.0: version "1.1.1" - resolved "http://r.cnpmjs.org/external-editor/download/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" dependencies: extend "^3.0.0" spawn-sync "^1.0.15" tmp "^0.0.29" -external-editor@^2.0.1: +external-editor@^2.0.1, external-editor@^2.1.0: version "2.2.0" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" tmp "^0.0.33" -external-editor@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -4337,7 +4043,7 @@ external-editor@^3.0.0: extglob@^0.3.1: version "0.3.2" - resolved "http://r.cnpmjs.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + resolved "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" dependencies: is-extglob "^1.0.0" @@ -4354,40 +4060,40 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@1.6.6: - version "1.6.6" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" +extract-zip@1.6.7: + version "1.6.7" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" dependencies: - concat-stream "1.6.0" + concat-stream "1.6.2" debug "2.6.9" - mkdirp "0.5.0" + mkdirp "0.5.1" yauzl "2.4.1" -extsprintf@1.3.0, extsprintf@^1.2.0: +extsprintf@1.3.0: version "1.3.0" - resolved "http://r.cnpmjs.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/fast-deep-equal/download/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" -fast-diff@^1.1.1: - version "1.1.1" - resolved "http://r.cnpmjs.org/fast-diff/download/fast-diff-1.1.1.tgz#0aea0e4e605b6a2189f0e936d4b7fbaf1b7cfd9b" +fast-diff@^1.1.1, fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" fast-glob@^2.0.2: - version "2.2.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf" + version "2.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.0.1" + "@nodelib/fs.stat" "^1.1.2" glob-parent "^3.1.0" is-glob "^4.0.0" - merge2 "^1.2.1" + merge2 "^1.2.3" micromatch "^3.1.10" fast-json-stable-stringify@^2.0.0: @@ -4396,11 +4102,11 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@~2.0.4: version "2.0.6" - resolved "http://r.cnpmjs.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fb-watchman@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/fb-watchman/download/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" dependencies: bser "^2.0.0" @@ -4410,21 +4116,9 @@ fbemitter@^2.0.0: dependencies: fbjs "^0.8.4" -fbjs@^0.8.0, fbjs@^0.8.15, fbjs@^0.8.16, fbjs@^0.8.4: - version "0.8.16" - resolved "http://r.cnpmjs.org/fbjs/download/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - -fbjs@^0.8.5, fbjs@^0.8.9: - version "0.8.14" - resolved "http://r.cnpmjs.org/fbjs/download/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c" +fbjs@^0.8.0, fbjs@^0.8.15, fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9: + version "0.8.17" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -4432,7 +4126,7 @@ fbjs@^0.8.5, fbjs@^0.8.9: object-assign "^4.1.0" promise "^7.1.1" setimmediate "^1.0.5" - ua-parser-js "^0.7.9" + ua-parser-js "^0.7.18" fd-slicer@~1.0.1: version "1.0.1" @@ -4440,45 +4134,51 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" -feature-policy@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/feature-policy/-/feature-policy-0.2.0.tgz#22096de49ab240176878ffe2bde2f6ff04d48c43" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + dependencies: + pend "~1.2.0" + +feature-policy@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069" fetch-jsonp@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/fetch-jsonp/-/fetch-jsonp-1.1.3.tgz#9eb9e585ba08aaf700563538d17bbebbcd5a3db2" -figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: +figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" figures@^1.3.5, figures@^1.5.0, figures@^1.7.0: version "1.7.0" - resolved "http://r.cnpmjs.org/figures/download/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" figures@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/figures/download/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" filename-regex@^2.0.0: version "2.0.1" - resolved "http://r.cnpmjs.org/filename-regex/download/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + resolved "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" fileset@^2.0.2: version "2.0.3" - resolved "http://r.cnpmjs.org/fileset/download/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + resolved "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" dependencies: glob "^7.0.3" minimatch "^3.0.3" @@ -4488,12 +4188,12 @@ filesize@^3.6.1: resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" fill-range@^2.1.0: - version "2.2.3" - resolved "http://r.cnpmjs.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + version "2.2.4" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" dependencies: is-number "^2.1.0" isobject "^2.0.0" - randomatic "^1.1.3" + randomatic "^3.0.0" repeat-element "^1.1.2" repeat-string "^1.5.2" @@ -4506,32 +4206,39 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -finalhandler@1.1.1: - version "1.1.1" - resolved "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" + parseurl "~1.3.3" + statuses "~1.5.0" unpipe "~1.0.0" +find-babel-config@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + dependencies: + json5 "^0.5.1" + path-exists "^3.0.0" + find-cache-dir@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" dependencies: commondir "^1.0.1" make-dir "^1.0.0" pkg-dir "^2.0.0" find-cache-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" dependencies: commondir "^1.0.1" - make-dir "^1.0.0" + make-dir "^2.0.0" pkg-dir "^3.0.0" find-node-modules@1.0.4: @@ -4551,13 +4258,13 @@ find-root@1.0.0: find-up@2.1.0, find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" - resolved "http://r.cnpmjs.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: locate-path "^2.0.0" find-up@^1.0.0: version "1.1.2" - resolved "http://r.cnpmjs.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -4568,6 +4275,13 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-with-regex@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/find-with-regex/-/find-with-regex-1.1.3.tgz#d6c6f2debee898d36b6a77e05709b13dd5dc8a26" @@ -4581,18 +4295,18 @@ findup-sync@0.4.2: micromatch "^2.3.7" resolve-dir "^0.1.0" -findup-sync@^0.4.2: - version "0.4.3" - resolved "http://r.cnpmjs.org/findup-sync/download/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" dependencies: - detect-file "^0.1.0" - is-glob "^2.0.1" - micromatch "^2.3.7" - resolve-dir "^0.1.0" + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" fined@^1.0.1: - version "1.1.0" - resolved "http://r.cnpmjs.org/fined/download/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + version "1.2.0" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" dependencies: expand-tilde "^2.0.2" is-plain-object "^2.0.3" @@ -4601,30 +4315,30 @@ fined@^1.0.1: parse-filepath "^1.0.1" fizzy-ui-utils@^2.0.0: - version "2.0.5" - resolved "http://r.cnpmjs.org/fizzy-ui-utils/download/fizzy-ui-utils-2.0.5.tgz#d72debc74d2c9d272dbcbb7b001707897f6c3210" + version "2.0.7" + resolved "https://registry.npmjs.org/fizzy-ui-utils/-/fizzy-ui-utils-2.0.7.tgz#7df45dcc4eb374a08b65d39bb9a4beedf7330505" dependencies: desandro-matches-selector "^2.0.0" -flagged-respawn@^0.3.2: - version "0.3.2" - resolved "http://r.cnpmjs.org/flagged-respawn/download/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" flat-cache@^1.2.1: - version "1.2.2" - resolved "http://r.cnpmjs.org/flat-cache/download/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + version "1.3.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" dependencies: circular-json "^0.3.1" - del "^2.0.2" graceful-fs "^4.1.2" + rimraf "~2.6.2" write "^0.2.1" flush-write-stream@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" + version "1.1.1" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" + inherits "^2.0.3" + readable-stream "^2.3.6" flux@^3.1.3: version "3.1.3" @@ -4635,55 +4349,35 @@ flux@^3.1.3: for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" for-own@^0.1.4: version "0.1.5" - resolved "http://r.cnpmjs.org/for-own/download/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: for-in "^1.0.1" for-own@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/for-own/download/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" dependencies: for-in "^1.0.1" -foreach@^2.0.5: - version "2.0.5" - resolved "http://r.cnpmjs.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - forever-agent@~0.6.1: version "0.6.1" - resolved "http://r.cnpmjs.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "http://r.cnpmjs.org/form-data/download/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.1: - version "2.3.1" - resolved "http://r.cnpmjs.org/form-data/download/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" form-data@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" dependencies: asynckit "^0.4.0" - combined-stream "1.0.6" + combined-stream "^1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: version "0.1.2" - resolved "http://r.cnpmjs.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" fragment-cache@^0.2.1: version "0.2.1" @@ -4691,13 +4385,13 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -frameguard@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/frameguard/-/frameguard-3.0.0.tgz#7bcad469ee7b96e91d12ceb3959c78235a9272e9" +frameguard@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/frameguard/-/frameguard-3.1.0.tgz#bd1442cca1d67dc346a6751559b6d04502103a22" fresh@0.5.2: version "0.5.2" - resolved "http://r.cnpmjs.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" friendly-errors-webpack-plugin@1.7.0: version "1.7.0" @@ -4714,10 +4408,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -from@~0: - version "0.1.7" - resolved "http://r.cnpmjs.org/from/download/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - fs-access@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" @@ -4726,14 +4416,14 @@ fs-access@^1.0.0: fs-exists-sync@^0.1.0: version "0.1.0" - resolved "http://r.cnpmjs.org/fs-exists-sync/download/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + resolved "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" -fs-extra@4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" +fs-extra@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" dependencies: graceful-fs "^4.1.2" - jsonfile "^3.0.0" + jsonfile "^4.0.0" universalify "^0.1.0" fs-extra@^1.0.0: @@ -4745,8 +4435,8 @@ fs-extra@^1.0.0: klaw "^1.0.0" fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + version "1.2.6" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" dependencies: minipass "^2.2.1" @@ -4761,62 +4451,39 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.1.1: - version "1.1.2" - resolved "http://r.cnpmjs.org/fsevents/download/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.36" - -fsevents@^1.2.2: - version "1.2.4" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "http://r.cnpmjs.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "http://r.cnpmjs.org/fstream/download/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" +fsevents@^1.2.3, fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" + nan "^2.12.1" + node-pre-gyp "^0.12.0" -function-bind@^1.0.2, function-bind@^1.1.0: - version "1.1.0" - resolved "http://r.cnpmjs.org/function-bind/download/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - -function-bind@^1.1.1: +function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -function.prototype.name@^1.0.3: - version "1.0.3" - resolved "http://r.cnpmjs.org/function.prototype.name/download/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac" +function.prototype.name@^1.0.3, function.prototype.name@^1.1.0, function.prototype.name@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" dependencies: - define-properties "^1.1.2" - function-bind "^1.1.0" - is-callable "^1.1.3" + define-properties "^1.1.3" + function-bind "^1.1.1" + functions-have-names "^1.1.1" + is-callable "^1.1.4" functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +functions-have-names@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.1.1.tgz#79d35927f07b8e7103d819fed475b64ccf7225ea" gauge@~2.7.3: version "2.7.4" - resolved "http://r.cnpmjs.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -4828,12 +4495,12 @@ gauge@~2.7.3: wide-align "^1.1.0" get-caller-file@^1.0.1: - version "1.0.2" - resolved "http://r.cnpmjs.org/get-caller-file/download/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + version "1.0.3" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" -get-own-enumerable-property-symbols@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" get-pkg-repo@^1.0.0: version "1.4.0" @@ -4846,12 +4513,12 @@ get-pkg-repo@^1.0.0: through2 "^2.0.0" get-size@^2.0.2: - version "2.0.2" - resolved "http://r.cnpmjs.org/get-size/download/get-size-2.0.2.tgz#555ea98ab8732e0c021e9e23e2219adcbe398e98" + version "2.0.3" + resolved "https://registry.npmjs.org/get-size/-/get-size-2.0.3.tgz#54a1d0256b20ea7ac646516756202769941ad2ef" -get-stdin@5.0.1: - version "5.0.1" - resolved "http://r.cnpmjs.org/get-stdin/download/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" +get-stdin@7.0.0, get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" get-stdin@^4.0.1: version "4.0.1" @@ -4863,21 +4530,27 @@ get-stdin@^6.0.0: get-stream@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + dependencies: + pump "^3.0.0" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" -getos@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz#db3aa4df15a3295557ce5e81aa9e3e5cdfaa6567" +getos@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/getos/-/getos-3.1.1.tgz#967a813cceafee0156b0483f7cffa5b3eff029c5" dependencies: - async "2.4.0" + async "2.6.1" getpass@^0.1.1: version "0.1.7" - resolved "http://r.cnpmjs.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" dependencies: assert-plus "^1.0.0" @@ -4913,14 +4586,14 @@ gitconfiglocal@^1.0.0: glob-base@^0.3.0: version "0.3.0" - resolved "http://r.cnpmjs.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" glob-parent@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" dependencies: is-glob "^2.0.0" @@ -4946,9 +4619,20 @@ glob@7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: +glob@7.1.2: version "7.1.2" - resolved "http://r.cnpmjs.org/glob/download/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4957,7 +4641,7 @@ glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: +global-dirs@^0.1.0, global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" dependencies: @@ -4965,39 +4649,49 @@ global-dirs@^0.1.0: global-modules@^0.2.3: version "0.2.3" - resolved "http://r.cnpmjs.org/global-modules/download/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" dependencies: global-prefix "^0.1.4" is-windows "^0.2.0" +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + global-prefix@^0.1.4: version "0.1.5" - resolved "http://r.cnpmjs.org/global-prefix/download/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" dependencies: homedir-polyfill "^1.0.0" ini "^1.3.4" is-windows "^0.2.0" which "^1.2.12" -globals@^11.0.1: - version "11.1.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4" - -globals@^11.1.0: - version "11.3.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" -globals@^11.7.0: - version "11.7.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" +globals@^11.1.0, globals@^11.12.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" globals@^9.18.0: version "9.18.0" - resolved "http://r.cnpmjs.org/globals/download/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" globby@^5.0.0: version "5.0.0" - resolved "http://r.cnpmjs.org/globby/download/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -5008,7 +4702,7 @@ globby@^5.0.0: globby@^6.1.0: version "6.1.0" - resolved "http://r.cnpmjs.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -5017,34 +4711,34 @@ globby@^6.1.0: pinkie-promise "^2.0.0" globby@^8.0.0: - version "8.0.1" - resolved "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + version "8.0.2" + resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" dependencies: array-union "^1.0.1" - dir-glob "^2.0.0" + 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" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.2.0" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" graphql-request@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412" + version "1.8.2" + resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" dependencies: - cross-fetch "2.0.0" + cross-fetch "2.2.2" graphql-tag@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.6.1.tgz#4788d509f6e29607d947fc47a40c4e18f736d34a" + version "2.10.1" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.1.tgz#10aa41f1cd8fae5373eaf11f1f67260a3cad5e02" graphql@^0.13.2: version "0.13.2" - resolved "http://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" + resolved "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" dependencies: iterall "^1.2.1" @@ -5054,85 +4748,61 @@ graphql@^0.13.2: growly@^1.3.0: version "1.3.0" - resolved "http://r.cnpmjs.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" gud@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" +gulp-header@^1.7.1: + version "1.8.12" + resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" + dependencies: + concat-with-sourcemaps "*" + lodash.template "^4.4.0" + through2 "^2.0.0" + gzip-size@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" + version "5.1.1" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" dependencies: duplexer "^0.1.1" - pify "^3.0.0" + pify "^4.0.1" hammerjs@^2.0.8: version "2.0.8" - resolved "http://r.cnpmjs.org/hammerjs/download/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" + resolved "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" -handlebars@^4.0.2: - version "4.0.12" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" +handlebars@^4.0.2, handlebars@^4.0.3, handlebars@^4.0.5: + version "4.1.2" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" dependencies: - async "^2.5.0" + neo-async "^2.6.0" optimist "^0.6.1" source-map "^0.6.1" optionalDependencies: uglify-js "^3.1.4" -handlebars@^4.0.3, handlebars@^4.0.5: - version "4.0.10" - resolved "http://r.cnpmjs.org/handlebars/download/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-schema@^1.0.5: - version "1.0.5" - resolved "http://r.cnpmjs.org/har-schema/download/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - har-schema@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~4.2.1: - version "4.2.1" - resolved "http://r.cnpmjs.org/har-validator/download/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -har-validator@~5.0.3: - version "5.0.3" - resolved "http://r.cnpmjs.org/har-validator/download/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" har-validator@~5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" + version "5.1.3" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" dependencies: - ajv "^5.3.0" + ajv "^6.5.5" har-schema "^2.0.0" has-ansi@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "http://r.cnpmjs.org/has-flag/download/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" has-flag@^3.0.0: version "3.0.0" @@ -5144,7 +4814,7 @@ has-symbols@^1.0.0: has-unicode@^2.0.0: version "2.0.1" - resolved "http://r.cnpmjs.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" has-value@^0.3.1: version "0.3.1" @@ -5173,55 +4843,25 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/has/download/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -has@^1.0.3: +has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: function-bind "^1.1.1" -hash-base@^2.0.0: - version "2.0.2" - resolved "http://r.cnpmjs.org/hash-base/download/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - hash-base@^3.0.0: version "3.0.4" - resolved "http://r.cnpmjs.org/hash-base/download/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "http://r.cnpmjs.org/hash.js/download/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" dependencies: inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hawk@~3.1.3: - version "3.1.3" - resolved "http://r.cnpmjs.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "http://r.cnpmjs.org/hawk/download/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" + minimalistic-assert "^1.0.1" header-case@^1.0.0: version "1.0.1" @@ -5230,166 +4870,165 @@ header-case@^1.0.0: no-case "^2.2.0" upper-case "^1.1.3" -helmet-crossdomain@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz#707e2df930f13ad61f76ed08e1bb51ab2b2e85fa" +helmet-crossdomain@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e" -helmet-csp@2.7.1: - version "2.7.1" - resolved "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.1.tgz#e8e0b5186ffd4db625cfcce523758adbfadb9dca" +helmet-csp@2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.8.0.tgz#746d329e24ef39c4ebc00278a48abd3c209e0378" dependencies: camelize "1.0.0" - content-security-policy-builder "2.0.0" + content-security-policy-builder "2.1.0" dasherize "2.0.0" platform "1.3.5" helmet@^3.15.0: - version "3.15.0" - resolved "https://registry.npmjs.org/helmet/-/helmet-3.15.0.tgz#fe0bb80e05d9eec589e3cbecaf5384409a3a64c9" - dependencies: - dns-prefetch-control "0.1.0" - dont-sniff-mimetype "1.0.0" - expect-ct "0.1.1" - feature-policy "0.2.0" - frameguard "3.0.0" - helmet-crossdomain "0.3.0" - helmet-csp "2.7.1" - hide-powered-by "1.0.0" + version "3.20.0" + resolved "https://registry.npmjs.org/helmet/-/helmet-3.20.0.tgz#8a9383bf8230a461cafe8bc763423fbde110d2fc" + dependencies: + depd "2.0.0" + dns-prefetch-control "0.2.0" + dont-sniff-mimetype "1.1.0" + expect-ct "0.2.0" + feature-policy "0.3.0" + frameguard "3.1.0" + helmet-crossdomain "0.4.0" + helmet-csp "2.8.0" + hide-powered-by "1.1.0" hpkp "2.0.0" - hsts "2.1.0" - ienoopen "1.0.0" - nocache "2.0.0" - referrer-policy "1.1.0" - x-xss-protection "1.1.0" + hsts "2.2.0" + ienoopen "1.1.0" + nocache "2.1.0" + referrer-policy "1.2.0" + x-xss-protection "1.2.0" -hide-powered-by@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz#4a85ad65881f62857fc70af7174a1184dccce32b" +hide-powered-by@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a" hmac-drbg@^1.0.0: version "1.0.1" - resolved "http://r.cnpmjs.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@2.x.x: - version "2.16.3" - resolved "http://r.cnpmjs.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.0" - resolved "http://r.cnpmjs.org/hoek/download/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" - -hoist-non-react-statics@2.5.5: +hoist-non-react-statics@2.5.5, hoist-non-react-statics@^2.1.1, hoist-non-react-statics@^2.3.1: version "2.5.5" resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" -hoist-non-react-statics@^2.1.1: - version "2.5.0" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40" - -hoist-non-react-statics@^2.3.1: - version "2.3.1" - resolved "http://r.cnpmjs.org/hoist-non-react-statics/download/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" - -hoist-non-react-statics@^3.0.0: - version "3.2.1" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz#c09c0555c84b38a7ede6912b61efddafd6e75e1e" +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" dependencies: - react-is "^16.3.2" + react-is "^16.7.0" home-or-tmp@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/homedir-polyfill/download/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" dependencies: parse-passwd "^1.0.0" -hoopy@^0.1.2: +hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" hosted-git-info@^2.1.4: - version "2.5.0" - resolved "http://r.cnpmjs.org/hosted-git-info/download/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + version "2.7.1" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" hpkp@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672" -hsts@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hsts/-/hsts-2.1.0.tgz#cbd6c918a2385fee1dd5680bfb2b3a194c0121cc" +hsts@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz#09119d42f7a8587035d027dda4522366fe75d964" + dependencies: + depd "2.0.0" -html-encoding-sniffer@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: whatwg-encoding "^1.0.1" html-entities@^1.2.0: version "1.2.1" - resolved "http://r.cnpmjs.org/html-entities/download/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" htmlescape@1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/htmlescape/download/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + resolved "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" htmlparser2@^3.9.1: - version "3.9.2" - resolved "http://r.cnpmjs.org/htmlparser2/download/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + version "3.10.1" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" dependencies: - domelementtype "^1.3.0" + domelementtype "^1.3.1" domhandler "^2.3.0" domutils "^1.5.1" entities "^1.1.1" inherits "^2.0.1" - readable-stream "^2.0.2" + readable-stream "^3.1.1" -http-errors@1.6.2, http-errors@~1.6.2: +http-errors@1.6.2: version "1.6.2" - resolved "http://r.cnpmjs.org/http-errors/download/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: depd "1.1.1" inherits "2.0.3" setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" -http-errors@1.6.3, http-errors@~1.6.3: - version "1.6.3" - resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" dependencies: depd "~1.1.2" inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" http-errors@~1.4.0: version "1.4.0" - resolved "http://r.cnpmjs.org/http-errors/download/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf" dependencies: inherits "2.0.1" statuses ">= 1.2.1 < 2" -http-signature@~1.1.0: - version "1.1.1" - resolved "http://r.cnpmjs.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" http-signature@~1.2.0: version "1.2.0" - resolved "http://r.cnpmjs.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -5397,53 +5036,40 @@ http-signature@~1.2.0: http-status@1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/http-status/download/http-status-1.0.1.tgz#dc43001a8bfc50ac87d485a892f7578964bc94a2" - -https-browserify@0.0.1: - version "0.0.1" - resolved "http://r.cnpmjs.org/https-browserify/download/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + resolved "https://registry.npmjs.org/http-status/-/http-status-1.0.1.tgz#dc43001a8bfc50ac87d485a892f7578964bc94a2" -husky@^0.14.3: - version "0.14.3" - resolved "http://r.cnpmjs.org/husky/download/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" - dependencies: - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" - -iconv-lite@0.4.13: - version "0.4.13" - resolved "http://r.cnpmjs.org/iconv-lite/download/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" +husky@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/husky/-/husky-2.1.0.tgz#f486dd063596ad3aad4bbbcd8673ca5bface3caa" dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.4.17: - version "0.4.18" - resolved "http://r.cnpmjs.org/iconv-lite/download/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" - -iconv-lite@^0.4.24, iconv-lite@^0.4.4: + cosmiconfig "^5.2.0" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^7.0.0" + is-ci "^2.0.0" + pkg-dir "^4.1.0" + please-upgrade-node "^3.1.1" + read-pkg "^5.0.0" + run-node "^1.0.0" + slash "^2.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@~0.4.13: - version "0.4.21" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" - dependencies: - safer-buffer "^2.1.0" - ieee754@^1.1.4: - version "1.1.8" - resolved "http://r.cnpmjs.org/ieee754/download/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + version "1.1.13" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" -ienoopen@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz#346a428f474aac8f50cf3784ea2d0f16f62bda6b" +ienoopen@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz#411e5d530c982287dbdc3bb31e7a9c9e32630974" iferr@^0.1.5: version "0.1.5" @@ -5455,7 +5081,7 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.5: +ignore@^3.3.5, ignore@^3.3.7: version "3.3.10" resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" @@ -5464,23 +5090,37 @@ ignore@^4.0.6: resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" imagesloaded@^4.0.0: - version "4.1.3" - resolved "http://r.cnpmjs.org/imagesloaded/download/imagesloaded-4.1.3.tgz#94b82a069e532c9da112a4ea3960e58424a42be4" + version "4.1.4" + resolved "https://registry.npmjs.org/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" dependencies: ev-emitter "^1.0.0" immutable-tuple@^0.4.9: - version "0.4.9" - resolved "https://registry.npmjs.org/immutable-tuple/-/immutable-tuple-0.4.9.tgz#473ebdd6c169c461913a454bf87ef8f601a20ff0" + version "0.4.10" + resolved "https://registry.npmjs.org/immutable-tuple/-/immutable-tuple-0.4.10.tgz#e0b1625384f514084a7a84b749a3bb26e9179929" immutable@^3.7.4: version "3.8.2" - resolved "http://r.cnpmjs.org/immutable/download/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" immutable@~3.7.4: version "3.7.6" resolved "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-local@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" @@ -5490,48 +5130,44 @@ import-local@^1.0.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "http://r.cnpmjs.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" indent-string@^2.1.0: version "2.1.0" - resolved "http://r.cnpmjs.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" dependencies: repeating "^2.0.0" indent-string@^3.0.0: version "3.2.0" - resolved "http://r.cnpmjs.org/indent-string/download/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - -indexof@0.0.1: - version "0.0.1" - resolved "http://r.cnpmjs.org/indexof/download/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" inflight@^1.0.4: version "1.0.6" - resolved "http://r.cnpmjs.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "http://r.cnpmjs.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" inherits@2.0.1: version "2.0.1" - resolved "http://r.cnpmjs.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -ini@^1.3.2: +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -ini@^1.3.4, ini@~1.3.0: - version "1.3.4" - resolved "http://r.cnpmjs.org/ini/download/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - inquirer@1.2.3: version "1.2.3" - resolved "http://r.cnpmjs.org/inquirer/download/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" dependencies: ansi-escapes "^1.1.0" chalk "^1.0.0" @@ -5585,62 +5221,60 @@ inquirer@^5.0.0: through "^2.3.6" inquirer@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" + version "6.5.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" + ansi-escapes "^3.2.0" + chalk "^2.4.2" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^3.0.0" + external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.10" + lodash "^4.17.12" mute-stream "0.0.7" run-async "^2.2.0" - rxjs "^6.1.0" + rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^5.0.0" + strip-ansi "^5.1.0" through "^2.3.6" interpret@^1.0.0: - version "1.0.3" - resolved "http://r.cnpmjs.org/interpret/download/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + version "1.2.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" intersperse@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" intl-format-cache@^2.0.5: - version "2.0.5" - resolved "http://r.cnpmjs.org/intl-format-cache/download/intl-format-cache-2.0.5.tgz#b484cefcb9353f374f25de389a3ceea1af18d7c9" + version "2.2.9" + resolved "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz#fb560de20c549cda20b569cf1ffb6dc62b5b93b4" -intl-messageformat-parser@1.2.0, intl-messageformat-parser@^1.2.0: - version "1.2.0" - resolved "http://r.cnpmjs.org/intl-messageformat-parser/download/intl-messageformat-parser-1.2.0.tgz#5906b7f953ab7470e0dc8549097b648b991892ff" +intl-messageformat-parser@1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" + +intl-messageformat-parser@^1.2.0: + version "1.8.1" + resolved "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz#0eb14c5618333be4c95c409457b66c8c33ddcc01" intl-messageformat@^2.0.0, intl-messageformat@^2.1.0: - version "2.1.0" - resolved "http://r.cnpmjs.org/intl-messageformat/download/intl-messageformat-2.1.0.tgz#1c51da76f02a3f7b360654cdc51bbc4d3fa6c72c" + version "2.2.0" + resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc" dependencies: - intl-messageformat-parser "1.2.0" + intl-messageformat-parser "1.4.0" intl-relativeformat@^2.0.0: - version "2.1.0" - resolved "http://r.cnpmjs.org/intl-relativeformat/download/intl-relativeformat-2.1.0.tgz#010f1105802251f40ac47d0e3e1a201348a255df" + version "2.2.0" + resolved "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz#6aca95d019ec8d30b6c5653b6629f9983ea5b6c5" dependencies: intl-messageformat "^2.0.0" intl@^1.2.5: version "1.2.5" - resolved "http://r.cnpmjs.org/intl/download/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde" + resolved "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde" -invariant@^2.1.1, invariant@^2.2.2: - version "2.2.2" - resolved "http://r.cnpmjs.org/invariant/download/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invariant@^2.2.1, invariant@^2.2.4: +invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -5648,18 +5282,18 @@ invariant@^2.2.1, invariant@^2.2.4: invert-kv@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ipaddr.js@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" -is-absolute@^0.2.3: - version "0.2.6" - resolved "http://r.cnpmjs.org/is-absolute/download/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" dependencies: - is-relative "^0.2.1" - is-windows "^0.2.0" + is-relative "^1.0.0" + is-windows "^1.0.1" is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -5675,11 +5309,11 @@ is-accessor-descriptor@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" - resolved "http://r.cnpmjs.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" is-binary-path@^1.0.0: version "1.0.1" - resolved "http://r.cnpmjs.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" dependencies: binary-extensions "^1.0.0" @@ -5688,31 +5322,25 @@ is-boolean-object@^1.0.0: resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" is-buffer@^1.1.5: - version "1.1.5" - resolved "http://r.cnpmjs.org/is-buffer/download/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "http://r.cnpmjs.org/is-callable/download/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" -is-ci@1.0.10, is-ci@^1.0.10: - version "1.0.10" - resolved "http://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" - dependencies: - ci-info "^1.0.0" +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" -is-ci@^1.1.0: +is-ci@1.2.1, is-ci@^1.0.10, is-ci@^1.1.0: version "1.2.1" resolved "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" dependencies: ci-info "^1.5.0" +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + dependencies: + ci-info "^2.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5727,7 +5355,7 @@ is-data-descriptor@^1.0.0: is-date-object@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/is-date-object/download/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" is-descriptor@^0.1.0: version "0.1.6" @@ -5751,17 +5379,17 @@ is-directory@^0.3.1: is-dotfile@^1.0.0: version "1.0.3" - resolved "http://r.cnpmjs.org/is-dotfile/download/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + resolved "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" is-equal-shallow@^0.1.3: version "0.1.3" - resolved "http://r.cnpmjs.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + resolved "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" dependencies: is-primitive "^2.0.0" is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "http://r.cnpmjs.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" is-extendable@^1.0.1: version "1.0.1" @@ -5771,7 +5399,7 @@ is-extendable@^1.0.1: is-extglob@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" @@ -5779,19 +5407,19 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: is-finite@^1.0.0: version "1.0.2" - resolved "http://r.cnpmjs.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" is-generator-fn@^1.0.0: version "1.0.0" @@ -5799,7 +5427,7 @@ is-generator-fn@^1.0.0: is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" - resolved "http://r.cnpmjs.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" dependencies: is-extglob "^1.0.0" @@ -5810,8 +5438,8 @@ is-glob@^3.1.0: is-extglob "^2.1.0" is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" dependencies: is-extglob "^2.1.1" @@ -5824,23 +5452,27 @@ is-installed-globally@0.1.0: is-lower-case@^1.1.0: version "1.1.3" - resolved "http://r.cnpmjs.org/is-lower-case/download/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + resolved "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" dependencies: lower-case "^1.1.0" +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + is-number-object@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" is-number@^2.1.0: version "2.1.0" - resolved "http://r.cnpmjs.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" dependencies: kind-of "^3.0.2" @@ -5850,7 +5482,7 @@ is-number@^4.0.0: is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" is-observable@^1.1.0: version "1.1.0" @@ -5858,25 +5490,19 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - is-path-cwd@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + version "1.0.1" + resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/is-path-inside/download/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + version "1.0.1" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" dependencies: path-is-inside "^1.0.1" @@ -5884,27 +5510,27 @@ is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "http://r.cnpmjs.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" dependencies: isobject "^3.0.1" is-posix-bracket@^0.1.0: version "0.1.1" - resolved "http://r.cnpmjs.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" is-primitive@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" is-promise@^2.1.0: version "2.1.0" - resolved "http://r.cnpmjs.org/is-promise/download/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-regex@^1.0.4: version "1.0.4" - resolved "http://r.cnpmjs.org/is-regex/download/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" dependencies: has "^1.0.1" @@ -5912,11 +5538,11 @@ is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" -is-relative@^0.2.1: - version "0.2.1" - resolved "http://r.cnpmjs.org/is-relative/download/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" dependencies: - is-unc-path "^0.1.1" + is-unc-path "^1.0.0" is-resolvable@^1.1.0: version "1.1.0" @@ -5932,11 +5558,13 @@ is-string@^1.0.4: is-subset@^0.1.1: version "0.1.1" - resolved "http://r.cnpmjs.org/is-subset/download/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + resolved "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" -is-symbol@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/is-symbol/download/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + dependencies: + has-symbols "^1.0.0" is-text-path@^1.0.0: version "1.0.1" @@ -5946,57 +5574,57 @@ is-text-path@^1.0.0: is-typedarray@~1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" -is-unc-path@^0.1.1: - version "0.1.2" - resolved "http://r.cnpmjs.org/is-unc-path/download/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" dependencies: - unc-path-regex "^0.1.0" + unc-path-regex "^0.1.2" is-upper-case@^1.1.0: version "1.1.2" - resolved "http://r.cnpmjs.org/is-upper-case/download/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + resolved "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" dependencies: upper-case "^1.1.0" is-utf8@^0.2.0: version "0.2.1" - resolved "http://r.cnpmjs.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" is-windows@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/is-windows/download/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" -is-windows@^1.0.0: - version "1.0.1" - resolved "http://r.cnpmjs.org/is-windows/download/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" - -is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + isarray@0.0.1: version "0.0.1" - resolved "http://r.cnpmjs.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isexe@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isobject@^2.0.0: version "2.1.0" - resolved "http://r.cnpmjs.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "http://r.cnpmjs.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1: version "2.2.1" @@ -6007,7 +5635,7 @@ isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1: isstream@~0.1.2: version "0.1.2" - resolved "http://r.cnpmjs.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul-api@^1.3.1: version "1.3.7" @@ -6083,8 +5711,8 @@ jest-changed-files@^23.4.2: throat "^4.0.0" jest-cli@^23.4.2: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-23.5.0.tgz#d316b8e34a38a610a1efc4f0403d8ef8a55e4492" + version "23.6.0" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -6098,18 +5726,18 @@ jest-cli@^23.4.2: istanbul-lib-instrument "^1.10.1" istanbul-lib-source-maps "^1.2.4" jest-changed-files "^23.4.2" - jest-config "^23.5.0" + jest-config "^23.6.0" jest-environment-jsdom "^23.4.0" jest-get-type "^22.1.0" - jest-haste-map "^23.5.0" + jest-haste-map "^23.6.0" jest-message-util "^23.4.0" jest-regex-util "^23.3.0" - jest-resolve-dependencies "^23.5.0" - jest-runner "^23.5.0" - jest-runtime "^23.5.0" - jest-snapshot "^23.5.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" jest-util "^23.4.0" - jest-validate "^23.5.0" + jest-validate "^23.6.0" jest-watcher "^23.4.0" jest-worker "^23.2.0" micromatch "^2.3.11" @@ -6123,37 +5751,37 @@ jest-cli@^23.4.2: which "^1.2.12" yargs "^11.0.0" -jest-config@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-23.5.0.tgz#3770fba03f7507ee15f3b8867c742e48f31a9773" +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" dependencies: babel-core "^6.0.0" - babel-jest "^23.4.2" + babel-jest "^23.6.0" chalk "^2.0.1" glob "^7.1.1" jest-environment-jsdom "^23.4.0" jest-environment-node "^23.4.0" jest-get-type "^22.1.0" - jest-jasmine2 "^23.5.0" + jest-jasmine2 "^23.6.0" jest-regex-util "^23.3.0" - jest-resolve "^23.5.0" + jest-resolve "^23.6.0" jest-util "^23.4.0" - jest-validate "^23.5.0" + jest-validate "^23.6.0" micromatch "^2.3.11" - pretty-format "^23.5.0" + pretty-format "^23.6.0" -jest-diff@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-23.5.0.tgz#250651a433dd0050290a07642946cc9baaf06fba" +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" dependencies: chalk "^2.0.1" diff "^3.2.0" jest-get-type "^22.1.0" - pretty-format "^23.5.0" + pretty-format "^23.6.0" jest-docblock@^21.0.0: version "21.2.0" - resolved "http://r.cnpmjs.org/jest-docblock/download/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" jest-docblock@^23.2.0: version "23.2.0" @@ -6161,12 +5789,12 @@ jest-docblock@^23.2.0: dependencies: detect-newline "^2.1.0" -jest-each@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-23.5.0.tgz#77f7e2afe6132a80954b920006e78239862b10ba" +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" dependencies: chalk "^2.0.1" - pretty-format "^23.5.0" + pretty-format "^23.6.0" jest-environment-jsdom@^23.4.0: version "23.4.0" @@ -6184,12 +5812,12 @@ jest-environment-node@^23.4.0: jest-util "^23.4.0" jest-get-type@^22.1.0: - version "22.1.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9" + version "22.4.3" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" -jest-haste-map@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.5.0.tgz#d4ca618188bd38caa6cb20349ce6610e194a8065" +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" @@ -6200,36 +5828,36 @@ jest-haste-map@^23.5.0: micromatch "^2.3.11" sane "^2.0.0" -jest-jasmine2@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.5.0.tgz#05fe7f1788e650eeb5a03929e6461ea2e9f3db53" +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" dependencies: babel-traverse "^6.0.0" chalk "^2.0.1" co "^4.6.0" - expect "^23.5.0" + expect "^23.6.0" is-generator-fn "^1.0.0" - jest-diff "^23.5.0" - jest-each "^23.5.0" - jest-matcher-utils "^23.5.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" jest-message-util "^23.4.0" - jest-snapshot "^23.5.0" + jest-snapshot "^23.6.0" jest-util "^23.4.0" - pretty-format "^23.5.0" + pretty-format "^23.6.0" -jest-leak-detector@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.5.0.tgz#14ac2a785bd625160a2ea968fd5d98b7dcea3e64" +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" dependencies: - pretty-format "^23.5.0" + pretty-format "^23.6.0" -jest-matcher-utils@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.5.0.tgz#0e2ea67744cab78c9ab15011c4d888bdd3e49e2a" +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" - pretty-format "^23.5.0" + pretty-format "^23.6.0" jest-message-util@^23.4.0: version "23.4.0" @@ -6249,42 +5877,42 @@ jest-regex-util@^23.3.0: version "23.3.0" resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" -jest-resolve-dependencies@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.5.0.tgz#10c4d135beb9d2256de1fedc7094916c3ad74af7" +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" dependencies: jest-regex-util "^23.3.0" - jest-snapshot "^23.5.0" + jest-snapshot "^23.6.0" -jest-resolve@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.5.0.tgz#3b8e7f67e84598f0caf63d1530bd8534a189d0e6" +jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" dependencies: browser-resolve "^1.11.3" chalk "^2.0.1" realpath-native "^1.0.0" -jest-runner@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-23.5.0.tgz#570f7a044da91648b5bb9b6baacdd511076c71d7" +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" dependencies: exit "^0.1.2" graceful-fs "^4.1.11" - jest-config "^23.5.0" + jest-config "^23.6.0" jest-docblock "^23.2.0" - jest-haste-map "^23.5.0" - jest-jasmine2 "^23.5.0" - jest-leak-detector "^23.5.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" jest-message-util "^23.4.0" - jest-runtime "^23.5.0" + jest-runtime "^23.6.0" jest-util "^23.4.0" jest-worker "^23.2.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.5.0.tgz#eb503525a196dc32f2f9974e3482d26bdf7b63ce" +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" dependencies: babel-core "^6.0.0" babel-plugin-istanbul "^4.1.6" @@ -6293,14 +5921,14 @@ jest-runtime@^23.5.0: exit "^0.1.2" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.11" - jest-config "^23.5.0" - jest-haste-map "^23.5.0" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" jest-message-util "^23.4.0" jest-regex-util "^23.3.0" - jest-resolve "^23.5.0" - jest-snapshot "^23.5.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" jest-util "^23.4.0" - jest-validate "^23.5.0" + jest-validate "^23.6.0" micromatch "^2.3.11" realpath-native "^1.0.0" slash "^1.0.0" @@ -6312,19 +5940,19 @@ jest-serializer@^23.0.1: version "23.0.1" resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" -jest-snapshot@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.5.0.tgz#cc368ebd8513e1175e2a7277f37a801b7358ae79" +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" dependencies: babel-types "^6.0.0" chalk "^2.0.1" - jest-diff "^23.5.0" - jest-matcher-utils "^23.5.0" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" jest-message-util "^23.4.0" - jest-resolve "^23.5.0" + jest-resolve "^23.6.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^23.5.0" + pretty-format "^23.6.0" semver "^5.5.0" jest-util@^23.4.0: @@ -6340,14 +5968,14 @@ jest-util@^23.4.0: slash "^1.0.0" source-map "^0.6.0" -jest-validate@^23.0.0, jest-validate@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-23.5.0.tgz#f5df8f761cf43155e1b2e21d6e9de8a2852d0231" +jest-validate@^23.0.0, jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" leven "^2.1.0" - pretty-format "^23.5.0" + pretty-format "^23.6.0" jest-watcher@^23.4.0: version "23.4.0" @@ -6375,126 +6003,106 @@ js-cookie@^2.2.0: resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.0.tgz#1b2c279a6eece380a12168b92485265b35b1effb" js-levenshtein@^1.1.3: - version "1.1.4" - resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + version "1.1.6" + resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" -js-yaml@^3.11.0, js-yaml@^3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.7.0: - version "3.9.1" - resolved "http://r.cnpmjs.org/js-yaml/download/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.9.0: - version "3.10.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" +js-yaml@^3.11.0, js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.7.0: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" dependencies: argparse "^1.0.7" esprima "^4.0.0" jsbn@~0.1.0: version "0.1.1" - resolved "http://r.cnpmjs.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jsdom@^11.5.1: - version "11.5.1" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.5.1.tgz#5df753b8d0bca20142ce21f4f6c039f99a992929" + version "11.12.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" dependencies: - abab "^1.0.3" - acorn "^5.1.2" - acorn-globals "^4.0.0" + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" array-equal "^1.0.0" - browser-process-hrtime "^0.1.2" - content-type-parser "^1.0.1" cssom ">= 0.3.2 < 0.4.0" - cssstyle ">= 0.2.37 < 0.3.0" - domexception "^1.0.0" - escodegen "^1.9.0" - html-encoding-sniffer "^1.0.1" - left-pad "^1.2.0" - nwmatcher "^1.4.3" - parse5 "^3.0.2" - pn "^1.0.0" - request "^2.83.0" - request-promise-native "^1.0.3" - sax "^1.2.1" - symbol-tree "^3.2.1" - tough-cookie "^2.3.3" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.1" - whatwg-url "^6.3.0" - xml-name-validator "^2.0.1" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" jsesc@^1.3.0: version "1.3.0" - resolved "http://r.cnpmjs.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" jsesc@^2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" jsesc@~0.5.0: version "0.5.0" - resolved "http://r.cnpmjs.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-parse-better-errors@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "http://r.cnpmjs.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" json-schema@0.2.3: version "0.2.3" - resolved "http://r.cnpmjs.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" - resolved "http://r.cnpmjs.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json2mq@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/json2mq/download/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + resolved "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" dependencies: string-convert "^0.2.0" json5@^0.5.0, json5@^0.5.1: version "0.5.1" - resolved "http://r.cnpmjs.org/json5/download/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + dependencies: + minimist "^1.2.0" json5@^2.1.0: version "2.1.0" @@ -6504,19 +6112,19 @@ json5@^2.1.0: jsonfile@^2.1.0: version "2.4.0" - resolved "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" optionalDependencies: graceful-fs "^4.1.6" -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: version "0.0.0" - resolved "http://r.cnpmjs.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsonparse@^1.2.0: version "1.3.1" @@ -6524,36 +6132,33 @@ jsonparse@^1.2.0: jsprim@^1.2.2: version "1.4.1" - resolved "http://r.cnpmjs.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" dependencies: assert-plus "1.0.0" extsprintf "1.3.0" json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" +jsx-ast-utils@^2.1.0, jsx-ast-utils@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" dependencies: array-includes "^3.0.3" + object.assign "^4.1.0" junk@^1.0.1: version "1.0.3" - resolved "http://r.cnpmjs.org/junk/download/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592" - -keypress@^0.2.1: - version "0.2.1" - resolved "http://r.cnpmjs.org/keypress/download/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77" + resolved "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "http://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "http://r.cnpmjs.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" dependencies: is-buffer "^1.1.5" @@ -6586,13 +6191,9 @@ lazy-ass@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" -lazy-cache@^1.0.3: - version "1.0.4" - resolved "http://r.cnpmjs.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - lcid@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" dependencies: invert-kv "^1.0.0" @@ -6600,38 +6201,41 @@ lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -left-pad@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" leven@^2.1.0: version "2.1.0" - resolved "http://r.cnpmjs.org/leven/download/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" levn@^0.3.0, levn@~0.3.0: version "0.3.0" - resolved "http://r.cnpmjs.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" liftoff@^2.2.0: - version "2.3.0" - resolved "http://r.cnpmjs.org/liftoff/download/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + version "2.5.0" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" dependencies: extend "^3.0.0" - findup-sync "^0.4.2" + findup-sync "^2.0.0" fined "^1.0.1" - flagged-respawn "^0.3.2" - lodash.isplainobject "^4.0.4" - lodash.isstring "^4.0.1" - lodash.mapvalues "^4.4.0" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" rechoir "^0.6.2" resolve "^1.1.7" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + linkify-it@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz#c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db" + version "2.2.0" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" dependencies: uc.micro "^1.0.1" @@ -6665,7 +6269,7 @@ lint-staged@7.2.0: listr-silent-renderer@^1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + resolved "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" listr-update-renderer@^0.2.0: version "0.2.0" @@ -6680,9 +6284,9 @@ listr-update-renderer@^0.2.0: log-update "^1.0.2" strip-ansi "^3.0.1" -listr-update-renderer@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" @@ -6690,18 +6294,27 @@ listr-update-renderer@^0.4.0: figures "^1.7.0" indent-string "^3.0.0" log-symbols "^1.0.2" - log-update "^1.0.2" + log-update "^2.3.0" strip-ansi "^3.0.1" listr-verbose-renderer@^0.4.0: - version "0.4.0" - resolved "http://r.cnpmjs.org/listr-verbose-renderer/download/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" + version "0.4.1" + resolved "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" dependencies: chalk "^1.1.3" cli-cursor "^1.0.2" date-fns "^1.27.2" figures "^1.7.0" +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + listr@0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" @@ -6724,22 +6337,22 @@ listr@0.12.0: strip-ansi "^3.0.1" listr@^0.14.1: - version "0.14.2" - resolved "https://registry.npmjs.org/listr/-/listr-0.14.2.tgz#cbe44b021100a15376addfc2d79349ee430bfe14" + version "0.14.3" + resolved "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" dependencies: "@samverschueren/stream-to-observable" "^0.3.0" is-observable "^1.1.0" is-promise "^2.1.0" is-stream "^1.1.0" listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.4.0" - listr-verbose-renderer "^0.4.0" - p-map "^1.1.1" - rxjs "^6.1.0" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" load-json-file@^1.0.0: version "1.1.0" - resolved "http://r.cnpmjs.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -6749,7 +6362,7 @@ load-json-file@^1.0.0: load-json-file@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -6766,20 +6379,28 @@ load-json-file@^4.0.0: strip-bom "^3.0.0" loader-runner@^2.3.0: - version "2.3.0" - resolved "http://r.cnpmjs.org/loader-runner/download/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + version "2.4.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" -loader-utils@1.1.0, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/loader-utils/download/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -6791,29 +6412,31 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + dependencies: + p-locate "^4.1.0" + lodash-es@^4.17.11: - version "4.17.11" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" + version "4.17.15" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" lodash._getnative@^3.0.0: version "3.9.1" - resolved "http://r.cnpmjs.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" -lodash._reinterpolate@~3.0.0: +lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" -lodash.camelcase@4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - lodash.curry@^4.0.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" lodash.debounce@^4.0.0, lodash.debounce@^4.0.8: version "4.0.8" - resolved "http://r.cnpmjs.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" lodash.escaperegexp@^4.1.2: version "4.1.2" @@ -6821,7 +6444,7 @@ lodash.escaperegexp@^4.1.2: lodash.flattendeep@^4.4.0: version "4.4.0" - resolved "http://r.cnpmjs.org/lodash.flattendeep/download/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" lodash.flow@^3.3.0: version "3.5.0" @@ -6829,31 +6452,19 @@ lodash.flow@^3.3.0: lodash.get@^4.4.2: version "4.4.2" - resolved "http://r.cnpmjs.org/lodash.get/download/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" lodash.isarguments@^3.0.0: version "3.1.0" - resolved "http://r.cnpmjs.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" lodash.isarray@^3.0.0: version "3.0.4" - resolved "http://r.cnpmjs.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.isplainobject@^4.0.4: - version "4.0.6" - resolved "http://r.cnpmjs.org/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "http://r.cnpmjs.org/lodash.isstring/download/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - -lodash.kebabcase@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" lodash.keys@^3.1.2: version "3.1.2" - resolved "http://r.cnpmjs.org/lodash.keys/download/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" @@ -6863,83 +6474,43 @@ lodash.map@^4.5.1: version "4.6.0" resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" -lodash.mapvalues@^4.4.0: - version "4.6.0" - resolved "http://r.cnpmjs.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" - -lodash.merge@4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" - -lodash.mergewith@4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" - -lodash.omit@4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" -lodash.pick@4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - -lodash.snakecase@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" -lodash.startcase@4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - -lodash.template@^4.0.2: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" +lodash.template@^4.0.2, lodash.template@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" dependencies: - lodash._reinterpolate "~3.0.0" + lodash._reinterpolate "^3.0.0" lodash.templatesettings "^4.0.0" lodash.templatesettings@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" dependencies: - lodash._reinterpolate "~3.0.0" + lodash._reinterpolate "^3.0.0" lodash.throttle@^4.0.0: version "4.1.1" - resolved "http://r.cnpmjs.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" -lodash.topairs@4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.topairs/-/lodash.topairs-4.3.0.tgz#3b6deaa37d60fb116713c46c5f17ea190ec48d64" - -lodash.upperfirst@4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" +lodash@4.17.11: + version "4.17.11" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" -lodash@4.17.10, lodash@^4.17.10: - version "4.17.10" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" +lodash@4.17.15, lodash@^4.15.0, lodash@^4.16.5, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" -lodash@4.17.5, lodash@^4.17.5: +lodash@4.17.5: version "4.17.5" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" -lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.5, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.4" - resolved "http://r.cnpmjs.org/lodash/download/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -lodash@^4.17.11: - version "4.17.11" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - log-driver@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" @@ -6952,13 +6523,13 @@ log-symbols@2.2.0, log-symbols@^2.2.0: log-symbols@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/log-symbols/download/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" dependencies: chalk "^1.0.0" log-update@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/log-update/download/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + resolved "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" dependencies: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" @@ -6973,13 +6544,13 @@ log-update@^2.3.0: longest@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: - js-tokens "^3.0.0" + js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" @@ -6990,43 +6561,55 @@ loud-rejection@^1.0.0: lower-case-first@^1.0.0: version "1.0.2" - resolved "http://r.cnpmjs.org/lower-case-first/download/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + resolved "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" dependencies: lower-case "^1.1.2" lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: version "1.1.4" - resolved "http://r.cnpmjs.org/lower-case/download/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - -lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.1" - resolved "http://r.cnpmjs.org/lru-cache/download/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lru-cache@^4.1.3: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.3: version "4.1.5" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + dependencies: + yallist "^3.0.2" + make-dir@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/make-dir/download/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" dependencies: - pify "^2.3.0" + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + dependencies: + kind-of "^6.0.2" makeerror@1.0.x: version "1.0.11" - resolved "http://r.cnpmjs.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" dependencies: tmpl "1.0.x" map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" - resolved "http://r.cnpmjs.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" @@ -7036,10 +6619,6 @@ map-obj@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" -map-stream@~0.1.0: - version "0.1.0" - resolved "http://r.cnpmjs.org/map-stream/download/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -7051,8 +6630,8 @@ markdown-link@^0.1.1: resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" masonry-layout@^4.2.0: - version "4.2.0" - resolved "http://r.cnpmjs.org/masonry-layout/download/masonry-layout-4.2.0.tgz#43835c6b6e0d72eff2c31a118c8000cccc4ab965" + version "4.2.2" + resolved "https://registry.npmjs.org/masonry-layout/-/masonry-layout-4.2.2.tgz#d57b44af13e601bfcdc423f1dd8348b5524de348" dependencies: get-size "^2.0.2" outlayer "^2.1.0" @@ -7061,9 +6640,13 @@ mastani-codehighlight@0.0.7: version "0.0.7" resolved "https://registry.npmjs.org/mastani-codehighlight/-/mastani-codehighlight-0.0.7.tgz#d264898ca5e3a2ca2a8709b6a20d52fffdf4776d" +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + maximatch@^0.1.0: version "0.1.0" - resolved "http://r.cnpmjs.org/maximatch/download/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2" + resolved "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2" dependencies: array-differ "^1.0.0" array-union "^1.0.1" @@ -7071,38 +6654,37 @@ maximatch@^0.1.0: minimatch "^3.0.0" md5.js@^1.3.4: - version "1.3.4" - resolved "http://r.cnpmjs.org/md5.js/download/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" dependencies: hash-base "^3.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" media-typer@0.3.0: version "0.3.0" - resolved "http://r.cnpmjs.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" mem@^1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/mem/download/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + resolved "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" dependencies: mimic-fn "^1.0.0" -memoize-one@^4.0.0: +memoize-one@^4.0.0, memoize-one@^4.0.2: version "4.1.0" resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-4.1.0.tgz#a2387c58c03fff27ca390c31b764a79addf3f906" memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" - resolved "http://r.cnpmjs.org/memory-fs/download/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: errno "^0.1.3" readable-stream "^2.0.1" -memory-streams@^0.1.2: - version "0.1.2" - resolved "http://r.cnpmjs.org/memory-streams/download/memory-streams-0.1.2.tgz#273ff777ab60fec599b116355255282cca2c50c2" - dependencies: - readable-stream "~1.0.2" +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" meow@5.0.0: version "5.0.0" @@ -7149,7 +6731,7 @@ meow@^4.0.0: merge-descriptors@1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" merge-stream@^1.0.1: version "1.0.1" @@ -7157,21 +6739,21 @@ merge-stream@^1.0.1: dependencies: readable-stream "^2.0.1" -merge2@^1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" +merge2@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" -merge@^1.1.3, merge@^1.2.0: - version "1.2.0" - resolved "http://r.cnpmjs.org/merge/download/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" methods@~1.1.2: version "1.1.2" - resolved "http://r.cnpmjs.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: +micromatch@^2.3.11, micromatch@^2.3.7: version "2.3.11" - resolved "http://r.cnpmjs.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -7187,7 +6769,7 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -7205,92 +6787,40 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^3.1.8: - version "3.1.9" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz#15dc93175ae39e52e93087847096effc73efcf89" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - miller-rabin@^4.0.0: - version "4.0.0" - resolved "http://r.cnpmjs.org/miller-rabin/download/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.29.0: - version "1.29.0" - resolved "http://r.cnpmjs.org/mime-db/download/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" - -mime-db@~1.30.0: - version "1.30.0" - resolved "http://r.cnpmjs.org/mime-db/download/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-db@~1.36.0: - version "1.36.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" - -mime-db@~1.37.0: - version "1.37.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.16" - resolved "http://r.cnpmjs.org/mime-types/download/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" - dependencies: - mime-db "~1.29.0" - -mime-types@~2.1.16, mime-types@~2.1.17: - version "2.1.17" - resolved "http://r.cnpmjs.org/mime-types/download/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" - dependencies: - mime-db "~1.30.0" - -mime-types@~2.1.18: - version "2.1.21" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" - dependencies: - mime-db "~1.37.0" +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" -mime-types@~2.1.19: - version "2.1.20" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" dependencies: - mime-db "~1.36.0" + mime-db "1.40.0" mime@1.4.1: version "1.4.1" - resolved "http://r.cnpmjs.org/mime/download/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" mime@^2.3.1: - version "2.4.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" + version "2.4.4" + resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" mimic-fn@^1.0.0: - version "1.1.0" - resolved "http://r.cnpmjs.org/mimic-fn/download/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" - -mini-store@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/mini-store/-/mini-store-1.0.4.tgz#a540fbfdbddd0415daf17a8b0cc8290c9f7d8bd6" - dependencies: - hoist-non-react-statics "^2.3.1" - prop-types "^15.6.0" - shallowequal "^1.0.2" + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" -mini-store@^1.1.0: +mini-store@^1.0.2, mini-store@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/mini-store/-/mini-store-1.1.2.tgz#cc150e0878e080ca58219d47fccefefe2c9aea3e" dependencies: @@ -7299,17 +6829,17 @@ mini-store@^1.1.0: react-lifecycles-compat "^3.0.4" shallowequal "^1.0.2" -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/minimalistic-assert/download/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" - resolved "http://r.cnpmjs.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" @@ -7320,24 +6850,28 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" - resolved "http://r.cnpmjs.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" - resolved "http://r.cnpmjs.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" -minipass@^2.2.1, minipass@^2.3.3: - version "2.3.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" +minipass@^2.2.1, minipass@^2.3.5: + version "2.3.5" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" +minizlib@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" dependencies: minipass "^2.2.1" @@ -7372,31 +6906,29 @@ mississippi@^3.0.0: through2 "^2.0.0" mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" dependencies: for-in "^1.0.2" is-extendable "^1.0.1" mkdirp-then@1.2.0: version "1.2.0" - resolved "http://r.cnpmjs.org/mkdirp-then/download/mkdirp-then-1.2.0.tgz#a492c879ca4d873f5ee45008f8f55fd0150de3c5" + resolved "https://registry.npmjs.org/mkdirp-then/-/mkdirp-then-1.2.0.tgz#a492c879ca4d873f5ee45008f8f55fd0150de3c5" dependencies: any-promise "^1.1.0" mkdirp "^0.5.0" -mkdirp@0.5.0: - version "0.5.0" - resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" - dependencies: - minimist "0.0.8" - -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" - resolved "http://r.cnpmjs.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" +mobx-react-lite@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-1.4.1.tgz#7307a45901f97f9a07ebed32b654235507644e1a" + mobx-react@5.3.6: version "5.3.6" resolved "https://registry.npmjs.org/mobx-react/-/mobx-react-5.3.6.tgz#0bead0173aed7d12ace4981b53c28db4d61de9ef" @@ -7417,20 +6949,16 @@ modify-values@^1.0.0: resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" module-alias@^2.0.1: - version "2.0.1" - resolved "http://r.cnpmjs.org/module-alias/download/module-alias-2.0.1.tgz#7562c0fe839f195ac809292624634ba7c453aecb" - -moment@2.x: - version "2.19.1" - resolved "http://r.cnpmjs.org/moment/download/moment-2.19.1.tgz#56da1a2d1cbf01d38b7e1afc31c10bcfa1929167" + version "2.2.1" + resolved "https://registry.npmjs.org/module-alias/-/module-alias-2.2.1.tgz#553aea9dc7f99cd45fd75e34a574960dc46550da" -moment@^2.19.3: - version "2.20.1" - resolved "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" +moment@2.24.0, moment@2.x, moment@^2.19.3, moment@^2.22.1: + version "2.24.0" + resolved "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" -moment@^2.22.1: - version "2.23.0" - resolved "https://registry.npmjs.org/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" +moo@^0.4.3: + version "0.4.3" + resolved "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" move-concurrently@^1.0.1: version "1.0.1" @@ -7443,44 +6971,60 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mri@^1.1.0: + version "1.1.4" + resolved "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" + ms@2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -ms@^2.1.1: +ms@2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + mute-stream@0.0.6: version "0.0.6" - resolved "http://r.cnpmjs.org/mute-stream/download/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" mute-stream@0.0.7: version "0.0.7" - resolved "http://r.cnpmjs.org/mute-stream/download/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.3.0: - version "2.6.2" - resolved "http://r.cnpmjs.org/nan/download/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.9.2: - version "2.11.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099" +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" nanoid@1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/nanoid/-/nanoid-1.2.1.tgz#922bf6c10e35f7b208993768dad643577c907adf" +nanoid@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-2.0.3.tgz#dde999e173bc9d7bd2ee2746b89909ade98e075e" + nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" define-property "^2.0.2" extend-shallow "^3.0.2" fragment-cache "^0.2.1" - is-odd "^2.0.0" is-windows "^1.0.2" kind-of "^6.0.2" object.pick "^1.3.0" @@ -7490,31 +7034,33 @@ nanomatch@^1.2.9: natural-compare@^1.4.0: version "1.4.0" - resolved "http://r.cnpmjs.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" nearley@^2.7.10: - version "2.11.0" - resolved "http://r.cnpmjs.org/nearley/download/nearley-2.11.0.tgz#5e626c79a6cd2f6ab9e7e5d5805e7668967757ae" + version "2.18.0" + resolved "https://registry.npmjs.org/nearley/-/nearley-2.18.0.tgz#a9193612dd6d528a2e47e743b1dc694cfe105223" dependencies: - nomnom "~1.6.2" + commander "^2.19.0" + moo "^0.4.3" railroad-diagrams "^1.0.0" - randexp "^0.4.2" + randexp "0.4.6" + semver "^5.4.1" needle@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" + version "2.4.0" + resolved "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" dependencies: - debug "^2.1.2" + debug "^3.2.6" iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.1: - version "0.6.1" - resolved "http://r.cnpmjs.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" -neo-async@^2.5.0: - version "2.6.0" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" +neo-async@^2.5.0, neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" next@7.0.2: version "7.0.2" @@ -7575,8 +7121,8 @@ next@7.0.2: write-file-webpack-plugin "4.3.2" nice-try@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" no-case@^2.2.0, no-case@^2.3.2: version "2.3.2" @@ -7584,20 +7130,20 @@ no-case@^2.2.0, no-case@^2.3.2: dependencies: lower-case "^1.1.1" -nocache@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz#202b48021a0c4cbde2df80de15a17443c8b43980" +nocache@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" node-fetch@1.6.3: version "1.6.3" - resolved "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" dependencies: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.0.0.tgz#982bba43ecd4f2922a29cc186a6bbb0bb73fcba6" +node-fetch@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" node-fetch@^1.0.1: version "1.7.3" @@ -7608,42 +7154,43 @@ node-fetch@^1.0.1: node-int64@^0.4.0: version "0.4.0" - resolved "http://r.cnpmjs.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" node-libs-browser@^2.0.0: - version "2.0.0" - resolved "http://r.cnpmjs.org/node-libs-browser/download/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + version "2.2.1" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" dependencies: assert "^1.1.1" - browserify-zlib "^0.1.4" + browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" - path-browserify "0.0.0" - process "^0.11.0" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" - readable-stream "^2.0.5" + readable-stream "^2.3.3" stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" + util "^0.11.0" + vm-browserify "^1.0.1" node-notifier@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + version "5.4.0" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" dependencies: growly "^1.3.0" - semver "^5.4.1" + is-wsl "^1.1.0" + semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" @@ -7664,9 +7211,9 @@ node-plop@=0.13.0: pify "^3.0.0" resolve "^1.2.0" -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -7679,99 +7226,78 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-pre-gyp@^0.6.36: - version "0.6.36" - resolved "http://r.cnpmjs.org/node-pre-gyp/download/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" - dependencies: - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "^2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -node-releases@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.1.tgz#8fff8aea1cfcad1fb4205f805149054fbf73cafd" +node-releases@^1.1.25: + version "1.1.26" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.26.tgz#f30563edc5c7dc20cf524cc8652ffa7be0762937" dependencies: semver "^5.3.0" -nomnom@~1.6.2: - version "1.6.2" - resolved "http://r.cnpmjs.org/nomnom/download/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" - dependencies: - colors "0.5.x" - underscore "~1.4.4" - nopt@^4.0.1: version "4.0.1" - resolved "http://r.cnpmjs.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: - version "2.4.0" - resolved "http://r.cnpmjs.org/normalize-package-data/download/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" +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.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" dependencies: hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" + resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/normalize-path/download/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" - resolved "http://r.cnpmjs.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + npm-bundled@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + version "1.0.6" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + version "1.4.4" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" npm-path@^2.0.2: - version "2.0.3" - resolved "http://r.cnpmjs.org/npm-path/download/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" + version "2.0.4" + resolved "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" dependencies: which "^1.2.10" npm-run-all@^4.1.1: - version "4.1.1" - resolved "http://r.cnpmjs.org/npm-run-all/download/npm-run-all-4.1.1.tgz#3095cf3f3cacf57fcb662b210ab10c609af6ddbb" + version "4.1.5" + resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" dependencies: - ansi-styles "^3.2.0" - chalk "^2.1.0" - cross-spawn "^5.1.0" - memory-streams "^0.1.2" + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" minimatch "^3.0.4" - ps-tree "^1.1.0" - read-pkg "^2.0.0" + pidtree "^0.3.0" + read-pkg "^3.0.0" shell-quote "^1.6.1" string.prototype.padend "^3.0.0" npm-run-path@^2.0.0: version "2.0.2" - resolved "http://r.cnpmjs.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" dependencies: path-key "^2.0.0" npm-which@^3.0.1: version "3.0.1" - resolved "http://r.cnpmjs.org/npm-which/download/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + resolved "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" dependencies: commander "^2.9.0" npm-path "^2.0.2" @@ -7779,7 +7305,7 @@ npm-which@^3.0.1: npmlog@^4.0.2: version "4.1.2" - resolved "http://r.cnpmjs.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -7787,8 +7313,8 @@ npmlog@^4.0.2: set-blocking "~2.0.0" nth-check@~1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/nth-check/download/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" dependencies: boolbase "~1.0.0" @@ -7798,15 +7324,11 @@ null-check@^1.0.0: number-is-nan@^1.0.0: version "1.0.1" - resolved "http://r.cnpmjs.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -nwmatcher@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" - -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "http://r.cnpmjs.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" +nwsapi@^2.0.7: + version "2.1.4" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" oauth-sign@~0.9.0: version "0.9.0" @@ -7814,7 +7336,7 @@ oauth-sign@~0.9.0: object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "http://r.cnpmjs.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-copy@^0.1.0: version "0.1.0" @@ -7825,16 +7347,16 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.5.0.tgz#9d876c11e40f485c79215670281b767488f9bfe3" + version "1.6.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" object-is@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/object-is/download/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" -object-keys@^1.0.10, object-keys@^1.0.11, object-keys@^1.0.8: - version "1.0.11" - resolved "http://r.cnpmjs.org/object-keys/download/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" object-visit@^1.0.0: version "1.0.1" @@ -7842,15 +7364,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4: - version "4.0.4" - resolved "http://r.cnpmjs.org/object.assign/download/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.0" - object-keys "^1.0.10" - -object.assign@^4.1.0: +object.assign@^4.0.4, object.assign@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" dependencies: @@ -7861,20 +7375,29 @@ object.assign@^4.1.0: object.defaults@^1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/object.defaults/download/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" dependencies: array-each "^1.0.1" array-slice "^1.0.0" for-own "^1.0.0" isobject "^3.0.0" -object.entries@^1.0.4: - version "1.0.4" - resolved "http://r.cnpmjs.org/object.entries/download/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" +object.entries@^1.0.4, object.entries@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" + 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.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" dependencies: define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" + es-abstract "^1.11.0" + function-bind "^1.1.1" has "^1.0.1" object.getownpropertydescriptors@^2.0.3: @@ -7884,53 +7407,60 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + object.omit@^2.0.0: version "2.0.1" - resolved "http://r.cnpmjs.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + resolved "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" dependencies: for-own "^0.1.4" is-extendable "^0.1.1" object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" - resolved "http://r.cnpmjs.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" dependencies: isobject "^3.0.1" -object.values@^1.0.4: - version "1.0.4" - resolved "http://r.cnpmjs.org/object.values/download/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" +object.values@^1.0.4, object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" omit.js@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/omit.js/download/omit.js-1.0.0.tgz#e013cb86a7517b9cf6f7cfb0ddb4297256a99288" + version "1.0.2" + resolved "https://registry.npmjs.org/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" dependencies: babel-runtime "^6.23.0" on-finished@~2.3.0: version "2.3.0" - resolved "http://r.cnpmjs.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "http://r.cnpmjs.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" - resolved "http://r.cnpmjs.org/onetime/download/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" onetime@^2.0.0: version "2.0.1" - resolved "http://r.cnpmjs.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" dependencies: mimic-fn "^1.0.0" @@ -7957,21 +7487,21 @@ opn@4.0.2: pinkie-promise "^2.0.0" optimism@^0.6.6: - version "0.6.8" - resolved "https://registry.npmjs.org/optimism/-/optimism-0.6.8.tgz#0780b546da8cd0a72e5207e0c3706c990c8673a6" + version "0.6.9" + resolved "https://registry.npmjs.org/optimism/-/optimism-0.6.9.tgz#19258ff8b3be0cea29ac35f06bff818e026e30bb" dependencies: immutable-tuple "^0.4.9" optimist@^0.6.1: version "0.6.1" - resolved "http://r.cnpmjs.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: minimist "~0.0.1" wordwrap "~0.0.2" optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" - resolved "http://r.cnpmjs.org/optionator/download/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -7982,24 +7512,24 @@ optionator@^0.8.1, optionator@^0.8.2: ora@^0.2.3: version "0.2.3" - resolved "http://r.cnpmjs.org/ora/download/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + resolved "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" dependencies: chalk "^1.1.1" cli-cursor "^1.0.2" cli-spinners "^0.1.2" object-assign "^4.0.1" -os-browserify@^0.2.0: - version "0.2.1" - resolved "http://r.cnpmjs.org/os-browserify/download/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" - resolved "http://r.cnpmjs.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" os-locale@^2.0.0: version "2.1.0" - resolved "http://r.cnpmjs.org/os-locale/download/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" dependencies: execa "^0.7.0" lcid "^1.0.0" @@ -8007,22 +7537,22 @@ os-locale@^2.0.0: os-shim@^0.1.2: version "0.1.3" - resolved "http://r.cnpmjs.org/os-shim/download/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + resolved "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" osenv@^0.1.4: - version "0.1.4" - resolved "http://r.cnpmjs.org/osenv/download/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + version "0.1.5" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" outlayer@^2.1.0: version "2.1.1" - resolved "http://r.cnpmjs.org/outlayer/download/outlayer-2.1.1.tgz#29863b6de10ea5dadfffcadfa0d728907387e9a2" + resolved "https://registry.npmjs.org/outlayer/-/outlayer-2.1.1.tgz#29863b6de10ea5dadfffcadfa0d728907387e9a2" dependencies: ev-emitter "^1.0.0" fizzy-ui-utils "^2.0.0" @@ -8030,21 +7560,23 @@ outlayer@^2.1.0: p-finally@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-limit@^1.1.0: - version "1.1.0" - resolved "http://r.cnpmjs.org/p-limit/download/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" -p-limit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" dependencies: p-try "^2.0.0" p-locate@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" @@ -8054,13 +7586,27 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + dependencies: + p-limit "^2.2.0" + p-map@^1.1.1: - version "1.1.1" - resolved "http://r.cnpmjs.org/p-map/download/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + version "1.2.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" pad-right@^0.2.2: version "0.2.2" @@ -8068,9 +7614,9 @@ pad-right@^0.2.2: dependencies: repeat-string "^1.5.2" -pako@~0.2.0: - version "0.2.9" - resolved "http://r.cnpmjs.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" parallel-transform@^1.1.0: version "1.1.0" @@ -8086,21 +7632,28 @@ param-case@^2.1.0: dependencies: no-case "^2.2.0" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0: - version "5.1.0" - resolved "http://r.cnpmjs.org/parse-asn1/download/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + version "5.1.4" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" parse-filepath@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/parse-filepath/download/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + version "1.0.2" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" dependencies: - is-absolute "^0.2.3" + is-absolute "^1.0.0" map-cache "^0.2.0" path-root "^0.1.1" @@ -8110,7 +7663,7 @@ parse-github-repo-url@^1.3.0: parse-glob@^3.0.4: version "3.0.4" - resolved "http://r.cnpmjs.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + resolved "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -8119,7 +7672,7 @@ parse-glob@^3.0.4: parse-json@^2.2.0: version "2.2.0" - resolved "http://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: error-ex "^1.2.0" @@ -8130,6 +7683,15 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parse-mentions@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/parse-mentions/-/parse-mentions-0.1.0.tgz#7d654b149057bced6f12f69ced53a1c5626a3e23" @@ -8138,23 +7700,21 @@ parse-mentions@^0.1.0: parse-passwd@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/parse-passwd/download/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parse5@^3.0.1: - version "3.0.2" - resolved "http://r.cnpmjs.org/parse5/download/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510" - dependencies: - "@types/node" "^6.0.46" +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" -parse5@^3.0.2: +parse5@^3.0.1: version "3.0.3" resolved "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" dependencies: "@types/node" "*" -parseurl@~1.3.2: - version "1.3.2" - resolved "http://r.cnpmjs.org/parseurl/download/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" pascal-case@^2.0.0: version "2.0.1" @@ -8167,9 +7727,9 @@ pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" -path-browserify@0.0.0: - version "0.0.0" - resolved "http://r.cnpmjs.org/path-browserify/download/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" path-case@^2.1.0: version "2.1.1" @@ -8183,54 +7743,54 @@ path-dirname@^1.0.0: path-exists@2.1.0, path-exists@^2.0.0: version "2.1.0" - resolved "http://r.cnpmjs.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "http://r.cnpmjs.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" path-match@^1.2.4: version "1.2.4" - resolved "http://r.cnpmjs.org/path-match/download/path-match-1.2.4.tgz#a62747f3c7e0c2514762697f24443585b09100ea" + resolved "https://registry.npmjs.org/path-match/-/path-match-1.2.4.tgz#a62747f3c7e0c2514762697f24443585b09100ea" dependencies: http-errors "~1.4.0" path-to-regexp "^1.0.0" -path-parse@^1.0.5: - version "1.0.5" - resolved "http://r.cnpmjs.org/path-parse/download/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-parse@^1.0.6: +path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" path-root-regex@^0.1.0: version "0.1.2" - resolved "http://r.cnpmjs.org/path-root-regex/download/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" path-root@^0.1.1: version "0.1.1" - resolved "http://r.cnpmjs.org/path-root/download/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" dependencies: path-root-regex "^0.1.0" path-to-regexp@0.1.7: version "0.1.7" - resolved "http://r.cnpmjs.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" path-to-regexp@2.1.0: version "2.1.0" @@ -8238,13 +7798,13 @@ path-to-regexp@2.1.0: path-to-regexp@^1.0.0: version "1.7.0" - resolved "http://r.cnpmjs.org/path-to-regexp/download/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" dependencies: isarray "0.0.1" path-type@^1.0.0: version "1.1.0" - resolved "http://r.cnpmjs.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -8252,7 +7812,7 @@ path-type@^1.0.0: path-type@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" dependencies: pify "^2.0.0" @@ -8262,15 +7822,9 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" -pause-stream@0.0.11: - version "0.0.11" - resolved "http://r.cnpmjs.org/pause-stream/download/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - dependencies: - through "~2.3" - pbkdf2@^3.0.3: - version "3.0.13" - resolved "http://r.cnpmjs.org/pbkdf2/download/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + version "3.0.17" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -8282,41 +7836,39 @@ pend@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" -performance-now@^0.2.0: - version "0.2.0" - resolved "http://r.cnpmjs.org/performance-now/download/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - performance-now@^2.1.0: version "2.1.0" - resolved "http://r.cnpmjs.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pidtree@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" - resolved "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pify@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/pify/download/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" pinkie-promise@^2.0.0: version "2.0.1" - resolved "http://r.cnpmjs.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "http://r.cnpmjs.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" pkg-dir@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/pkg-dir/download/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: find-up "^2.1.0" @@ -8326,11 +7878,23 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + dependencies: + find-up "^4.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + dependencies: + find-up "^2.1.0" + platform@1.3.5: version "1.3.5" resolved "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" -please-upgrade-node@^3.0.2: +please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" dependencies: @@ -8351,7 +7915,7 @@ pluralize@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" -pn@^1.0.0: +pn@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -8366,59 +7930,68 @@ posix-character-classes@^0.1.0: resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + version "3.3.1" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" prelude-ls@~1.1.2: version "1.1.2" - resolved "http://r.cnpmjs.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" preserve@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + resolved "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + dependencies: + fast-diff "^1.1.2" prettier@1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz#847c235522035fd988100f1f43cf20a7d24f9372" -prettier@^1.14.3: - version "1.15.3" - resolved "https://registry.npmjs.org/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a" +prettier@^1.14.3, prettier@^1.18.2: + version "1.18.2" + resolved "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" -pretty-format@^23.5.0: - version "23.5.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-23.5.0.tgz#0f9601ad9da70fe690a269cd3efca732c210687c" +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" +pretty-quick@^1.11.0: + version "1.11.1" + resolved "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.11.1.tgz#462ffa2b93d24c05b7a0c3a001e08601a0c55ee4" + dependencies: + chalk "^2.3.0" + execa "^0.8.0" + find-up "^2.1.0" + ignore "^3.3.7" + mri "^1.1.0" + multimatch "^3.0.0" + pretty-time@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" -private@^0.1.6, private@^0.1.7: - version "0.1.7" - resolved "http://r.cnpmjs.org/private/download/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "http://r.cnpmjs.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" -process@^0.11.0: +process@^0.11.10: version "0.11.10" - resolved "http://r.cnpmjs.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -progress@1.1.8: - version "1.1.8" - resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" progress@^2.0.0: - version "2.0.0" - resolved "http://r.cnpmjs.org/progress/download/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" promise-inflight@^1.0.1: version "1.0.1" @@ -8441,7 +8014,7 @@ prompts@^0.1.9: kleur "^2.0.1" sisteransi "^0.1.1" -prop-types-exact@1.2.0: +prop-types-exact@1.2.0, prop-types-exact@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" dependencies: @@ -8449,78 +8022,54 @@ prop-types-exact@1.2.0: object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@15.6.2, prop-types@^15.5.0, prop-types@^15.6.2: +prop-types@15.6.2: version "15.6.2" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@15.x, prop-types@^15.0.0, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.9: - version "15.6.0" - resolved "http://r.cnpmjs.org/prop-types/download/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -prop-types@^15.5.10, prop-types@^15.5.4: - version "15.5.10" - resolved "http://r.cnpmjs.org/prop-types/download/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" +prop-types@15.x, prop-types@^15.0.0, prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - -prop-types@^15.5.8, prop-types@^15.6.0: - version "15.6.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" + loose-envify "^1.4.0" object-assign "^4.1.1" + react-is "^16.8.1" -proxy-addr@~2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" dependencies: forwarded "~0.1.2" - ipaddr.js "1.8.0" - -prr@~0.0.0: - version "0.0.0" - resolved "http://r.cnpmjs.org/prr/download/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + ipaddr.js "1.9.0" prr@~1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" -ps-tree@^1.1.0: - version "1.1.0" - resolved "http://r.cnpmjs.org/ps-tree/download/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" - dependencies: - event-stream "~3.3.0" - pseudomap@^1.0.2: version "1.0.2" - resolved "http://r.cnpmjs.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" -psl@^1.1.24: - version "1.1.29" - resolved "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" +psl@^1.1.24, psl@^1.1.28: + version "1.2.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz#df12b5b1b3a30f51c329eacbdef98f3a6e136dc6" public-encrypt@^4.0.0: - version "4.0.0" - resolved "http://r.cnpmjs.org/public-encrypt/download/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" + safe-buffer "^5.1.2" pubsub-js@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/pubsub-js/-/pubsub-js-1.6.0.tgz#232d36485ce7905a54629ec5783d9f6f4c638026" + version "1.7.0" + resolved "https://registry.npmjs.org/pubsub-js/-/pubsub-js-1.7.0.tgz#eca97f9a4217bef62b2d3aaa1552005260cc2e49" pump@^2.0.0, pump@^2.0.1: version "2.0.1" @@ -8537,24 +8086,24 @@ pump@^3.0.0: once "^1.3.1" pumpify@^1.3.3: - version "1.4.0" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + version "1.5.1" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" dependencies: - duplexify "^3.5.3" + duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2, punycode@^1.2.4: +punycode@1.3.2: version "1.3.2" - resolved "http://r.cnpmjs.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.4.1: +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" - resolved "http://r.cnpmjs.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -punycode@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" pure-color@^1.2.0: version "1.3.0" @@ -8564,100 +8113,100 @@ q@^1.4.1, q@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qs@6.5.2, qs@~6.5.2: +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + +qs@~6.5.2: version "6.5.2" resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" -qs@~6.4.0: - version "6.4.0" - resolved "http://r.cnpmjs.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -qs@~6.5.1: - version "6.5.1" - resolved "http://r.cnpmjs.org/qs/download/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - querystring-es3@^0.2.0: version "0.2.1" - resolved "http://r.cnpmjs.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" querystring@0.2.0, querystring@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" raf@^3.4.0: - version "3.4.0" - resolved "http://r.cnpmjs.org/raf/download/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" + version "3.4.1" + resolved "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" dependencies: performance-now "^2.1.0" railroad-diagrams@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/railroad-diagrams/download/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" ramda@0.24.1: version "0.24.1" resolved "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" -ramda@0.25.0, ramda@0.x: +ramda@0.25.0: version "0.25.0" - resolved "http://r.cnpmjs.org/ramda/download/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + +ramda@0.x: + version "0.26.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" -randexp@^0.4.2: +randexp@0.4.6: version "0.4.6" - resolved "http://r.cnpmjs.org/randexp/download/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + resolved "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" dependencies: discontinuous-range "1.0.0" ret "~0.1.10" -randomatic@^1.1.3: - version "1.1.7" - resolved "http://r.cnpmjs.org/randomatic/download/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" -randombytes@^2.0.0, randombytes@^2.0.1: - version "2.0.5" - resolved "http://r.cnpmjs.org/randombytes/download/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" dependencies: safe-buffer "^5.1.0" randomcolor@^0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/randomcolor/-/randomcolor-0.5.3.tgz#7f90f2f2a7f6d5a52232161eeaeeaea9ac3b5815" + version "0.5.4" + resolved "https://registry.npmjs.org/randomcolor/-/randomcolor-0.5.4.tgz#df615b13f25b89ea58c5f8f72647f0a6f07adcc3" -range-parser@^1.0.3, range-parser@~1.2.0: - version "1.2.0" - resolved "http://r.cnpmjs.org/range-parser/download/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@~1.2.0, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" raven-js@^3.26.4: - version "3.27.0" - resolved "https://registry.npmjs.org/raven-js/-/raven-js-3.27.0.tgz#9f47c03e17933ce756e189f3669d49c441c1ba6e" + version "3.27.2" + resolved "https://registry.npmjs.org/raven-js/-/raven-js-3.27.2.tgz#6c33df952026cd73820aa999122b7b7737a66775" -raw-body@2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" unpipe "1.0.0" -rc-align@2.x: - version "2.3.4" - resolved "http://r.cnpmjs.org/rc-align/download/rc-align-2.3.4.tgz#d83bdab7560f0142e72a3de1d495dab6ba225249" - dependencies: - dom-align "1.x" - prop-types "^15.5.8" - rc-util "4.x" - rc-align@^2.4.0, rc-align@^2.4.1: - version "2.4.3" - resolved "https://registry.npmjs.org/rc-align/-/rc-align-2.4.3.tgz#b9b3c2a6d68adae71a8e1d041cd5e3b2a655f99a" + version "2.4.5" + resolved "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz#c941a586f59d1017f23a428f0b468663fb7102ab" dependencies: babel-runtime "^6.26.0" dom-align "^1.7.0" @@ -8665,12 +8214,16 @@ rc-align@^2.4.0, rc-align@^2.4.1: rc-util "^4.0.4" rc-animate@2.x, rc-animate@^2.3.0, rc-animate@^2.4.1: - version "2.4.1" - resolved "http://r.cnpmjs.org/rc-animate/download/rc-animate-2.4.1.tgz#df3e0f56fe106afe4bf52ff408ced241c5178919" + version "2.9.2" + resolved "https://registry.npmjs.org/rc-animate/-/rc-animate-2.9.2.tgz#5964767805c886f1bdc7563d3935a74912a0b78f" dependencies: babel-runtime "6.x" + classnames "^2.2.6" css-animation "^1.3.2" prop-types "15.x" + raf "^3.4.0" + rc-util "^4.8.0" + react-lifecycles-compat "^3.0.4" rc-animate@^3.0.0-rc.1, rc-animate@^3.0.0-rc.4, rc-animate@^3.0.0-rc.5: version "3.0.0-rc.6" @@ -8709,13 +8262,13 @@ rc-cascader@~0.14.0: warning "^4.0.1" rc-checkbox@~2.1.5: - version "2.1.5" - resolved "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.1.5.tgz#411858448c0ee2a797ef8544dac63bcaeef722ef" + version "2.1.7" + resolved "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.1.7.tgz#ae6785525cf35fa4c62d706c4a1ff7b2b1fcb821" dependencies: babel-runtime "^6.23.0" classnames "2.x" prop-types "15.x" - rc-util "^4.0.4" + react-lifecycles-compat "^3.0.4" rc-collapse@~1.9.0: version "1.9.3" @@ -8735,8 +8288,8 @@ rc-dialog@~7.2.0: rc-util "^4.4.0" rc-drawer@~1.7.3: - version "1.7.6" - resolved "https://registry.npmjs.org/rc-drawer/-/rc-drawer-1.7.6.tgz#925ce0768cf81ef5fa83eb22d90c603422b1b1b1" + version "1.7.8" + resolved "https://registry.npmjs.org/rc-drawer/-/rc-drawer-1.7.8.tgz#e4d0659dc203909e5ffacbac8a68926e0c222fb5" dependencies: babel-runtime "6.x" classnames "^2.2.5" @@ -8753,10 +8306,11 @@ rc-dropdown@~2.2.0: react-lifecycles-compat "^3.0.2" rc-editor-core@~0.8.3: - version "0.8.3" - resolved "https://registry.npmjs.org/rc-editor-core/-/rc-editor-core-0.8.3.tgz#0be6a37a10152ae6d58bd2ecfefdf2c80ce0689a" + version "0.8.10" + resolved "https://registry.npmjs.org/rc-editor-core/-/rc-editor-core-0.8.10.tgz#6f215bc5df9c33ffa9f6c5b30ca73a7dabe8ab7c" dependencies: babel-runtime "^6.26.0" + classnames "^2.2.5" draft-js "^0.10.0" immutable "^3.7.4" lodash "^4.16.5" @@ -8764,45 +8318,48 @@ rc-editor-core@~0.8.3: setimmediate "^1.0.5" rc-editor-mention@^1.0.2: - version "1.1.4" - resolved "https://registry.npmjs.org/rc-editor-mention/-/rc-editor-mention-1.1.4.tgz#b151d76faa3313300b967507da217f0fea1c9912" + version "1.1.13" + resolved "https://registry.npmjs.org/rc-editor-mention/-/rc-editor-mention-1.1.13.tgz#9f1cab1065f86b01523840321790c2ab12ac5e8b" dependencies: babel-runtime "^6.23.0" classnames "^2.2.5" dom-scroll-into-view "^1.2.0" draft-js "~0.10.0" + immutable "~3.7.4" prop-types "^15.5.8" rc-animate "^2.3.0" rc-editor-core "~0.8.3" rc-form@^2.1.0: - version "2.1.7" - resolved "https://registry.npmjs.org/rc-form/-/rc-form-2.1.7.tgz#3e01c5e19838038b65a58014e2802deb088b60b7" + version "2.4.8" + resolved "https://registry.npmjs.org/rc-form/-/rc-form-2.4.8.tgz#79a1f124d4fa81dff2af2992e94aa3e58cad683c" dependencies: - async-validator "1.x" + async-validator "~1.11.3" babel-runtime "6.x" create-react-class "^15.5.3" dom-scroll-into-view "1.x" - hoist-non-react-statics "^2.3.1" + hoist-non-react-statics "^3.3.0" lodash "^4.17.4" - warning "^3.0.0" + warning "^4.0.3" rc-hammerjs@~0.6.0: version "0.6.9" - resolved "http://r.cnpmjs.org/rc-hammerjs/download/rc-hammerjs-0.6.9.tgz#9a4ddbda1b2ec8f9b9596091a6a989842a243907" + resolved "https://registry.npmjs.org/rc-hammerjs/-/rc-hammerjs-0.6.9.tgz#9a4ddbda1b2ec8f9b9596091a6a989842a243907" dependencies: babel-runtime "6.x" hammerjs "^2.0.8" prop-types "^15.5.9" rc-input-number@~4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/rc-input-number/-/rc-input-number-4.0.2.tgz#09651d5fc05c7f6a1e2111dbfad7ed5743fa7595" + version "4.0.13" + resolved "https://registry.npmjs.org/rc-input-number/-/rc-input-number-4.0.13.tgz#18ac305bf07b6771ad0e4edc97b1e1bbb9b71918" dependencies: babel-runtime "6.x" classnames "^2.2.0" + is-negative-zero "^2.0.0" prop-types "^15.5.7" - rmc-feedback "^1.0.0" + rc-util "^4.5.1" + rmc-feedback "^2.0.0" rc-menu@~7.0.2, rc-menu@~7.0.5: version "7.0.5" @@ -8835,20 +8392,21 @@ rc-pagination@~1.16.1: prop-types "^15.5.7" rc-progress@~2.2.2: - version "2.2.2" - resolved "http://r.cnpmjs.org/rc-progress/download/rc-progress-2.2.2.tgz#179f322218c533be27be5ddf4ef6f20e1e228769" + version "2.2.7" + resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-2.2.7.tgz#e650928c83f54da876f39b957a680afa01b490f8" dependencies: babel-runtime "6.x" prop-types "^15.5.8" rc-rate@~2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/rc-rate/-/rc-rate-2.4.0.tgz#97ebcc5876e2e498b9f5f65ced256d8ab54e5f06" + version "2.4.3" + resolved "https://registry.npmjs.org/rc-rate/-/rc-rate-2.4.3.tgz#70434905faf84c9a0694bec4bdbd9b9a9099318f" dependencies: babel-runtime "^6.26.0" classnames "^2.2.5" prop-types "^15.5.8" rc-util "^4.3.0" + react-lifecycles-compat "^3.0.4" rc-select@~8.1.1: version "8.1.2" @@ -8868,8 +8426,8 @@ rc-select@~8.1.1: warning "^3.0.0" rc-slider@~8.6.0: - version "8.6.4" - resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.4.tgz#b9d9000180f2b89bb71b58717753164b479fc75f" + version "8.6.13" + resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.13.tgz#88a8150c2dda6709f3f119135de11fba80af765b" dependencies: babel-runtime "6.x" classnames "^2.2.5" @@ -8877,11 +8435,11 @@ rc-slider@~8.6.0: rc-tooltip "^3.7.0" rc-util "^4.0.4" shallowequal "^1.0.1" - warning "^3.0.0" + warning "^4.0.3" rc-steps@~3.1.0: version "3.1.1" - resolved "http://registry.npmjs.org/rc-steps/-/rc-steps-3.1.1.tgz#79583ad808309d82b8e011676321d153fd7ca403" + resolved "https://registry.npmjs.org/rc-steps/-/rc-steps-3.1.1.tgz#79583ad808309d82b8e011676321d153fd7ca403" dependencies: babel-runtime "^6.23.0" classnames "^2.2.3" @@ -8934,8 +8492,8 @@ rc-time-picker@~3.3.0: rc-trigger "^2.2.0" rc-tooltip@^3.7.0, rc-tooltip@~3.7.0: - version "3.7.0" - resolved "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.0.tgz#3afbf109865f7cdcfe43752f3f3f501f7be37aaa" + version "3.7.3" + resolved "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz#280aec6afcaa44e8dff0480fbaff9e87fc00aecc" dependencies: babel-runtime "6.x" prop-types "^15.5.8" @@ -8958,8 +8516,8 @@ rc-tree-select@~2.1.0: warning "^4.0.1" rc-tree@~1.14.3: - version "1.14.8" - resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-1.14.8.tgz#31a9652d71c015370d7b6c2109c865244deb9fde" + version "1.14.10" + resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-1.14.10.tgz#4e0dc70c43da03650b5b776bda1b480a5bea85ee" dependencies: babel-runtime "^6.23.0" classnames "2.x" @@ -8969,20 +8527,9 @@ rc-tree@~1.14.3: react-lifecycles-compat "^3.0.4" warning "^3.0.0" -rc-trigger@^2.2.0, rc-trigger@^2.2.2, rc-trigger@^2.3.0: - version "2.3.3" - resolved "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.3.3.tgz#406c5ddea594aca71d067852f27d91a5f3a653b8" - dependencies: - babel-runtime "6.x" - create-react-class "15.x" - prop-types "15.x" - rc-align "2.x" - rc-animate "2.x" - rc-util "^4.3.0" - -rc-trigger@^2.5.1, rc-trigger@^2.5.4: - version "2.6.2" - resolved "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.2.tgz#a9c09ba5fad63af3b2ec46349c7db6cb46657001" +rc-trigger@^2.2.0, rc-trigger@^2.2.2, rc-trigger@^2.3.0, rc-trigger@^2.5.1, rc-trigger@^2.5.4: + version "2.6.5" + resolved "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.5.tgz#140a857cf28bd0fa01b9aecb1e26a50a700e9885" dependencies: babel-runtime "6.x" classnames "^2.2.6" @@ -8990,6 +8537,7 @@ rc-trigger@^2.5.1, rc-trigger@^2.5.4: rc-align "^2.4.0" rc-animate "2.x" rc-util "^4.4.0" + react-lifecycles-compat "^3.0.4" rc-trigger@^3.0.0-rc.2: version "3.0.0-rc.3" @@ -9012,42 +8560,16 @@ rc-upload@~2.5.0: prop-types "^15.5.7" warning "2.x" -rc-util@4.x, rc-util@^4.0.4: - version "4.1.1" - resolved "http://r.cnpmjs.org/rc-util/download/rc-util-4.1.1.tgz#9350e9c00368b50cd8fbd91775cc1cf9e2ca72b2" - dependencies: - add-dom-event-listener "1.x" - babel-runtime "6.x" - prop-types "^15.5.10" - shallowequal "^0.2.2" - -rc-util@^4.1.0, rc-util@^4.1.1, rc-util@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/rc-util/-/rc-util-4.3.1.tgz#79f0adb30f449c1b29d7c5cdb2d82c193920c362" - dependencies: - add-dom-event-listener "1.x" - babel-runtime "6.x" - prop-types "^15.5.10" - shallowequal "^0.2.2" - -rc-util@^4.4.0, rc-util@^4.5.0, rc-util@^4.5.1: - version "4.6.0" - resolved "https://registry.npmjs.org/rc-util/-/rc-util-4.6.0.tgz#ba33721783192ec4f3afb259e182b04e55deb7f6" +rc-util@^4.0.4, rc-util@^4.1.0, rc-util@^4.1.1, rc-util@^4.3.0, rc-util@^4.4.0, rc-util@^4.5.0, rc-util@^4.5.1, rc-util@^4.8.0: + version "4.8.4" + resolved "https://registry.npmjs.org/rc-util/-/rc-util-4.8.4.tgz#e7baa462ed2647bd478745a9aec7353c0944813a" dependencies: add-dom-event-listener "^1.1.0" babel-runtime "6.x" prop-types "^15.5.10" + react-lifecycles-compat "^3.0.4" shallowequal "^0.2.2" -rc@^1.1.7: - version "1.2.1" - resolved "http://r.cnpmjs.org/rc/download/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - rc@^1.2.7: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -9067,10 +8589,11 @@ react-base16-styling@^0.6.0: pure-color "^1.2.0" react-calendar-heatmap@^1.6.3: - version "1.6.3" - resolved "https://registry.npmjs.org/react-calendar-heatmap/-/react-calendar-heatmap-1.6.3.tgz#17bf56ad175d85ee5793410c36881112246de570" + version "1.8.0" + resolved "https://registry.npmjs.org/react-calendar-heatmap/-/react-calendar-heatmap-1.8.0.tgz#7672fc697c792c3ab71cb6d8ecb19362ace14ed1" dependencies: - prop-types "^15.5.10" + memoize-one "^4.0.2" + prop-types "^15.6.2" react-click-outside@^3.0.1: version "3.0.1" @@ -9082,14 +8605,14 @@ react-content-loader@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/react-content-loader/-/react-content-loader-3.1.2.tgz#98230b4604b4b744eaa2d3fc88917dd988df6766" -react-dom@16.6.0: - version "16.6.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.6.0.tgz#6375b8391e019a632a89a0988bce85f0cc87a92f" +react-dom@16.8.1: + version "16.8.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.10.0" + scheduler "^0.13.1" react-error-overlay@4.0.0: version "4.0.0" @@ -9097,20 +8620,16 @@ react-error-overlay@4.0.0: react-intl@2.4.0: version "2.4.0" - resolved "http://r.cnpmjs.org/react-intl/download/react-intl-2.4.0.tgz#66c14dc9df9a73b2fbbfbd6021726e80a613eb15" + resolved "https://registry.npmjs.org/react-intl/-/react-intl-2.4.0.tgz#66c14dc9df9a73b2fbbfbd6021726e80a613eb15" dependencies: intl-format-cache "^2.0.5" intl-messageformat "^2.1.0" intl-relativeformat "^2.0.0" invariant "^2.1.1" -react-is@^16.3.2, react-is@^16.6.0: - version "16.6.3" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0" - -react-is@^16.4.2: - version "16.5.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.5.0.tgz#2ec7c192709698591efe13722fab3ef56144ba55" +react-is@^16.4.2, react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: + version "16.8.6" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" react-json-view@1.19.1: version "1.19.1" @@ -9141,8 +8660,8 @@ react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" react-masonry-component@^6.0.1: - version "6.0.1" - resolved "http://r.cnpmjs.org/react-masonry-component/download/react-masonry-component-6.0.1.tgz#9c929f5d0923b7cda81a155666797111dc2dc349" + version "6.2.1" + resolved "https://registry.npmjs.org/react-masonry-component/-/react-masonry-component-6.2.1.tgz#dd23b3129d6b922852b160472e6c9a6256fcdb8a" dependencies: create-react-class "^15.6.2" element-resize-detector "^1.1.9" @@ -9161,13 +8680,13 @@ react-reconciler@^0.7.0: prop-types "^15.6.0" react-resize-detector@^3.1.2: - version "3.2.1" - resolved "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-3.2.1.tgz#19bb6e4ed1a6c627bb3b7e845b054215df7ca9d8" + version "3.4.0" + resolved "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-3.4.0.tgz#2ccd399958a0efe9b7c52c5db5a13d87e47cd585" dependencies: lodash "^4.17.11" lodash-es "^4.17.11" prop-types "^15.6.2" - resize-observer-polyfill "^1.5.0" + resize-observer-polyfill "^1.5.1" react-slick@~0.23.1: version "0.23.2" @@ -9206,12 +8725,13 @@ react-test-renderer@16.4.2: react-is "^16.4.2" react-test-renderer@^16.0.0-0: - version "16.2.0" - resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz#bddf259a6b8fcd8555f012afc8eacc238872a211" + version "16.8.6" + resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.8.6.tgz#188d8029b8c39c786f998aa3efd3ffe7642d5ba1" dependencies: - fbjs "^0.8.16" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + react-is "^16.8.6" + scheduler "^0.13.6" react-textarea-autosize@^6.1.0: version "6.1.0" @@ -9220,44 +8740,45 @@ react-textarea-autosize@^6.1.0: prop-types "^15.6.0" react-tooltip@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.4.0.tgz#037f38f797c3e6b1b58d2534ccc8c2c76af4f52d" + version "3.10.0" + resolved "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.10.0.tgz#268b5ef519fd8a1369288d1f086f42c90d5da7ef" dependencies: classnames "^2.2.5" prop-types "^15.6.0" react-trend@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/react-trend/-/react-trend-1.2.4.tgz#498987286abd43ee3dff881115cd64d1c8e72d95" + version "1.2.5" + resolved "https://registry.npmjs.org/react-trend/-/react-trend-1.2.5.tgz#c65798063b3b2aa8662ae43748f358ac40c02630" dependencies: prop-types "^15.5.8" react-waypoint@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/react-waypoint/-/react-waypoint-8.0.0.tgz#948748a3160e2ca27ae38b0a9acf8df8284e28e7" + version "8.1.0" + resolved "https://registry.npmjs.org/react-waypoint/-/react-waypoint-8.1.0.tgz#91d926a2fd1be4cbd0351cb8c3d494fac0ef1699" dependencies: - consolidated-events "^1.1.0" + consolidated-events "^1.1.0 || ^2.0.0" prop-types "^15.0.0" + react-is "^16.6.3" -react@16.6.0: - version "16.6.0" - resolved "https://registry.npmjs.org/react/-/react-16.6.0.tgz#b34761cfaf3e30f5508bc732fb4736730b7da246" +react@16.8.1: + version "16.8.1" + resolved "https://registry.npmjs.org/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.10.0" + scheduler "^0.13.1" read-pkg-up@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" dependencies: find-up "^1.0.0" read-pkg "^1.0.0" read-pkg-up@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" dependencies: find-up "^2.0.0" read-pkg "^2.0.0" @@ -9271,7 +8792,7 @@ read-pkg-up@^3.0.0: read-pkg@^1.0.0, read-pkg@^1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -9279,7 +8800,7 @@ read-pkg@^1.0.0, read-pkg@^1.1.0: read-pkg@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" dependencies: load-json-file "^2.0.0" normalize-package-data "^2.3.2" @@ -9293,63 +8814,58 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.4: - version "2.3.4" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" +read-pkg@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6: - version "2.3.3" - resolved "http://r.cnpmjs.org/readable-stream/download/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~1.0.6" + process-nextick-args "~2.0.0" safe-buffer "~5.1.1" - string_decoder "~1.0.3" + string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@~1.0.2: - version "1.0.34" - resolved "http://r.cnpmjs.org/readable-stream/download/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" +readable-stream@^3.1.1: + version "3.4.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" -readdirp@^2.0.0: - version "2.1.0" - resolved "http://r.cnpmjs.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" + graceful-fs "^4.1.11" + micromatch "^3.1.10" readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" realpath-native@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" + version "1.1.0" + resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" dependencies: util.promisify "^1.0.0" rechoir@^0.6.2: version "0.6.2" - resolved "http://r.cnpmjs.org/rechoir/download/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" dependencies: resolve "^1.1.6" recursive-copy@2.0.6: version "2.0.6" - resolved "http://r.cnpmjs.org/recursive-copy/download/recursive-copy-2.0.6.tgz#d590f9eb5f165b96a1b80bc8f9cbcb5c6f9c89e9" + resolved "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.6.tgz#d590f9eb5f165b96a1b80bc8f9cbcb5c6f9c89e9" dependencies: del "^2.2.0" emitter-mixin "0.0.3" @@ -9376,43 +8892,29 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" -referrer-policy@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.1.0.tgz#35774eb735bf50fb6c078e83334b472350207d79" +referrer-policy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e" reflect.ownkeys@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" -regenerate-unicode-properties@^5.1.1: - version "5.1.3" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-5.1.3.tgz#54f5891543468f36f2274b67c6bc4c033c27b308" - dependencies: - regenerate "^1.3.3" - -regenerate-unicode-properties@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" +regenerate-unicode-properties@^8.0.2: + version "8.1.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" dependencies: regenerate "^1.4.0" -regenerate@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - regenerate@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5: version "0.10.5" - resolved "http://r.cnpmjs.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" regenerator-runtime@^0.11.0: - version "0.11.0" - resolved "http://r.cnpmjs.org/regenerator-runtime/download/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" - -regenerator-runtime@^0.11.1: version "0.11.1" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" @@ -9420,22 +8922,21 @@ regenerator-runtime@^0.12.0: version "0.12.1" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" -regenerator-runtime@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.1.tgz#522ea2aafd9200a00eee143dc14219a35a0f3991" - -regenerator-transform@^0.13.3: +regenerator-runtime@^0.13.1, regenerator-runtime@^0.13.2: version "0.13.3" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" dependencies: private "^0.1.6" regex-cache@^0.4.2: - version "0.4.3" - resolved "http://r.cnpmjs.org/regex-cache/download/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -9445,45 +8946,24 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexpp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" - -regexpu-core@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.1.3.tgz#fb81616dbbc2a917a7419b33f8379144f51eb8d0" - dependencies: - regenerate "^1.3.3" - regenerate-unicode-properties "^5.1.1" - regjsgen "^0.3.0" - regjsparser "^0.2.1" - unicode-match-property-ecmascript "^1.0.3" - unicode-match-property-value-ecmascript "^1.0.1" + version "2.0.1" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" -regexpu-core@^4.2.0: - version "4.4.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" +regexpu-core@^4.5.4: + version "4.5.4" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^7.0.0" + regenerate-unicode-properties "^8.0.2" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.0.2" - -regjsgen@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.3.0.tgz#0ee4a3e9276430cda25f1e789ea6c15b87b0cb43" + unicode-match-property-value-ecmascript "^1.1.0" regjsgen@^0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" -regjsparser@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.2.1.tgz#c3787553faf04e775c302102ef346d995000ec1c" - dependencies: - jsesc "~0.5.0" - regjsparser@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" @@ -9502,130 +8982,51 @@ remarkable-mentions@^0.1.0: to-mention-link "^0.1.0" remarkable@^1.7.1: - version "1.7.1" - resolved "http://r.cnpmjs.org/remarkable/download/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6" + version "1.7.3" + resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.3.tgz#3ef0eda2b2bec093c36368bf64d66b5811f8bf4d" dependencies: argparse "~0.1.15" - autolinker "~0.15.0" + autolinker "~0.28.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "http://r.cnpmjs.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" repeat-element@^1.1.2: - version "1.1.2" - resolved "http://r.cnpmjs.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + version "1.1.3" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" - resolved "http://r.cnpmjs.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^2.0.0: version "2.0.1" - resolved "http://r.cnpmjs.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" -request-progress@0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz#0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a" - dependencies: - throttleit "~0.0.2" - -request-promise-core@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" - dependencies: - lodash "^4.13.1" - -request-promise-native@^1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" - dependencies: - request-promise-core "1.1.1" - stealthy-require "^1.1.0" - tough-cookie ">=2.3.3" - -request@2.87.0: - version "2.87.0" - resolved "https://registry.npmjs.org/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" +request-progress@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" + throttleit "^1.0.0" -request@^2.81.0: - version "2.81.0" - resolved "http://r.cnpmjs.org/request/download/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" + lodash "^4.17.11" -request@^2.83.0: - version "2.83.0" - resolved "http://r.cnpmjs.org/request/download/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" -request@^2.85.0: +request@2.88.0, request@^2.85.0, request@^2.87.0: version "2.88.0" resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: @@ -9652,24 +9053,24 @@ request@^2.85.0: require-directory@^2.1.1: version "2.1.1" - resolved "http://r.cnpmjs.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz#c545233e9d7da6616e9d59adfb39fc9f588676ff" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" require-main-filename@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" require-uncached@^1.0.3: version "1.0.3" - resolved "http://r.cnpmjs.org/require-uncached/download/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" -resize-observer-polyfill@^1.5.0: +reselect@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" + +resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" @@ -9681,28 +9082,39 @@ resolve-cwd@^2.0.0: resolve-dir@^0.1.0: version "0.1.1" - resolved "http://r.cnpmjs.org/resolve-dir/download/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" dependencies: expand-tilde "^1.2.2" global-modules "^0.2.3" -resolve-from@4.0.0, resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" resolve-from@^1.0.0: version "1.0.1" - resolved "http://r.cnpmjs.org/resolve-from/download/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" -resolve-global@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-0.1.0.tgz#8fb02cfd5b7db20118e886311f15af95bd15fbd9" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" dependencies: - global-dirs "^0.1.0" + global-dirs "^0.1.1" resolve-url@^0.2.1: version "0.2.1" @@ -9710,7 +9122,7 @@ resolve-url@^0.2.1: resolve@1.1.7: version "1.1.7" - resolved "http://r.cnpmjs.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" resolve@1.5.0: version "1.5.0" @@ -9718,80 +9130,50 @@ resolve@1.5.0: dependencies: path-parse "^1.0.5" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0: - version "1.4.0" - resolved "http://r.cnpmjs.org/resolve/download/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" - dependencies: - path-parse "^1.0.5" - -resolve@^1.3.2: - version "1.7.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - dependencies: - path-parse "^1.0.5" - -resolve@^1.6.0: - version "1.8.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - dependencies: - path-parse "^1.0.5" - -resolve@^1.8.1: - version "1.9.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: + version "1.11.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" dependencies: path-parse "^1.0.6" restore-cursor@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/restore-cursor/download/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" dependencies: exit-hook "^1.0.0" onetime "^1.0.0" restore-cursor@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" dependencies: onetime "^2.0.0" signal-exit "^3.0.2" ret@~0.1.10: version "0.1.15" - resolved "http://r.cnpmjs.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -right-align@^0.1.1: - version "0.1.3" - resolved "http://r.cnpmjs.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" right-pad@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.1" - resolved "http://r.cnpmjs.org/rimraf/download/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: - glob "^7.0.5" - -rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" +rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" dependencies: - glob "^7.0.5" + glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "http://r.cnpmjs.org/ripemd160/download/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" dependencies: - hash-base "^2.0.0" + hash-base "^3.0.0" inherits "^2.0.1" -rmc-feedback@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/rmc-feedback/-/rmc-feedback-1.0.4.tgz#fba066059ae2057ac0e0b53ea7ce982c8f4f7f19" +rmc-feedback@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/rmc-feedback/-/rmc-feedback-2.0.0.tgz#cbc6cb3ae63c7a635eef0e25e4fbaf5ac366eeaa" dependencies: babel-runtime "6.x" classnames "^2.2.5" @@ -9803,12 +9185,20 @@ rst-selector-parser@^2.2.3: lodash.flattendeep "^4.4.0" nearley "^2.7.10" +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + run-async@^2.2.0: version "2.3.0" - resolved "http://r.cnpmjs.org/run-async/download/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: is-promise "^2.1.0" +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -9817,7 +9207,7 @@ run-queue@^1.0.0, run-queue@^1.0.3: rx@^4.1.0: version "4.1.0" - resolved "http://r.cnpmjs.org/rx/download/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + resolved "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" rxjs@6.2.2: version "6.2.2" @@ -9825,31 +9215,25 @@ rxjs@6.2.2: dependencies: tslib "^1.9.0" -rxjs@^5.0.0-beta.11: +rxjs@^5.0.0-beta.11, rxjs@^5.5.2: version "5.5.12" resolved "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" dependencies: symbol-observable "1.0.1" -rxjs@^5.5.2: - version "5.5.6" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02" - dependencies: - symbol-observable "1.0.1" - -rxjs@^6.1.0: - version "6.3.2" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f" +rxjs@^6.3.3, rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@^5.1.2: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "http://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2: + version "5.2.0" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" safe-regex@^1.1.0: version "1.1.0" @@ -9857,31 +9241,32 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" sane@^2.0.0: - version "2.0.0" - resolved "http://r.cnpmjs.org/sane/download/sane-2.0.0.tgz#99cb79f21f4a53a69d4d0cd957c2db04024b8eb2" + version "2.5.2" + resolved "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" dependencies: - anymatch "^1.3.0" + anymatch "^2.0.0" + capture-exit "^1.2.0" exec-sh "^0.2.0" fb-watchman "^2.0.0" - minimatch "^3.0.2" + micromatch "^3.1.4" minimist "^1.1.1" walker "~1.0.5" - watch "~0.10.0" + watch "~0.18.0" optionalDependencies: - fsevents "^1.1.1" + fsevents "^1.2.3" -sax@^1.2.1, sax@^1.2.4: +sax@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -scheduler@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.10.0.tgz#7988de90fe7edccc774ea175a783e69c40c521e1" +scheduler@^0.13.1, scheduler@^0.13.6: + version "0.13.6" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9911,21 +9296,17 @@ semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0: - version "5.4.1" - resolved "http://r.cnpmjs.org/semver/download/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - -semver@5.5.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +"semver@2 || 3 || 4 || 5", semver@^5.1.0, 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.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" -semver@^5.5.1: - version "5.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" +semver@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" send@0.16.1: version "0.16.1" - resolved "http://r.cnpmjs.org/send/download/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + resolved "https://registry.npmjs.org/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" dependencies: debug "2.6.9" depd "~1.1.1" @@ -9941,9 +9322,9 @@ send@0.16.1: range-parser "~1.2.0" statuses "~1.3.1" -send@0.16.2: - version "0.16.2" - resolved "https://registry.npmjs.org/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" +send@0.17.1: + version "0.17.1" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" dependencies: debug "2.6.9" depd "~1.1.2" @@ -9952,12 +9333,12 @@ send@0.16.2: escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" + range-parser "~1.2.1" + statuses "~1.5.0" sentence-case@^2.1.0: version "2.1.1" @@ -9967,38 +9348,25 @@ sentence-case@^2.1.0: upper-case-first "^1.1.2" serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" + version "1.7.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" + parseurl "~1.3.3" + send "0.17.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -10011,45 +9379,50 @@ setimmediate@^1.0.4, setimmediate@^1.0.5: setprototypeof@1.0.3: version "1.0.3" - resolved "http://r.cnpmjs.org/setprototypeof/download/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" setprototypeof@1.1.0: version "1.1.0" - resolved "http://r.cnpmjs.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.8" - resolved "http://r.cnpmjs.org/sha.js/download/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" shallow-equal@^1.0.0: - version "1.0.0" - resolved "http://r.cnpmjs.org/shallow-equal/download/shallow-equal-1.0.0.tgz#508d1838b3de590ab8757b011b25e430900945f7" + version "1.2.0" + resolved "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.0.tgz#fd828d2029ff4e19569db7e19e535e94e2d1f5cc" shallowequal@^0.2.2: version "0.2.2" - resolved "http://r.cnpmjs.org/shallowequal/download/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" dependencies: lodash.keys "^3.1.2" shallowequal@^1.0.1, shallowequal@^1.0.2: - version "1.0.2" - resolved "http://r.cnpmjs.org/shallowequal/download/shallowequal-1.0.2.tgz#1561dbdefb8c01408100319085764da3fcf83f8f" + version "1.1.0" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" shebang-command@^1.2.0: version "1.2.0" - resolved "http://r.cnpmjs.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" shell-quote@^1.6.1: version "1.6.1" - resolved "http://r.cnpmjs.org/shell-quote/download/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" dependencies: array-filter "~0.0.0" array-map "~0.0.0" @@ -10077,12 +9450,14 @@ shellwords@^0.1.1: resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" shortid@^2.2.8: - version "2.2.8" - resolved "https://registry.npmjs.org/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131" + version "2.2.14" + resolved "https://registry.npmjs.org/shortid/-/shortid-2.2.14.tgz#80db6aafcbc3e3a46850b3c88d39e051b84c8d18" + dependencies: + nanoid "^2.0.0" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" - resolved "http://r.cnpmjs.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" sisteransi@^0.1.1: version "0.1.1" @@ -10090,11 +9465,15 @@ sisteransi@^0.1.1: slash@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" slice-ansi@0.0.4: version "0.0.4" - resolved "http://r.cnpmjs.org/slice-ansi/download/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" slice-ansi@1.0.0: version "1.0.0" @@ -10135,47 +9514,29 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sntp@1.x.x: - version "1.0.9" - resolved "http://r.cnpmjs.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.0.2" - resolved "http://r.cnpmjs.org/sntp/download/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b" - dependencies: - hoek "4.x.x" - source-list-map@^2.0.0: - version "2.0.0" - resolved "http://r.cnpmjs.org/source-list-map/download/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + version "2.0.1" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" source-map-resolve@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + version "0.5.2" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" dependencies: - atob "^2.0.0" + atob "^2.1.1" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" source-map-support@^0.4.15: - version "0.4.15" - resolved "http://r.cnpmjs.org/source-map-support/download/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" + version "0.4.18" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" -source-map-support@^0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" - dependencies: - source-map "^0.6.0" - -source-map-support@^0.5.6, source-map-support@~0.5.6: - version "0.5.9" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" +source-map-support@^0.5.6, source-map-support@~0.5.10: + version "0.5.12" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -10184,44 +9545,46 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@0.5.7, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6: +source-map@0.5.7, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" - resolved "http://r.cnpmjs.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" source-map@0.7.3: version "0.7.3" resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" -source-map@^0.4.4: - version "0.4.4" - resolved "http://r.cnpmjs.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" - resolved "http://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" spawn-sync@^1.0.15: version "1.0.15" - resolved "http://r.cnpmjs.org/spawn-sync/download/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + resolved "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "http://r.cnpmjs.org/spdx-correct/download/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "http://r.cnpmjs.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "http://r.cnpmjs.org/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -10235,12 +9598,6 @@ split2@^2.0.0: dependencies: through2 "^2.0.2" -split@0.3: - version "0.3.3" - resolved "http://r.cnpmjs.org/split/download/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - dependencies: - through "2" - split@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -10249,41 +9606,41 @@ split@^1.0.0: sprintf-js@~1.0.2: version "1.0.3" - resolved "http://r.cnpmjs.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.13.1" - resolved "http://r.cnpmjs.org/sshpk/download/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" ssri@^5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz#9985e14041e65fc397af96542be35724ac11da52" + version "5.3.0" + resolved "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" dependencies: safe-buffer "^5.1.1" -ssri@^6.0.0: +ssri@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" dependencies: figgy-pudding "^3.5.1" stack-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + version "1.0.2" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" -stackframe@^1.0.3: +stackframe@^1.0.4: version "1.0.4" - resolved "http://r.cnpmjs.org/stackframe/download/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" staged-git-files@1.1.1: version "1.1.1" @@ -10309,17 +9666,13 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.2.1 < 2", "statuses@>= 1.3.1 < 2", statuses@~1.3.1: - version "1.3.1" - resolved "http://r.cnpmjs.org/statuses/download/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - -"statuses@>= 1.4.0 < 2": +"statuses@>= 1.2.1 < 2", "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" std-env@^1.1.0, std-env@^1.3.1: version "1.3.1" @@ -10327,7 +9680,7 @@ std-env@^1.1.0, std-env@^1.3.1: dependencies: is-ci "^1.1.0" -stealthy-require@^1.1.0: +stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -10336,32 +9689,26 @@ store@^2.0.12: resolved "https://registry.npmjs.org/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" stream-browserify@^2.0.1: - version "2.0.1" - resolved "http://r.cnpmjs.org/stream-browserify/download/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + version "2.0.2" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" dependencies: inherits "~2.0.1" readable-stream "^2.0.2" -stream-combiner@~0.0.4: - version "0.0.4" - resolved "http://r.cnpmjs.org/stream-combiner/download/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - dependencies: - duplexer "~0.1.1" - stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + version "1.2.3" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.3.1: - version "2.7.2" - resolved "http://r.cnpmjs.org/stream-http/download/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" - readable-stream "^2.2.6" + readable-stream "^2.3.6" to-arraybuffer "^1.0.0" xtend "^4.0.0" @@ -10379,7 +9726,7 @@ string-argv@^0.0.2: string-convert@^0.2.0: version "0.2.1" - resolved "http://r.cnpmjs.org/string-convert/download/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" string-hash@1.1.3: version "1.1.3" @@ -10387,87 +9734,85 @@ string-hash@1.1.3: string-length@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/string-length/download/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + resolved "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" dependencies: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" - resolved "http://r.cnpmjs.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" - resolved "http://r.cnpmjs.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string.prototype.padend@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/string.prototype.padend/download/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" dependencies: define-properties "^1.1.2" es-abstract "^1.4.3" function-bind "^1.0.2" -string_decoder@^0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "http://r.cnpmjs.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + dependencies: + safe-buffer "~5.1.0" -string_decoder@~1.0.3: - version "1.0.3" - resolved "http://r.cnpmjs.org/string_decoder/download/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" dependencies: safe-buffer "~5.1.0" stringify-object@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" + version "3.3.0" + resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" dependencies: - get-own-enumerable-property-symbols "^2.0.1" + get-own-enumerable-property-symbols "^3.0.0" is-obj "^1.0.1" is-regexp "^1.0.0" -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "http://r.cnpmjs.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" dependencies: - ansi-regex "^4.0.0" + ansi-regex "^4.1.0" strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" strip-bom@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" dependencies: is-utf8 "^0.2.0" strip-eof@^1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" strip-indent@^1.0.1: version "1.0.1" @@ -10477,11 +9822,11 @@ strip-indent@^1.0.1: strip-indent@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/strip-indent/download/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" - resolved "http://r.cnpmjs.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" styled-components@4.0.3: version "4.0.3" @@ -10519,52 +9864,28 @@ stylis@3.5.3: resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.3.tgz#99fdc46afba6af4deff570825994181a5e6ce546" stylis@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" + version "3.5.4" + resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" -supports-color@5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" +supports-color@5.5.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: - has-flag "^2.0.0" + has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.2: version "3.2.3" - resolved "http://r.cnpmjs.org/supports-color/download/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" -supports-color@^4.0.0: - version "4.2.1" - resolved "http://r.cnpmjs.org/supports-color/download/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" - dependencies: - has-flag "^3.0.0" - -supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" - dependencies: - has-flag "^3.0.0" - -supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - swap-case@^1.1.0: version "1.1.2" - resolved "http://r.cnpmjs.org/swap-case/download/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + resolved "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" dependencies: lower-case "^1.1.1" upper-case "^1.1.1" @@ -10573,21 +9894,17 @@ symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" -symbol-observable@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32" - -symbol-observable@^1.1.0: +symbol-observable@^1.0.2, symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" -symbol-tree@^3.2.1: - version "3.2.2" - resolved "http://r.cnpmjs.org/symbol-tree/download/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" table@^4.0.3: version "4.0.3" - resolved "http://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + resolved "https://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" dependencies: ajv "^6.0.1" ajv-keywords "^3.0.0" @@ -10597,41 +9914,20 @@ table@^4.0.3: string-width "^2.1.1" tapable@^1.0.0, tapable@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" - -tar-pack@^3.4.0: - version "3.4.0" - resolved "http://r.cnpmjs.org/tar-pack/download/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "http://r.cnpmjs.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" tar@^4: - version "4.4.6" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + version "4.4.10" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" dependencies: - chownr "^1.0.1" + chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.3" - minizlib "^1.1.0" + minipass "^2.3.5" + minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" - yallist "^3.0.2" + yallist "^3.0.3" terser-webpack-plugin@1.0.2: version "1.0.2" @@ -10647,12 +9943,12 @@ terser-webpack-plugin@1.0.2: worker-farm "^1.5.2" terser@^3.8.1: - version "3.11.0" - resolved "https://registry.npmjs.org/terser/-/terser-3.11.0.tgz#60782893e1f4d6788acc696351f40636d0e37af0" + version "3.17.0" + resolved "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" dependencies: - commander "~2.17.1" + commander "^2.19.0" source-map "~0.6.1" - source-map-support "~0.5.6" + source-map-support "~0.5.10" test-exclude@^4.2.1: version "4.2.3" @@ -10665,31 +9961,31 @@ test-exclude@^4.2.1: require-main-filename "^1.0.1" text-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" + version "1.9.0" + resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" text-table@^0.2.0: version "0.2.0" - resolved "http://r.cnpmjs.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" throat@^4.0.0: version "4.1.0" - resolved "http://r.cnpmjs.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" -throttleit@~0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" through2@^2.0.0, through2@^2.0.2: - version "2.0.3" - resolved "http://r.cnpmjs.org/through2/download/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" dependencies: - readable-stream "^2.1.5" + readable-stream "~2.3.6" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: +through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" - resolved "http://r.cnpmjs.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" timeago-react@2.0.0: version "2.0.0" @@ -10703,9 +9999,9 @@ timeago.js@^3.0.1: dependencies: "@types/jquery" "^2.0.40" -timers-browserify@^2.0.2: - version "2.0.4" - resolved "http://r.cnpmjs.org/timers-browserify/download/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" dependencies: setimmediate "^1.0.4" @@ -10720,15 +10016,15 @@ tlds@^1.189.0: version "1.203.1" resolved "https://registry.npmjs.org/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" -tmp@0.0.31: - version "0.0.31" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" +tmp@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" dependencies: - os-tmpdir "~1.0.1" + rimraf "^2.6.3" tmp@^0.0.29: version "0.0.29" - resolved "http://r.cnpmjs.org/tmp/download/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" dependencies: os-tmpdir "~1.0.1" @@ -10740,19 +10036,19 @@ tmp@^0.0.33: tmpl@1.0.x: version "1.0.4" - resolved "http://r.cnpmjs.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" to-arraybuffer@^1.0.0: version "1.0.1" - resolved "http://r.cnpmjs.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" to-fast-properties@^1.0.3: version "1.0.3" - resolved "http://r.cnpmjs.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" to-fast-properties@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" to-mention-link@^0.1.0: version "0.1.0" @@ -10784,17 +10080,16 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3: - version "2.3.3" - resolved "http://r.cnpmjs.org/tough-cookie/download/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" -tough-cookie@~2.3.0: - version "2.3.2" - resolved "http://r.cnpmjs.org/tough-cookie/download/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" +tough-cookie@^2.3.3, tough-cookie@^2.3.4: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" dependencies: - punycode "^1.4.1" + psl "^1.1.28" + punycode "^2.1.1" tough-cookie@~2.4.3: version "2.4.3" @@ -10803,7 +10098,7 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" -tr46@^1.0.0: +tr46@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" dependencies: @@ -10823,54 +10118,64 @@ trim-off-newlines@^1.0.0: trim-right@^1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/trim-right/download/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -tryer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.0.tgz#027b69fa823225e551cace3ef03b11f6ab37c1d7" +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" -tslib@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + dependencies: + tslib "^1.9.3" + +tslib@^1.9.0, tslib@^1.9.3: + version "1.10.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" tty-browserify@0.0.0: version "0.0.0" - resolved "http://r.cnpmjs.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" tunnel-agent@^0.6.0: version "0.6.0" - resolved "http://r.cnpmjs.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "http://r.cnpmjs.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-check@~0.3.2: version "0.3.2" - resolved "http://r.cnpmjs.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" -type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" dependencies: media-typer "0.3.0" - mime-types "~2.1.18" + mime-types "~2.1.24" typedarray@^0.0.6: version "0.0.6" - resolved "http://r.cnpmjs.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -ua-parser-js@^0.7.9: - version "0.7.17" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" +ua-parser-js@^0.7.18: + version "0.7.20" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" uc.micro@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz#0c65f15f815aa08b560a61ce8b4db7ffc3f45376" + version "1.0.6" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" uglify-es@^3.3.4: version "3.3.9" @@ -10879,26 +10184,13 @@ uglify-es@^3.3.4: commander "~2.13.0" source-map "~0.6.1" -uglify-js@^2.6: - version "2.8.29" - resolved "http://r.cnpmjs.org/uglify-js/download/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - uglify-js@^3.1.4: - version "3.4.9" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" + version "3.6.0" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" dependencies: - commander "~2.17.1" + commander "~2.20.0" source-map "~0.6.1" -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "http://r.cnpmjs.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - uglifyjs-webpack-plugin@^1.2.4: version "1.3.0" resolved "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" @@ -10912,45 +10204,26 @@ uglifyjs-webpack-plugin@^1.2.4: webpack-sources "^1.1.0" worker-farm "^1.5.2" -uid-number@^0.0.6: - version "0.0.6" - resolved "http://r.cnpmjs.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -unc-path-regex@^0.1.0: +unc-path-regex@^0.1.2: version "0.1.2" - resolved "http://r.cnpmjs.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" underscore.string@~2.4.0: version "2.4.0" - resolved "http://r.cnpmjs.org/underscore.string/download/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b" - -underscore@~1.4.4: - version "1.4.4" - resolved "http://r.cnpmjs.org/underscore/download/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + resolved "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b" underscore@~1.7.0: version "1.7.0" - resolved "http://r.cnpmjs.org/underscore/download/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" unfetch@3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/unfetch/download/unfetch-3.0.0.tgz#8d1e0513a4ecd0e5ff2d41a6ba77771aae8b6482" - -unicode-canonical-property-names-ecmascript@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.3.tgz#f6119f417467593c0086357c85546b6ad5abc583" + resolved "https://registry.npmjs.org/unfetch/-/unfetch-3.0.0.tgz#8d1e0513a4ecd0e5ff2d41a6ba77771aae8b6482" unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" -unicode-match-property-ecmascript@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.3.tgz#db9b1cb4ffc67e0c5583780b1b59370e4cbe97b9" - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.2" - unicode-property-aliases-ecmascript "^1.0.3" - unicode-match-property-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" @@ -10958,58 +10231,46 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.1.tgz#fea059120a016f403afd3bf586162b4db03e0604" - -unicode-match-property-value-ecmascript@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" - -unicode-property-aliases-ecmascript@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.3.tgz#ac3522583b9e630580f916635333e00c5ead690d" +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" - -unicons@0.0.3: - version "0.0.3" - resolved "http://r.cnpmjs.org/unicons/download/unicons-0.0.3.tgz#6e6a7a1a6eaebb01ca3d8b12ad9687279eaba524" + version "1.0.5" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" union-class-names@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/union-class-names/-/union-class-names-1.0.0.tgz#9259608adacc39094a2b0cfe16c78e6200617847" union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" - set-value "^0.4.3" + set-value "^2.0.1" -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" +unique-filename@^1.1.0, unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + version "2.0.2" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" dependencies: imurmurhash "^0.1.4" universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" unset-value@^1.0.0: version "1.0.0" @@ -11018,19 +10279,19 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.0.5: - version "1.1.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" upper-case-first@^1.1.0, upper-case-first@^1.1.2: version "1.1.2" - resolved "http://r.cnpmjs.org/upper-case-first/download/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" dependencies: upper-case "^1.1.1" upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: version "1.1.3" - resolved "http://r.cnpmjs.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" uri-js@^4.2.2: version "4.2.2" @@ -11044,24 +10305,22 @@ urix@^0.1.0: url@0.11.0, url@^0.11.0: version "0.11.0" - resolved "http://r.cnpmjs.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" dependencies: punycode "1.3.2" querystring "0.2.0" use@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" user-home@^1.1.1: version "1.1.1" - resolved "http://r.cnpmjs.org/user-home/download/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + resolved "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "http://r.cnpmjs.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" util.promisify@^1.0.0: version "1.0.0" @@ -11070,19 +10329,21 @@ util.promisify@^1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util@0.10.3, util@^0.10.3: +util@0.10.3: version "0.10.3" - resolved "http://r.cnpmjs.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: inherits "2.0.1" +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + dependencies: + inherits "2.0.3" + utils-merge@1.0.1: version "1.0.1" - resolved "http://r.cnpmjs.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@^3.0.0, uuid@^3.1.0: - version "3.1.0" - resolved "http://r.cnpmjs.org/uuid/download/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" uuid@^3.3.2: version "3.3.2" @@ -11090,62 +10351,69 @@ uuid@^3.3.2: v8flags@^2.0.10: version "2.1.1" - resolved "http://r.cnpmjs.org/v8flags/download/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" dependencies: user-home "^1.1.1" validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "http://r.cnpmjs.org/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" vary@~1.1.2: version "1.1.2" - resolved "http://r.cnpmjs.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" verror@1.10.0: version "1.10.0" - resolved "http://r.cnpmjs.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@0.0.4: - version "0.0.4" - resolved "http://r.cnpmjs.org/vm-browserify/download/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" dependencies: - indexof "0.0.1" + browser-process-hrtime "^0.1.2" walker@~1.0.5: version "1.0.7" - resolved "http://r.cnpmjs.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" dependencies: makeerror "1.0.x" warning@2.x: version "2.1.0" - resolved "http://r.cnpmjs.org/warning/download/warning-2.1.0.tgz#21220d9c63afc77a8c92111e011af705ce0c6901" + resolved "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz#21220d9c63afc77a8c92111e011af705ce0c6901" dependencies: loose-envify "^1.0.0" warning@^3.0.0: version "3.0.0" - resolved "http://r.cnpmjs.org/warning/download/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + resolved "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" dependencies: loose-envify "^1.0.0" -warning@^4.0.1, warning@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz#aa6876480872116fa3e11d434b0d0d8d91e44607" +warning@^4.0.1, warning@^4.0.3, warning@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" dependencies: loose-envify "^1.0.0" -watch@~0.10.0: - version "0.10.0" - resolved "http://r.cnpmjs.org/watch/download/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" watchpack@^1.5.0: version "1.6.0" @@ -11155,7 +10423,7 @@ watchpack@^1.5.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -webidl-conversions@^4.0.1, webidl-conversions@^4.0.2: +webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -11202,8 +10470,8 @@ webpack-log@^2.0.0: uuid "^3.3.2" webpack-merge@^4.1.0: - version "4.1.5" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.5.tgz#2be31e846c20767d1bef56bdca64c328a681190a" + version "4.2.1" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4" dependencies: lodash "^4.17.5" @@ -11214,21 +10482,7 @@ webpack-sources@1.2.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/webpack-sources/download/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" - dependencies: - source-list-map "^2.0.0" - source-map "~0.5.3" - -webpack-sources@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^1.3.0: +webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" dependencies: @@ -11279,70 +10533,77 @@ webpackbar@2.6.3: std-env "^1.3.1" table "^4.0.3" -whatwg-encoding@^1.0.1: - version "1.0.1" - resolved "http://r.cnpmjs.org/whatwg-encoding/download/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.5" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" dependencies: - iconv-lite "0.4.13" - -whatwg-fetch@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0: +whatwg-fetch@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" -whatwg-url@^6.3.0: - version "6.4.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08" +whatwg-fetch@>=0.10.0: + version "3.0.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" dependencies: lodash.sortby "^4.7.0" - tr46 "^1.0.0" - webidl-conversions "^4.0.1" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-module@^2.0.0: version "2.0.0" - resolved "http://r.cnpmjs.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: - version "1.3.0" - resolved "http://r.cnpmjs.org/which/download/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" +which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: isexe "^2.0.0" wide-align@^1.1.0: - version "1.1.2" - resolved "http://r.cnpmjs.org/wide-align/download/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + version "1.1.3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "http://r.cnpmjs.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + string-width "^1.0.2 || 2" word-wrap@^1.0.3: version "1.2.3" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" -wordwrap@0.0.2, wordwrap@~0.0.2: - version "0.0.2" - resolved "http://r.cnpmjs.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" wordwrap@~1.0.0: version "1.0.0" - resolved "http://r.cnpmjs.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" worker-farm@^1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae" + version "1.7.0" + resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" dependencies: - errno "^0.1.4" - xtend "^4.0.1" + errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" - resolved "http://r.cnpmjs.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -11356,11 +10617,11 @@ wrap-ansi@^3.0.1: wrappy@1: version "1.0.2" - resolved "http://r.cnpmjs.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write-file-atomic@^2.1.0: - version "2.3.0" - resolved "http://r.cnpmjs.org/write-file-atomic/download/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + version "2.4.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -11379,31 +10640,37 @@ write-file-webpack-plugin@4.3.2: write@^0.2.1: version "0.2.1" - resolved "http://r.cnpmjs.org/write/download/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + dependencies: + async-limiter "~1.0.0" + ws@^6.0.0: - version "6.1.2" - resolved "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8" + version "6.2.1" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" dependencies: async-limiter "~1.0.0" -x-xss-protection@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.1.0.tgz#4f1898c332deb1e7f2be1280efb3e2c53d69c1a7" +x-xss-protection@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.2.0.tgz#3170498ff8e7e8159f4896b27fa4d4810c2ff486" -xml-name-validator@^2.0.1: - version "2.0.1" - resolved "http://r.cnpmjs.org/xml-name-validator/download/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "http://r.cnpmjs.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" y18n@^3.2.1: version "3.2.1" - resolved "http://r.cnpmjs.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" y18n@^4.0.0: version "4.0.0" @@ -11411,11 +10678,11 @@ y18n@^4.0.0: yallist@^2.1.2: version "2.1.2" - resolved "http://r.cnpmjs.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" yargs-parser@^10.0.0: version "10.1.0" @@ -11425,7 +10692,7 @@ yargs-parser@^10.0.0: yargs-parser@^7.0.0: version "7.0.0" - resolved "http://r.cnpmjs.org/yargs-parser/download/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" dependencies: camelcase "^4.1.0" @@ -11437,7 +10704,7 @@ yargs-parser@^9.0.2: yargs@^11.0.0: version "11.1.0" - resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + resolved "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" dependencies: cliui "^4.0.0" decamelize "^1.1.1" @@ -11454,7 +10721,7 @@ yargs@^11.0.0: yargs@^8.0.1: version "8.0.2" - resolved "http://r.cnpmjs.org/yargs/download/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + resolved "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" dependencies: camelcase "^4.1.0" cliui "^3.2.0" @@ -11470,14 +10737,12 @@ yargs@^8.0.1: y18n "^3.2.1" yargs-parser "^7.0.0" -yargs@~3.10.0: - version "3.10.0" - resolved "http://r.cnpmjs.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" +yauzl@2.10.0: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" yauzl@2.4.1: version "2.4.1" @@ -11485,29 +10750,13 @@ yauzl@2.4.1: dependencies: fd-slicer "~1.0.1" -yauzl@2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.0.1" - -zen-observable-ts@^0.8.10, zen-observable-ts@^0.8.13: - version "0.8.13" - resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.13.tgz#ae1fd77c84ef95510188b1f8bca579d7a5448fc2" - dependencies: - zen-observable "^0.8.0" - -zen-observable-ts@^0.8.9: - version "0.8.9" - resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1" +zen-observable-ts@^0.8.10, zen-observable-ts@^0.8.19: + version "0.8.19" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz#c094cd20e83ddb02a11144a6e2a89706946b5694" dependencies: + tslib "^1.9.3" zen-observable "^0.8.0" -zen-observable@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.6.1.tgz#01dbed3bc8d02cbe9ee1112c83e04c807f647244" - zen-observable@^0.8.0: - version "0.8.8" - resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42" + version "0.8.14" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.14.tgz#d33058359d335bc0db1f0af66158b32872af3bf7"