diff --git a/.circleci/config.yml b/.circleci/config.yml index a01ec1697a..328faa1561 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -55,9 +55,9 @@ jobs: - run: name: Visual Tests command: yarn test:visual -# - run: -# name: Project Tests -# command: yarn test:projects:cra-ts + - run: + name: Project Tests + command: yarn test:projects - run: name: Danger JS command: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 018dcd8507..2118f286fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Fix support for fallback values in styles (`color: ['#ccc', 'rgba(0, 0, 0, 0.5)']`) @miroslavstastny ([#573](https://github.com/stardust-ui/react/pull/573)) - Fix styles for RTL mode of doc site component examples @kuzhelov ([#579](https://github.com/stardust-ui/react/pull/579)) - Prevent blind props forwarding for `createShorthand` calls if the value is a React element and remove manual check for `Input` `wrapper` @Bugaa92 ([#496](https://github.com/stardust-ui/react/pull/496)) +- Fix issue with bundling package with Rollup and Parcel @layershifter ([#570](https://github.com/stardust-ui/react/pull/570)) ### Features - `Ref` components uses `forwardRef` API by default @layershifter ([#491](https://github.com/stardust-ui/react/pull/491)) diff --git a/build/gulp/tasks/test-projects.tsx b/build/gulp/tasks/test-projects.tsx index 6410308906..a490a78e30 100644 --- a/build/gulp/tasks/test-projects.tsx +++ b/build/gulp/tasks/test-projects.tsx @@ -1,5 +1,7 @@ +import * as debug from 'debug' import * as fs from 'fs' -import { task } from 'gulp' +import { series, task } from 'gulp' +import * as path from 'path' import sh from '../sh' import * as rimraf from 'rimraf' @@ -15,12 +17,13 @@ const log = msg => { console.log('='.repeat(80)) } -const runIn = path => cmd => sh(`cd ${path} && ${cmd}`) +export const createPackageFilename = () => tmp.tmpNameSync({ prefix: 'stardust-', postfix: '.tgz' }) -const buildAndPackStardust = async (): Promise => { - await sh('yarn build:dist') +export const runIn = path => cmd => sh(`cd ${path} && ${cmd}`) - return (await sh(`npm pack`, true)).trim() +export const buildAndPackStardust = async (packageFilename: string) => { + await sh('yarn build:dist') + await sh(`yarn pack --filename ${packageFilename}`) } const createReactApp = async (atTempDirectory: string, appName: string): Promise => { @@ -90,8 +93,10 @@ export default App; //////// PREPARE STARDUST PACKAGE /////// log('STEP 0. Preparing Stardust package..') - const stardustPackageFilename = await buildAndPackStardust() - log(`Stardust package is published: ${paths.base(stardustPackageFilename)}`) + const packageFilename = createPackageFilename() + + await buildAndPackStardust(packageFilename) + log(`Stardust package is published: ${packageFilename}`) try { //////// CREATE TEST REACT APP /////// @@ -107,7 +112,7 @@ export default App; //////// ADD STARDUST AS A DEPENDENCY /////// log('STEP 2. Add Stardust dependency to test project..') - await runInTestApp(`yarn add ${paths.base(stardustPackageFilename)}`) + await runInTestApp(`yarn add ${packageFilename}`) log("Stardust is successfully added as test project's dependency.") //////// REFERENCE STARDUST COMPONENTS IN TEST APP's MAIN FILE /////// @@ -120,6 +125,49 @@ export default App; log('Test project is built successfully!') } finally { - fs.unlinkSync(stardustPackageFilename) + fs.unlinkSync(packageFilename) } }) + +task('test:projects:rollup', async () => { + const logger = debug('bundle:rollup') + logger.enabled = true + + const packageFilename = createPackageFilename() + const scaffoldPath = paths.base.bind(null, 'build/gulp/tasks/test-projects/rollup') + + await buildAndPackStardust(packageFilename) + logger(`✔️Stardust UI package was prepared: ${packageFilename}`) + + const tmpDirectory = tmp.dirSync({ prefix: 'stardust-' }).name + logger(`✔️Temporary directory was created: ${tmpDirectory}`) + + const dependencies = [ + 'rollup', + 'rollup-plugin-replace', + 'rollup-plugin-commonjs', + 'rollup-plugin-node-resolve', + 'react', + 'react-dom', + ].join(' ') + await runIn(tmpDirectory)(`yarn add ${dependencies}`) + logger(`✔️Dependencies were installed`) + + await runIn(tmpDirectory)(`yarn add ${packageFilename}`) + logger(`✔️Stardust UI was added to dependencies`) + + fs.copyFileSync(scaffoldPath('app.js'), path.resolve(tmpDirectory, 'app.js')) + fs.copyFileSync(scaffoldPath('rollup.config.js'), path.resolve(tmpDirectory, 'rollup.config.js')) + logger(`✔️Source and bundler's config were created`) + + await runIn(tmpDirectory)(`yarn rollup -c`) + logger(`✔️Example project was successfully built: ${tmpDirectory}`) +}) + +task( + 'test:projects', + series( + // 'test:projects:cra-ts', Temporary disabled + 'test:projects:rollup', + ), +) diff --git a/build/gulp/tasks/test-projects/rollup/app.js b/build/gulp/tasks/test-projects/rollup/app.js new file mode 100644 index 0000000000..a8b26efaca --- /dev/null +++ b/build/gulp/tasks/test-projects/rollup/app.js @@ -0,0 +1,12 @@ +import React from 'react' +import ReactDOM from 'react-dom' +import { Button, Provider, themes } from '@stardust-ui/react' + +ReactDOM.render( + React.createElement( + Provider, + { theme: themes.teams }, + React.createElement(Button, { content: 'Theming' }), + ), + document.getElementById('root'), +) diff --git a/build/gulp/tasks/test-projects/rollup/rollup.config.js b/build/gulp/tasks/test-projects/rollup/rollup.config.js new file mode 100644 index 0000000000..e5fa0105b0 --- /dev/null +++ b/build/gulp/tasks/test-projects/rollup/rollup.config.js @@ -0,0 +1,67 @@ +import replace from 'rollup-plugin-replace' +import resolve from 'rollup-plugin-node-resolve' +import commonjs from 'rollup-plugin-commonjs' + +const warningWhitelist = [ + 'THIS_IS_UNDEFINED', // comes from TS transforms + 'CIRCULAR_DEPENDENCY', // we should fix all other circular imports + 'UNUSED_EXTERNAL_IMPORT', // to avoid throw on unused externals +] + +export default { + external: [ + 'lodash', + 'lodash/fp', + 'prop-types', + 'react', + 'react-dom', + 'react-is', + ], + input: 'app.js', + onwarn: (warning, warn) => { + if (warningWhitelist.includes(warning.code)) { + warn(warning) + return + } + + throw warning + }, + output: { + file: 'bundle.js', + format: 'iife', + globals: { + lodash: '_', + 'lodash/fp': 'fp', + 'prop-types': 'PropTypes', + react: 'React', + 'react-dom': 'ReactDOM', + 'react-is': 'ReactIs', + }, + sourcemap: true, + }, + plugins: [ + replace({ + 'process.env.NODE_ENV': JSON.stringify('development'), + }), + resolve(), + commonjs({ + include: 'node_modules/**', + namedExports: { + 'node_modules/keyboard-key/src/keyboardKey.js': [ + 'ArrowDown', + 'ArrowUp', + 'ArrowLeft', + 'ArrowRight', + 'End', + 'Enter', + 'Escape', + 'Home', + 'getCode', + 'Spacebar', + 'Tab', + ], + 'node_modules/what-input/dist/what-input.js': ['ask'], + }, + }), + ], +} diff --git a/docs/src/prototypes/chatMessageWithPopover/ChatMessageWithPopover.tsx b/docs/src/prototypes/chatMessageWithPopover/ChatMessageWithPopover.tsx index a5b00b4df5..ea3454ed1f 100644 --- a/docs/src/prototypes/chatMessageWithPopover/ChatMessageWithPopover.tsx +++ b/docs/src/prototypes/chatMessageWithPopover/ChatMessageWithPopover.tsx @@ -1,7 +1,7 @@ import { ChatMessage } from '@stardust-ui/react' import * as React from 'react' -import * as cx from 'classnames' +import cx from 'classnames' import Popover from './Popover' const janeAvatar = { diff --git a/docs/src/prototypes/chatMessageWithPopover/Popover.tsx b/docs/src/prototypes/chatMessageWithPopover/Popover.tsx index 64634a72f9..bf32dbf03b 100644 --- a/docs/src/prototypes/chatMessageWithPopover/Popover.tsx +++ b/docs/src/prototypes/chatMessageWithPopover/Popover.tsx @@ -10,7 +10,7 @@ import { } from '@stardust-ui/react' import { ReactChildren } from 'types/utils' import * as React from 'react' -import * as cx from 'classnames' +import cx from 'classnames' export interface PopoverProps { className?: string diff --git a/docs/src/views/IntegrateCustomComponents.tsx b/docs/src/views/IntegrateCustomComponents.tsx index ffd91383b4..bfbdec7a89 100644 --- a/docs/src/views/IntegrateCustomComponents.tsx +++ b/docs/src/views/IntegrateCustomComponents.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import * as cx from 'classnames' +import cx from 'classnames' import { NavLink } from 'react-router-dom' import { Header } from 'semantic-ui-react' import { diff --git a/package.json b/package.json index c0023458f8..25b67686ed 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "scripts": { "build": "gulp build", "build:docs": "gulp --series dll build:docs", - "build:dist": "gulp --series dll build:dist", + "build:dist": "gulp --series build:dist", "ci": "yarn lint && yarn prettier && yarn test --strict", "predeploy:docs": "cross-env NODE_ENV=production yarn build:docs", "deploy:docs": "gulp deploy:docs", @@ -37,7 +37,7 @@ "test:watch": "gulp test:watch", "test:vulns": "snyk test", "test:visual": "gulp screener", - "test:projects:cra-ts": "gulp test:projects:cra-ts", + "test:projects": "gulp test:projects", "generate:component": "gulp generate:component" }, "lint-staged": { @@ -75,7 +75,6 @@ }, "devDependencies": { "@babel/standalone": "^7.1.0", - "@types/classnames": "^2.2.4", "@types/color": "^3.0.0", "@types/enzyme": "^3.1.14", "@types/faker": "^4.1.3", @@ -114,7 +113,7 @@ "gulp-rename": "^1.3.0", "gulp-replace": "^1.0.0", "gulp-transform": "^3.0.5", - "gulp-typescript": "^5.0.0-alpha.1", + "gulp-typescript": "^5.0.0", "gulp-util": "^3.0.8", "html-webpack-plugin": "^3.2.0", "husky": "^0.14.3", diff --git a/src/components/Avatar/Avatar.tsx b/src/components/Avatar/Avatar.tsx index 790c63979b..154ab22807 100644 --- a/src/components/Avatar/Avatar.tsx +++ b/src/components/Avatar/Avatar.tsx @@ -1,6 +1,8 @@ import * as PropTypes from 'prop-types' import * as React from 'react' -import { Image, Label, Status } from '../../' +import Image from '../Image/Image' +import Label from '../Label/Label' +import Status from '../Status/Status' import { Extendable, ShorthandValue } from '../../../types/utils' import { createShorthandFactory, diff --git a/src/components/Chat/ChatMessage.tsx b/src/components/Chat/ChatMessage.tsx index 3acbd70672..bd33694d03 100644 --- a/src/components/Chat/ChatMessage.tsx +++ b/src/components/Chat/ChatMessage.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import * as PropTypes from 'prop-types' -import * as cx from 'classnames' +import cx from 'classnames' import { childrenExist, diff --git a/src/components/Input/Input.tsx b/src/components/Input/Input.tsx index c9f9898b66..2b649e03c0 100644 --- a/src/components/Input/Input.tsx +++ b/src/components/Input/Input.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import * as PropTypes from 'prop-types' -import * as cx from 'classnames' +import cx from 'classnames' import * as _ from 'lodash' import { diff --git a/src/components/ItemLayout/ItemLayout.tsx b/src/components/ItemLayout/ItemLayout.tsx index 25f6cf1b38..e13cf32df7 100644 --- a/src/components/ItemLayout/ItemLayout.tsx +++ b/src/components/ItemLayout/ItemLayout.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import * as PropTypes from 'prop-types' -import * as cx from 'classnames' +import cx from 'classnames' import { createShorthandFactory, diff --git a/src/components/Label/Label.tsx b/src/components/Label/Label.tsx index db7bfb6e99..eb04276c41 100644 --- a/src/components/Label/Label.tsx +++ b/src/components/Label/Label.tsx @@ -13,7 +13,9 @@ import { commonPropTypes, } from '../../lib' -import { Icon, Image, Layout } from '../..' +import Icon from '../Icon/Icon' +import Image from '../Image/Image' +import Layout from '../Layout/Layout' import { Accessibility } from '../../lib/accessibility/types' import { Extendable, ShorthandValue } from '../../../types/utils' diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx index 6a30d159d7..15f5720cdc 100644 --- a/src/components/Layout/Layout.tsx +++ b/src/components/Layout/Layout.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import * as PropTypes from 'prop-types' -import * as cx from 'classnames' +import cx from 'classnames' import { UIComponent, UIComponentProps, commonPropTypes } from '../../lib' import { Extendable } from '../../../types/utils' diff --git a/src/components/Menu/MenuItem.tsx b/src/components/Menu/MenuItem.tsx index aa6a014384..5020eeb0b2 100644 --- a/src/components/Menu/MenuItem.tsx +++ b/src/components/Menu/MenuItem.tsx @@ -1,5 +1,5 @@ import * as _ from 'lodash' -import * as cx from 'classnames' +import cx from 'classnames' import * as PropTypes from 'prop-types' import * as React from 'react' diff --git a/src/components/Popup/Popup.tsx b/src/components/Popup/Popup.tsx index 4c0ef62862..e53bd696da 100644 --- a/src/components/Popup/Popup.tsx +++ b/src/components/Popup/Popup.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { createPortal } from 'react-dom' +import * as ReactDOM from 'react-dom' import * as PropTypes from 'prop-types' import * as _ from 'lodash' import { Popper, PopperChildrenProps } from 'react-popper' @@ -196,7 +196,7 @@ export default class Popup extends AutoControlledComponent ) } diff --git a/src/components/Portal/PortalInner.tsx b/src/components/Portal/PortalInner.tsx index 5a4d07196d..028ff173c1 100644 --- a/src/components/Portal/PortalInner.tsx +++ b/src/components/Portal/PortalInner.tsx @@ -1,7 +1,7 @@ import * as PropTypes from 'prop-types' import * as _ from 'lodash' -import { Component } from 'react' -import { createPortal } from 'react-dom' +import * as React from 'react' +import * as ReactDOM from 'react-dom' import { isBrowser, ChildrenComponentProps, commonPropTypes } from '../../lib' export interface PortalInnerProps extends ChildrenComponentProps { @@ -26,7 +26,7 @@ export interface PortalInnerProps extends ChildrenComponentProps { /** * An inner component that allows you to render children outside their parent. */ -class PortalInner extends Component { +class PortalInner extends React.Component { public static propTypes = { ...commonPropTypes.createCommon({ animated: false, @@ -55,7 +55,7 @@ class PortalInner extends Component { public render() { const { children, context } = this.props - return context && createPortal(children, context) + return context && ReactDOM.createPortal(children, context) } } diff --git a/src/components/Ref/RefFindNode.tsx b/src/components/Ref/RefFindNode.tsx index 931f6ea8f0..1a29e485ba 100644 --- a/src/components/Ref/RefFindNode.tsx +++ b/src/components/Ref/RefFindNode.tsx @@ -1,6 +1,6 @@ import * as PropTypes from 'prop-types' import * as React from 'react' -import { findDOMNode } from 'react-dom' +import * as ReactDOM from 'react-dom' import { ChildrenComponentProps, handleRef } from '../../lib' @@ -20,7 +20,7 @@ export default class RefFindNode extends React.Component { } componentDidMount() { - handleRef(this.props.innerRef, findDOMNode(this)) + handleRef(this.props.innerRef, ReactDOM.findDOMNode(this)) } componentWillUnmount() { diff --git a/src/components/Status/Status.tsx b/src/components/Status/Status.tsx index 80410fa281..0bd69637a4 100644 --- a/src/components/Status/Status.tsx +++ b/src/components/Status/Status.tsx @@ -1,6 +1,6 @@ import * as PropTypes from 'prop-types' import * as React from 'react' -import { Icon } from '../../' +import Icon from '../Icon/Icon' import { customPropTypes, diff --git a/src/components/Tree/TreeItem.tsx b/src/components/Tree/TreeItem.tsx index da274605e5..d1bd961fdd 100644 --- a/src/components/Tree/TreeItem.tsx +++ b/src/components/Tree/TreeItem.tsx @@ -15,7 +15,7 @@ import { UIComponentProps, ChildrenComponentProps, } from '../../lib' -import { ShorthandRenderFunction, ShorthandValue } from 'utils' +import { ShorthandRenderFunction, ShorthandValue } from '../../../types/utils' export interface TreeItemProps extends UIComponentProps, ChildrenComponentProps { /** diff --git a/src/lib/accessibility/FocusZone/FocusZone.tsx b/src/lib/accessibility/FocusZone/FocusZone.tsx index 253dd8efff..c874649c52 100644 --- a/src/lib/accessibility/FocusZone/FocusZone.tsx +++ b/src/lib/accessibility/FocusZone/FocusZone.tsx @@ -8,7 +8,7 @@ import { FocusZoneProps, } from './FocusZone.types' import * as keyboardKey from 'keyboard-key' -import * as cx from 'classnames' +import cx from 'classnames' import * as _ from 'lodash' import { getNextElement, diff --git a/src/lib/commonPropTypes.ts b/src/lib/commonPropTypes.ts index caed444a75..0dab2712a4 100644 --- a/src/lib/commonPropTypes.ts +++ b/src/lib/commonPropTypes.ts @@ -1,5 +1,5 @@ import * as PropTypes from 'prop-types' -import { customPropTypes } from './index' +import * as customPropTypes from './customPropTypes' export interface CreateCommonConfig { animated?: boolean diff --git a/src/lib/createAnimationStyles.tsx b/src/lib/createAnimationStyles.tsx index d0dca5e19f..a82ddbd7ec 100644 --- a/src/lib/createAnimationStyles.tsx +++ b/src/lib/createAnimationStyles.tsx @@ -1,5 +1,5 @@ import { ThemePrepared, AnimationProp } from '../themes/types' -import { callable } from './index' +import callable from './callable' const createAnimationStyles = (animation: AnimationProp, theme: ThemePrepared) => { let animationCSSProp = {} diff --git a/src/lib/factories.tsx b/src/lib/factories.tsx index c7b18e6552..ab431d07ba 100644 --- a/src/lib/factories.tsx +++ b/src/lib/factories.tsx @@ -1,5 +1,5 @@ import * as _ from 'lodash' -import * as cx from 'classnames' +import cx from 'classnames' import * as React from 'react' import { ShorthandValue, diff --git a/src/lib/renderComponent.tsx b/src/lib/renderComponent.tsx index 812eb1cfd9..cdca16e350 100644 --- a/src/lib/renderComponent.tsx +++ b/src/lib/renderComponent.tsx @@ -1,4 +1,4 @@ -import * as cx from 'classnames' +import cx from 'classnames' import * as React from 'react' import * as _ from 'lodash' import { FelaTheme } from 'react-fela' diff --git a/types/classnames/index.d.ts b/types/classnames/index.d.ts new file mode 100644 index 0000000000..ef7e16be82 --- /dev/null +++ b/types/classnames/index.d.ts @@ -0,0 +1,20 @@ +// An internal typings for `classnames` package +// Copied from: https://github.com/JedWatson/classnames/blob/master/index.d.ts +// Should be removed after the release on new version +declare module 'classnames' { + type ClassValue = string | number | ClassDictionary | ClassArray | undefined | null | false + + interface ClassDictionary { + [id: string]: boolean | undefined | null + } + + interface ClassArray extends Array {} + + interface ClassNamesFn { + (...classes: ClassValue[]): string + } + + const classNames: ClassNamesFn + + export default classNames +} diff --git a/yarn.lock b/yarn.lock index aa068df3d7..d12b9d6ab4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -107,11 +107,6 @@ resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.9.tgz#b5990152604c2ada749b7f88cab3476f21f39d7b" integrity sha512-q6LuBI0t5u04f0Q4/R+cGBqIbZMtJkVvCSF+nTfFBBdQqQvJR/mNHeWjRkszyLl7oyf2rDoKUYMEjTw5AV0hiw== -"@types/classnames@^2.2.4": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.4.tgz#d3ee9ebf714aa34006707b8f4a58fd46b642305a" - integrity sha512-UWUmNYhaIGDx8Kv0NSqFRwP6HWnBMXam4nBacOrjIiPBKKCdWMCe77+Nbn6rI9+Us9c+BhE26u84xeYQv2bKeA== - "@types/color-convert@*": version "1.9.0" resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-1.9.0.tgz#bfa8203e41e7c65471e9841d7e306a7cd8b5172d" @@ -517,16 +512,16 @@ ansi-colors@^1.0.1: dependencies: ansi-wrap "^0.1.0" -ansi-colors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-2.0.2.tgz#1a95e0163c461846d44cbdea97bb2ac1aa35f1b2" - integrity sha512-lqxzclDUlcMM72ab/b4imVvMCyO+jELG+a5DPuE2qFAwGkzQilb6iEgzQPhSmNCM7onBHsq/9Mggh4HaqilTlA== - ansi-colors@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.1.tgz#9638047e4213f3428a11944a7d4b31cba0a3ff95" integrity sha512-Xt+zb6nqgvV9SWAVp0EG3lRsHcbq5DDgqjPPz6pwgtj6RKz65zGXMNa82oJfOSBA/to6GmRP7Dr+6o+kbApTzQ== +ansi-colors@^3.0.5: + version "3.2.2" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.2.tgz#e49349137dbeb6d381b91e607c189915e53265ba" + integrity sha512-kJmcp4PrviBBEx95fC3dYRiC/QSN3EBd0GU1XoNEk/IuUa92rsB6o90zP3w5VAyNznR38Vkc9i8vk5zK6T7TxA== + ansi-cyan@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" @@ -4233,15 +4228,15 @@ gulp-transform@^3.0.5: gulp-util "^3.0.8" tslib "^1.7.1" -gulp-typescript@^5.0.0-alpha.1: - version "5.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/gulp-typescript/-/gulp-typescript-5.0.0-alpha.3.tgz#c49a306cbbb8c97f5fe8a79208671b6642ef9861" - integrity sha512-6iSBjqBXAUqRsLUh/9XtlOnSzpPMbLrr5rqGj4UPLtGpDwFHW/fVTuRgv6LAWiKesLIUDDM0ourxvcpu2trecQ== +gulp-typescript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gulp-typescript/-/gulp-typescript-5.0.0.tgz#aac065a88bca95d1f960d4934a307feed2d091f8" + integrity sha512-lMj2U+Ni6HyFaY2nr1sSQ6D014eHil5L1i52XWBaAQUR9UAUUp9btnm4yRBT2Jb8xhrwqmhMssZf/g2B7cinCA== dependencies: - ansi-colors "^2.0.2" + ansi-colors "^3.0.5" plugin-error "^1.0.1" source-map "^0.7.3" - through2 "^2.0.3" + through2 "^3.0.0" vinyl "^2.1.0" vinyl-fs "^3.0.3" @@ -8421,6 +8416,15 @@ readable-stream@1.1.x, readable-stream@^1.1.8, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" +"readable-stream@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" + integrity sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -9715,6 +9719,13 @@ string_decoder@^1.0.0, string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -9972,6 +9983,14 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" +through2@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.0.tgz#468b461df9cd9fcc170f22ebf6852e467e578ff2" + integrity sha512-8B+sevlqP4OiCjonI1Zw03Sf8PuV1eRsYQgLad5eonILOdyeRsY27A/2Ze8IlvlMvq31OH+3fz/styI7Ya62yQ== + dependencies: + readable-stream "2 || 3" + xtend "~4.0.1" + through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -10608,7 +10627,7 @@ use@^3.1.0: dependencies: kind-of "^6.0.2" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=