diff --git a/.travis.yml b/.travis.yml index 6b0840430..b83c11baa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,11 @@ before_install: - export PATH=$HOME/.yarn/bin:$PATH jobs: include: - - name: "Build" - script: yarn run ci + - name: "Code Lint" + script: yarn lint + - name: "Unit Tests" + script: yarn test - name: "E2E Tests" script: yarn test:e2e + - name: "Build" + script: npm-run-all clean build:i18n build:ci diff --git a/README.md b/README.md index 8bbb4aabd..6839328eb 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ To self-host the Box Content Preview library, follow these steps: 1. Either fork the repo and check out the version you want to host or download the specific version as a zip: * Check out a specific version with `git checkout v2.5.0` * Download a specific version as a zip from https://github.com/box/box-content-preview/releases -2. Install dependencies and build the library with `yarn install && yarn run prod` +2. Install dependencies and build the library with `yarn install && yarn prod` 3. Self-host everything except for the `dev` folder from the `/dist` folder. You must not alter the folder structure and `third-party` needs to be in the same folder as `2.4.0`. For example, if you self-host using a `box-assets` directory, these URLs must be accessible: * https://cdn.YOUR_SITE.com/box-assets/2.4.0/en-US/preview.js * https://cdn.YOUR_SITE.com/box-assets/third-party/text/0.114.0/papaparse.min.js @@ -334,7 +334,7 @@ Development Setup 6. Add the upstream repo to your remotes `git remote add upstream git@github.com:box/box-content-preview.git`. 7. Verify your remotes are properly set up `git remote -v`. You should pull updates from the Box repo `upstream` and push changes to your fork `origin`. 8. Install dependencies `yarn install` -9. Test your first build! `yarn run build` +9. Test your first build! `yarn build` 10. To automatically rsync files after a Webpack build, add a build/rsync.json file with a `location` field. This file should look like: ``` { @@ -353,13 +353,13 @@ Install the following plugins in your preferred editor ### Yarn commands -* `yarn run build` to generate resource bundles and JS webpack bundles. -* `yarn run start` to only generate JS webpack bundles on file changes. -* `yarn run start:dev` to launch a webpack-dev-server instance for local development. -* `yarn run test` launches karma tests with PhantomJS. -* `yarn run test -- --src=PATH/TO/SRC/FILENAME` launches test only for `src/lib/PATH/TO/SRC/__tests__/FILENAME-test.js` instead of all tests. For example, `yarn run test -- --src=viewers/media/MediaBase` launches tests for `src/lib/viewers/media/__tests__/MediaBase-test.js`. This also works for directories, e.g. `yarn run test -- --src=viewers/doc/`. -* `yarn run debug` launches karma tests with PhantomJS for debugging. Open the URL mentioned in the console. -* `yarn run debug -- --src=path/to/src/FILENAME` launches debugging for `src/lib/path/to/src/__tests__/FILENAME-test.js` instead of all tests. Open the URL mentioned in the console. +* `yarn build` to generate resource bundles and JS webpack bundles. +* `yarn start` to only generate JS webpack bundles on file changes. +* `yarn start:dev` to launch a webpack-dev-server instance for local development. +* `yarn test` launches karma tests with PhantomJS. +* `yarn test -- --src=PATH/TO/SRC/FILENAME` launches test only for `src/lib/PATH/TO/SRC/__tests__/FILENAME-test.js` instead of all tests. For example, `yarn test -- --src=viewers/media/MediaBase` launches tests for `src/lib/viewers/media/__tests__/MediaBase-test.js`. This also works for directories, e.g. `yarn test -- --src=viewers/doc/`. +* `yarn test:watch` launches karma tests with PhantomJS for debugging. Open the URL mentioned in the console. +* `yarn test:watch -- --src=path/to/src/FILENAME` launches debugging for `src/lib/path/to/src/__tests__/FILENAME-test.js` instead of all tests. Open the URL mentioned in the console. For more script commands see `package.json`. Test coverage reports are available under reports/coverage. diff --git a/build/release.sh b/build/release.sh index 40d6b5414..cd301aefc 100755 --- a/build/release.sh +++ b/build/release.sh @@ -70,7 +70,7 @@ reset_to_master() { build_lint_and_test() { # The build command includes linting - yarn run build && yarn run test || return 1 + yarn build && yarn test || return 1 } diff --git a/package.json b/package.json index 901bda1fe..c39a8ed9a 100644 --- a/package.json +++ b/package.json @@ -1,148 +1,153 @@ { - "name": "box-content-preview", - "version": "2.5.0", - "description": "Box Content Preview UI Element", - "author": "Box (https://www.box.com/)", - "license": "SEE LICENSE IN LICENSE", - "repository": { - "type": "git", - "url": "git@github.com:box/box-content-preview.git" - }, - "devDependencies": { - "@commitlint/cli": "^5.2.0", - "autoprefixer": "^7.2.1", - "axios": "^0.18.0", - "babel-core": "^6.26.0", - "babel-eslint": "^8.0.3", - "babel-loader": "^7.1.2", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-react-remove-properties": "^0.2.5", - "babel-plugin-transform-builtin-extend": "^1.1.2", - "babel-plugin-transform-class-properties": "^6.23.0", - "babel-plugin-transform-decorators-legacy": "^1.3.4", - "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-plugin-transform-require-ignore": "^0.1.1", - "babel-preset-es2015": "^6.24.0", - "babel-preset-es2016": "^6.24.1", - "babel-preset-react": "^6.23.0", - "box-annotations": "^2.3.0", - "box-locales": "^0.0.1", - "box-react-ui": "^22.7.0", - "chai": "^4.2.0", - "chai-dom": "^1.8.1", - "conventional-changelog-cli": "^1.3.5", - "conventional-github-releaser": "^2.0.0", - "create-react-class": "^15.6.2", - "css-loader": "^0.28.7", - "cssnano-cli": "^1.0.5", - "cypress": "^3.1.5", - "eslint": "^4.12.1", - "eslint-config-airbnb": "^16.1.0", - "eslint-config-prettier": "^2.9.0", - "eslint-import-resolver-webpack": "^0.8.3", - "eslint-plugin-babel": "^4.1.1", - "eslint-plugin-chai-friendly": "^0.4.1", - "eslint-plugin-cypress": "^2.2.0", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-jsx-a11y": "^6.0.2", - "eslint-plugin-react": "^7.5.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "^1.1.5", - "fscreen": "^1.0.2", - "husky": "^0.14.3", - "i18n-webpack-plugin": "^1.0.0", - "jsuri": "^1.3.1", - "karma": "^3.1.4", - "karma-chai": "^0.1.0", - "karma-chai-dom": "^1.1.0", - "karma-chrome-launcher": "^2.2.0", - "karma-coverage": "^1.1.2", - "karma-fixture": "^0.2.6", - "karma-html2js-preprocessor": "^1.1.0", - "karma-junit-reporter": "^1.2.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.5", - "karma-phantomjs-launcher": "^1.0.4", - "karma-sinon": "^1.0.5", - "karma-sinon-chai": "^2.0.2", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^3.0.5", - "lint-staged": "^5.0.0", - "lodash": "^4.17.5", - "mocha": "^4.0.1", - "mock-local-storage": "^1.0.2", - "mojito-rb-gen": "^0.0.1", - "node-noop": "^1.0.0", - "node-sass": "4.9.3", - "npm-run-all": "^4.1.5", - "optimize-css-assets-webpack-plugin": "^3.2.0", - "phantomjs-prebuilt": "^2.1.16", - "postcss-loader": "^2.0.9", - "postcss-sass": "^0.3.0", - "prettier": "^1.8.2", - "prettier-eslint-cli": "^4.4.2", - "raw-loader": "^0.5.1", - "react": "^16.7.0", - "react-dom": "^16.7.0", - "react-virtualized": "^9.13.0", - "sass-loader": "^6.0.6", - "sinon": "^7.2.3", - "sinon-chai": "3.3.0", - "string-replace-loader": "^1.3.0", - "style-loader": "^0.19.0", - "stylelint": "^8.3.1", - "stylelint-config-standard": "^18.0.0", - "stylelint-order": "^0.7.0", - "stylelint-scss": "^2.2.0", - "wait-on": "^3.2.0", - "webpack": "^3.10.0", - "webpack-bundle-analyzer": "^2.9.1", - "webpack-dev-server": "^2.11.3" - }, - "engines": { - "node": ">=8.9.4", - "yarn": ">=1.10.0" - }, - "scripts": { - "build": "yarn run clean && yarn run build-rb && yarn run lint && yarn run dev", - "build-ci": "./node_modules/.bin/webpack --progress --colors --config build/webpack.config.js", - "build-rb": "mojito-rb-gen -s src/i18n -o src/i18n/json -b en-US.properties", - "ci": "yarn install && yarn run clean && yarn run build-rb && yarn run lint && yarn run test && yarn run build-ci", - "clean": "rm -rf dist && rm -rf reports/coverage && rm -rf src/i18n/json", - "commitmsg": "commitlint -e", - "cy:open": "yarn cy:wait; yarn cypress open", - "cy:run": "yarn cy:wait; yarn cypress run --spec test/integration/**/*.test.js", - "cy:wait": "wait-on http-get://localhost:8000", - "debug": "yarn install && NODE_ENV=test ./node_modules/.bin/karma start build/karma.conf.js --no-single-run --auto-watch", - "dev": "yarn install && BABEL_ENV=dev NODE_ENV=dev ./node_modules/.bin/webpack --progress --colors --config build/webpack.config.js", - "lint": "NODE_ENV=dev ./node_modules/.bin/eslint src/lib && ./node_modules/.bin/stylelint 'src/lib/**/*.scss'", - "precommit": "lint-staged", - "prepush": "yarn run lint", - "prettier": "prettier-eslint \"src/lib/**/*.js\" --print-width 120 --single-quote --tab-width 4 --write", - "prod": "yarn run build-rb && BABEL_ENV=production NODE_ENV=production node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --progress --colors --config build/webpack.config.js", - "release": "yarn run clean && yarn run build-rb && yarn run lint && yarn run test && yarn run prod", - "start": "yarn install && BABEL_ENV=dev NODE_ENV=dev ./node_modules/.bin/webpack --watch --progress --colors --config build/webpack.config.js", - "start:dev": "yarn run build-rb && LANGUAGE=en-US BABEL_ENV=dev NODE_ENV=dev ./node_modules/.bin/webpack-dev-server --config build/webpack.config.js", - "test": "yarn install && NODE_ENV=test node --max_old_space_size=4096 ./node_modules/.bin/karma start build/karma.conf.js", - "test:e2e": "npm-run-all -p -r start:dev cy:run", - "test:e2e:open": "npm-run-all -p -r start:dev cy:open", - "upgrade-pdfjs": "./build/upgrade_pdfjs.sh && ./build/minify_pdfjs.sh", - "upgrade-annotations": "./build/upgrade_annotations.sh", - "major": "./build/release.sh -m", - "minor": "./build/release.sh -n", - "patch": "./build/release.sh -p" - }, - "lint-staged": { - "tests/**/*.js": [ - "prettier-eslint --print-width 120 --single-quote --tab-width 4 --write", - "git add" - ], - "src/lib/**/*.js": [ - "prettier-eslint --print-width 120 --single-quote --tab-width 4 --write", - "git add" - ] - }, - "resolutions": { - "mojito-rb-gen/merge": "1.2.1" - } + "name": "box-content-preview", + "version": "2.5.0", + "description": "Box Content Preview UI Element", + "author": "Box (https://www.box.com/)", + "license": "SEE LICENSE IN LICENSE", + "repository": { + "type": "git", + "url": "git@github.com:box/box-content-preview.git" + }, + "devDependencies": { + "@commitlint/cli": "^5.2.0", + "autoprefixer": "^7.2.1", + "axios": "^0.18.0", + "babel-core": "^6.26.0", + "babel-eslint": "^8.0.3", + "babel-loader": "^7.1.2", + "babel-plugin-istanbul": "^4.1.4", + "babel-plugin-react-remove-properties": "^0.2.5", + "babel-plugin-transform-builtin-extend": "^1.1.2", + "babel-plugin-transform-class-properties": "^6.23.0", + "babel-plugin-transform-decorators-legacy": "^1.3.4", + "babel-plugin-transform-object-rest-spread": "^6.23.0", + "babel-plugin-transform-require-ignore": "^0.1.1", + "babel-preset-es2015": "^6.24.0", + "babel-preset-es2016": "^6.24.1", + "babel-preset-react": "^6.23.0", + "box-annotations": "^2.3.0", + "box-locales": "^0.0.1", + "box-react-ui": "^22.7.0", + "chai": "^4.2.0", + "chai-dom": "^1.8.1", + "conventional-changelog-cli": "^1.3.5", + "conventional-github-releaser": "^2.0.0", + "create-react-class": "^15.6.2", + "css-loader": "^0.28.7", + "cssnano-cli": "^1.0.5", + "cypress": "^3.1.5", + "eslint": "^4.12.1", + "eslint-config-airbnb": "^16.1.0", + "eslint-config-prettier": "^2.9.0", + "eslint-import-resolver-webpack": "^0.8.3", + "eslint-plugin-babel": "^4.1.1", + "eslint-plugin-chai-friendly": "^0.4.1", + "eslint-plugin-cypress": "^2.2.0", + "eslint-plugin-import": "^2.8.0", + "eslint-plugin-jsx-a11y": "^6.0.2", + "eslint-plugin-react": "^7.5.1", + "extract-text-webpack-plugin": "3.0.2", + "file-loader": "^1.1.5", + "fscreen": "^1.0.2", + "husky": "^1.3.1", + "i18n-webpack-plugin": "^1.0.0", + "jsuri": "^1.3.1", + "karma": "^3.1.4", + "karma-chai": "^0.1.0", + "karma-chai-dom": "^1.1.0", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.2", + "karma-fixture": "^0.2.6", + "karma-html2js-preprocessor": "^1.1.0", + "karma-junit-reporter": "^1.2.0", + "karma-mocha": "^1.3.0", + "karma-mocha-reporter": "^2.2.5", + "karma-phantomjs-launcher": "^1.0.4", + "karma-sinon": "^1.0.5", + "karma-sinon-chai": "^2.0.2", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^3.0.5", + "lint-staged": "^5.0.0", + "lodash": "^4.17.5", + "mocha": "^4.0.1", + "mock-local-storage": "^1.0.2", + "mojito-rb-gen": "^0.0.1", + "node-noop": "^1.0.0", + "node-sass": "4.9.3", + "npm-run-all": "^4.1.5", + "optimize-css-assets-webpack-plugin": "^3.2.0", + "phantomjs-prebuilt": "^2.1.16", + "postcss-loader": "^2.0.9", + "postcss-sass": "^0.3.0", + "prettier": "^1.8.2", + "prettier-eslint-cli": "^4.4.2", + "raw-loader": "^0.5.1", + "react": "^16.7.0", + "react-dom": "^16.7.0", + "react-virtualized": "^9.13.0", + "sass-loader": "^6.0.6", + "sinon": "^7.2.3", + "sinon-chai": "3.3.0", + "string-replace-loader": "^1.3.0", + "style-loader": "^0.19.0", + "stylelint": "^8.3.1", + "stylelint-config-standard": "^18.0.0", + "stylelint-order": "^0.7.0", + "stylelint-scss": "^2.2.0", + "wait-on": "^3.2.0", + "webpack": "^3.10.0", + "webpack-bundle-analyzer": "^2.9.1", + "webpack-dev-server": "^2.11.3" + }, + "engines": { + "node": ">=8.9.4", + "yarn": ">=1.10.0" + }, + "scripts": { + "build": "yarn setup && yarn clean && yarn build:i18n && yarn lint && yarn build:dev", + "build:ci": "yarn setup && yarn webpack --progress --colors --config build/webpack.config.js", + "build:dev": "BABEL_ENV=dev NODE_ENV=dev yarn webpack --progress --colors --config build/webpack.config.js", + "build:i18n": "mojito-rb-gen -s src/i18n -o src/i18n/json -b en-US.properties", + "build:prod": "BABEL_ENV=production NODE_ENV=production node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --progress --colors --config build/webpack.config.js", + "clean": "rm -rf dist && rm -rf reports/coverage && rm -rf src/i18n/json", + "cy:open": "yarn cy:wait; yarn cypress open", + "cy:run": "yarn cy:wait; yarn cypress run --spec test/integration/**/*.test.js", + "cy:wait": "wait-on http-get://localhost:8000", + "lint": "npm-run-all lint:*", + "lint:css": "NODE_ENV=dev yarn stylelint 'src/lib/**/*.scss'", + "lint:js": "NODE_ENV=dev yarn eslint src/lib", + "release": "yarn setup && yarn clean && yarn build:i18n && yarn lint && yarn test && yarn build:prod", + "release:major": "./build/release.sh -m", + "release:minor": "./build/release.sh -n", + "release:patch": "./build/release.sh -p", + "setup": "yarn install", + "start": "yarn setup && yarn build:dev --watch", + "start:dev": "yarn build:i18n && LANGUAGE=en-US BABEL_ENV=dev NODE_ENV=dev yarn webpack-dev-server --config build/webpack.config.js", + "test": "yarn setup && yarn clean && yarn build:i18n && NODE_ENV=test yarn karma start build/karma.conf.js", + "test:e2e": "npm-run-all -p -r start:dev cy:run", + "test:e2e:open": "npm-run-all -p -r start:dev cy:open", + "test:watch": "yarn test --no-single-run --auto-watch", + "upgrade:annotations": "./build/upgrade_annotations.sh", + "upgrade:pdfjs": "./build/upgrade_pdfjs.sh && ./build/minify_pdfjs.sh" + }, + "lint-staged": { + "tests/**/*.js": [ + "prettier-eslint --print-width 120 --single-quote --tab-width 4 --write", + "git add" + ], + "src/lib/**/*.js": [ + "prettier-eslint --print-width 120 --single-quote --tab-width 4 --write", + "git add" + ] + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged", + "pre-push": "yarn lint", + "commit-msg": "commitlint -e" + } + }, + "resolutions": { + "mojito-rb-gen/merge": "1.2.1" + } } diff --git a/yarn.lock b/yarn.lock index fddfac473..acaf7d948 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1818,6 +1818,13 @@ cachedir@1.3.0: dependencies: os-homedir "^1.0.1" +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1825,6 +1832,13 @@ caller-path@^0.1.0: dependencies: callsites "^0.2.0" +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -1835,6 +1849,11 @@ callsites@^0.2.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -2049,6 +2068,11 @@ ci-info@^1.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2654,6 +2678,16 @@ cosmiconfig@^3.0.1, cosmiconfig@^3.1.0: parse-json "^3.0.0" require-from-string "^2.0.1" +cosmiconfig@^5.0.7: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" + integrity sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.0" + parse-json "^4.0.0" + create-ecdh@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" @@ -3352,6 +3386,13 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" +end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + engine.io-client@~3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" @@ -3871,6 +3912,19 @@ execa@^0.8.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + 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" + execall@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" @@ -4241,6 +4295,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" @@ -4467,11 +4528,23 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -5045,14 +5118,21 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -husky@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" - integrity sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA== - dependencies: - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" +husky@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" + integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== + dependencies: + cosmiconfig "^5.0.7" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^6.0.0" + is-ci "^2.0.0" + pkg-dir "^3.0.0" + please-upgrade-node "^3.1.1" + read-pkg "^4.0.1" + run-node "^1.0.0" + slash "^2.0.0" i18n-webpack-plugin@^1.0.0: version "1.0.0" @@ -5100,6 +5180,14 @@ ignore@^3.2.7, ignore@^3.3.3, ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" integrity sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA== +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" @@ -5303,12 +5391,12 @@ is-ci@1.0.10: dependencies: ci-info "^1.0.0" -is-ci@^1.0.10: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" - integrity sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: - ci-info "^1.0.0" + ci-info "^2.0.0" is-data-descriptor@^0.1.4: version "0.1.4" @@ -5795,6 +5883,14 @@ js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.9.0, js-yaml@^3.9.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.13.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" @@ -6305,6 +6401,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash._baseget@^3.0.0: version "3.7.2" resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4" @@ -7200,11 +7304,6 @@ normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= - normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -7396,7 +7495,7 @@ on-headers@~1.0.1: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c= -once@1.x, once@^1.3.0: +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -7528,6 +7627,13 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -7535,6 +7641,13 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" @@ -7552,6 +7665,11 @@ p-try@^1.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" @@ -7800,6 +7918,20 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== + dependencies: + semver-compare "^1.0.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" @@ -8389,6 +8521,14 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -8599,6 +8739,15 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.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.3.3: version "2.3.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" @@ -9056,6 +9205,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" @@ -9178,6 +9332,11 @@ selfsigned@^1.9.1: dependencies: node-forge "0.7.5" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + semver-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" @@ -9357,6 +9516,11 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"