diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 7cabf241e..000000000 --- a/.eslintrc +++ /dev/null @@ -1,96 +0,0 @@ -{ - "parser": "babel-eslint", - "extends": [ - "airbnb", - "plugin:flowtype/recommended", - "plugin:react/recommended", - "prettier", - "prettier/flowtype", - "prettier/react" - ], - "env": { - "es6": true, - "browser": true, - "mocha": true, - "commonjs": true, - "jest": true - }, - "globals": { - "afterAll": false, - "afterEach": false, - "beforeAll": false, - "beforeEach": false, - "describe": false, - "expect": false, - "it": false, - "assert": false, - "fixture": false, - "__": false, - "Assert": false, - "Feature": false, - "Before": false, - "After": false, - "Scenario": false, - "jest": false - }, - "rules": { - "camelcase": ["off"], - "react/jsx-boolean-value": ["off"], - "react/no-unused-prop-types": ["off"], - "react/default-props-match-prop-types": ["off", { - "allowRequiredDefaults": true - }], - "react/sort-comp": ["off"], - "react/forbid-prop-types": ["off"], - "no-param-reassign": ["error", { - "props": false - }], - "react/require-default-props": ["off"], - "react/display-name": ["off"], - "quotes": ["error", "single"], - "comma-dangle": ["error", "never"], - "indent": ["error", 4, { - "SwitchCase": 1 - }], - "import/imports-first": ["off"], - "jsx-quotes": ["error", "prefer-single"], - "max-len": ["off"], - "react/jsx-indent-props": ["error", 4], - "react/jsx-indent": ["error", 4], - "no-underscore-dangle": ["off"], - "react/jsx-filename-extension": ["off"], - "arrow-body-style": ["off"], - "class-methods-use-this": ["off"], - "arrow-parens": ["error", "always"], - "no-plusplus": ["error", { - "allowForLoopAfterthoughts": true - }], - "import/no-extraneous-dependencies": ["off"], - "import/no-webpack-loader-syntax": ["off"], - "valid-jsdoc": ["warn", { - "prefer": { - "returns": "return", - "class": "constructor" - }, - "preferType": { - "array": "Array", - "function": "Function", - "object": "Object", - "Boolean": "boolean", - "Number": "number", - "String": "string" - } - }], - "prefer-destructuring": ["error", { - "object": true, - "array": false - }] - }, - "settings": { - "import/resolver": { - "webpack": { - "config-index": 0 - } - } - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..7281024b5 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,13 @@ +const eslintrc = require.resolve("@box/frontend/eslint/eslintrc.js"); + +module.exports = { + extends: [eslintrc], + rules: { + camelcase: 0, // fixme + "class-methods-use-this": 0, // fixme + "import/no-extraneous-dependencies": 0, // fixme + "import/no-unresolved": "off", // Allows JS files to import TS files + "prefer-destructuring": ["error", { object: true, array: false }], + "react/default-props-match-prop-types": 0 + } +}; diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 000000000..82dd00e57 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1 @@ +module.exports = require('@box/frontend/prettier/prettierrc.js'); diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index 0ccbd730e..000000000 --- a/.stylelintrc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": "stylelint-config-standard", - "plugins": [ - "stylelint-order", - "stylelint-scss" - ], - "rules": { - "indentation": 4, - "at-rule-no-vendor-prefix": true, - "at-rule-no-unknown": [true, { "ignoreAtRules": ["include", "mixin", "extend"] }], - "media-feature-name-no-vendor-prefix": true, - "property-no-vendor-prefix": true, - "selector-no-vendor-prefix": true, - "value-no-vendor-prefix": true, - "number-leading-zero": never, - "declaration-no-important": true, - "no-descending-specificity": null, - "order/properties-alphabetical-order": [true, { "severity": "warning" }] - } -} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index b3ae54ecd..33705ee80 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,21 @@ # @desktop @mobile @enabled language: node_js node_js: - - '8' -cache: yarn -notifications: - email: - recipients: - - preview-alerts@box.com + - '10' +addons: + apt: + packages: + - libgconf-2-4 +cache: + yarn: true + directories: + - node_modules + - ~/.cache/Cypress +before_install: + - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.19.0 + - export HUSKY_SKIP_HOOKS=1 + - export PATH=$HOME/.yarn/bin:$PATH + - export TZ=America/Los_Angeles jobs: include: - name: "Code Lint" @@ -15,3 +24,7 @@ jobs: script: yarn test - name: "E2E Tests" script: yarn test:e2e +notifications: + email: + recipients: + - preview-alerts@box.com diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 000000000..670d0a0bb --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,2 @@ +# Root +* @box/ui-elements diff --git a/build/prod.js b/build/prod.js index 6bef755e6..dd294e9a0 100644 --- a/build/prod.js +++ b/build/prod.js @@ -1,5 +1,5 @@ const workerFarm = require('worker-farm'); -const locales = require('box-locales'); +const locales = require('@box/languages'); const numCPUs = require('os').cpus().length; const { execSync } = require('child_process'); const path = require('path'); @@ -11,14 +11,15 @@ let counter = 0; const workers = workerFarm( { maxConcurrentWorkers: numCPUs - 2, - maxRetries: 0 + maxRetries: 0, }, - require.resolve('./build_locale.js') + require.resolve('./build_locale.js'), ); -locales.forEach((locale) => { - workers(locale, (error) => { - if (++counter === bundleCount || error) { // eslint-disable-line +/* eslint-disable */ +locales.forEach(locale => { + workers(locale, error => { + if (++counter === bundleCount || error) { // terminate after all locales have been processed workerFarm.end(workers); } @@ -29,3 +30,4 @@ locales.forEach((locale) => { } }); }); +/* eslint-enable */ diff --git a/commitlint.config.js b/commitlint.config.js index 3c321af44..57f3eb55c 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,70 +1,2 @@ -module.exports = { - rules: { - "body-leading-blank": [ - 2, - "always" - ], - "body-max-length": [ - 0 - ], - "body-min-length": [ - 0 - ], - "body-tense": [ - 0, - "never" - ], - "footer-leading-blank": [ - 0, - "never" - ], - "header-max-length": [ - 2, - "always", - 72 - ], - "header-min-length": [ - 2, - "always", - 3 - ], - "subject-tense": [ - 0 - ], - "subject-max-length": [ - 0 - ], - "subject-min-length": [ - 0 - ], - "type-case": [ - 0, - "never" - ], - "type-empty": [ - 2, - "never" - ], - "type-enum": [ - 2, - "always", - [ - "Fix", - "New", - "Breaking", - "Docs", - "Build", - "Upgrade", - "Chore", - "Update", - "Release" - ] - ], - "type-max-length": [ - 0 - ], - "type-min-length": [ - 0 - ] - } -}; +// eslint-disable-next-line import/no-extraneous-dependencies +module.exports = require('@box/frontend/commitlint/commitlint.config.js'); diff --git a/lint-staged.config.js b/lint-staged.config.js new file mode 100644 index 000000000..cf3654e4d --- /dev/null +++ b/lint-staged.config.js @@ -0,0 +1,9 @@ +module.exports = { + '*.js': ['eslint --fix', 'git add'], + '*.json': ['prettier --write --parser=json', 'git add'], + '*.html': ['prettier --write --parser=html', 'git add'], + '*.md': ['prettier --write --parser=markdown', 'git add'], + '*.scss': ['prettier --write --parser=scss', 'stylelint --syntax scss --fix', 'git add'], + '*.ts': ['eslint --ext=.ts --fix', 'git add'], + '*.tsx': ['eslint --ext=.tsx --fix', 'git add'], +}; diff --git a/package.json b/package.json index 84bb804a3..74960fc5c 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,12 @@ }, "devEngines": { "node": ">=8.x", - "npm": ">=3.x", - "yarn": ">=1.0.0" + "yarn": ">=1.10.0" }, "peerDependencies": { "box-react-ui": "^29.0.0", "form-serialize": "^0.7.2", "immutable": "^3.7.4", - "lodash": "^4.17.10", "react": "^16.4.2", "react-dom": "^16.3.1", "react-immutable-proptypes": "^2.1.0", @@ -33,6 +31,12 @@ "scroll-into-view-if-needed": "^2.2.16" }, "devDependencies": { + "@box/frontend": "^6.0.0", + "@box/languages": "^1.0.0", + "@commitlint/cli": "^8.2.0", + "@commitlint/config-conventional": "^8.2.0", + "@typescript-eslint/eslint-plugin": "^2.12.0", + "@typescript-eslint/parser": "^2.12.0", "autoprefixer": "^9.1.3", "axios": "^0.18.0", "babel-cli": "^6.26.0", @@ -55,7 +59,6 @@ "babel-preset-react": "^6.24.1", "babel-preset-stage-1": "^6.24.1", "bluebird": "^3.5.2", - "box-locales": "^0.0.1", "box-node-sdk": "^1.22.0", "box-react-ui": "^29.0.0", "chai": "^4.1.2", @@ -63,8 +66,7 @@ "circular-dependency-plugin": "^5.0.2", "classnames": "^2.2.5", "codeceptjs-webdriverio": "^1.1.0", - "commitlint": "^7.0.0", - "conventional-changelog-cli": "^2.0.5", + "conventional-changelog-cli": "^2.0.28", "conventional-github-releaser": "^3.1.2", "core-js": "^2.5.7", "css-loader": "^1.0.0", @@ -73,28 +75,31 @@ "enzyme": "^3.4.4", "enzyme-adapter-react-16": "^1.2.0", "enzyme-to-json": "^3.3.4", - "eslint": "^5.4.0", - "eslint-config-airbnb": "^17.1.0", - "eslint-config-prettier": "^3.0.1", - "eslint-import-resolver-webpack": "^0.10.1", - "eslint-plugin-babel": "^5.1.0", - "eslint-plugin-cypress": "^2.2.1", - "eslint-plugin-flowtype": "^2.46.1", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-jsx-a11y": "^6.1.1", - "eslint-plugin-react": "^7.11.1", - "extract-text-webpack-plugin": "^3.0.2", + "eslint": "^6.7.2", + "eslint-config-airbnb": "^18.0.1", + "eslint-config-prettier": "^6.7.0", + "eslint-plugin-babel": "^5.3.0", + "eslint-plugin-cypress": "^2.8.1", + "eslint-plugin-flowtype": "^4.5.2", + "eslint-plugin-formatjs": "^1.5.4", + "eslint-plugin-import": "^2.19.1", + "eslint-plugin-jest": "^23.1.1", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-lodash": "^6.0.0", + "eslint-plugin-prettier": "^3.1.2", + "eslint-plugin-react": "^7.17.0", + "eslint-plugin-react-hooks": "^1.7.0", "fetch-mock": "^6.5.2", "fetch-mock-forwarder": "^1.0.0", "flow-bin": "^0.79.0", "flow-typed": "^2.5.1", "form-serialize": "^0.7.2", - "husky": "^1.1.2", + "husky": "^3.1.0", "immutable": "^3.7.4", "jest": "^23.5.0", "jest-canvas-mock": "^1.1.0", "jws": "^3.1.5", - "lint-staged": "^7.2.2", + "lint-staged": "^9.5.0", "mini-css-extract-plugin": "^0.4.2", "mocha": "^5.2.0", "mousetrap": "^1.6.2", @@ -103,8 +108,7 @@ "optimize-css-assets-webpack-plugin": "^4.0.2", "pikaday": "^1.8.0", "postcss-loader": "^3.0.0", - "prettier": "^1.14.2", - "prettier-eslint-cli": "^4.4.2", + "prettier": "^1.19.1", "prop-types": "^15.6.1", "properties-parser": "^0.3.1", "pug": "^2.0.3", @@ -126,11 +130,12 @@ "sass-loader": "^7.1.0", "scroll-into-view-if-needed": "^2.2.16", "style-loader": "^0.23.0", - "stylelint": "^9.5.0", - "stylelint-config-standard": "^18.0.0", - "stylelint-order": "^1.0.0", - "stylelint-scss": "^3.3.0", + "stylelint": "^12.0.0", + "stylelint-config-rational-order": "^0.1.2", + "stylelint-config-standard": "^19.0.0", + "stylelint-order": "^3.1.1", "tabbable": "^3.1.1", + "typescript": "^3.7.3", "uglifyjs-webpack-plugin": "^1.3.0", "wait-on": "^3.2.0", "webpack": "^4.12.0", @@ -170,12 +175,6 @@ "upgrade:brui": "./build/upgrade_brui.sh", "upgrade:flow-typed": "yarn add flow-typed && yarn flow-typed update -i dev" }, - "lint-staged": { - "src/**/*.js": [ - "prettier-eslint --print-width 120 --single-quote --tab-width 4 --write", - "git add" - ] - }, "husky": { "hooks": { "commit-msg": "commitlint -e", diff --git a/src/AnnotationThread.js b/src/AnnotationThread.js index 9ff61c2b8..26ab7c3cf 100644 --- a/src/AnnotationThread.js +++ b/src/AnnotationThread.js @@ -12,7 +12,7 @@ import { DATA_TYPE_ANNOTATION_INDICATOR, STATES, THREAD_EVENT, - TYPES + TYPES, } from './constants'; import AnnotationPopover from './components/AnnotationPopover'; @@ -160,7 +160,7 @@ class AnnotationThread extends EventEmitter { return util.shouldDisplayMobileUI(this.container) ? this.container : // $FlowFixMe - util.getPageEl(this.annotatedElement, this.location.page); + util.getPageEl(this.annotatedElement, this.location.page); } /** @@ -180,25 +180,25 @@ class AnnotationThread extends EventEmitter { const pageEl = this.getPopoverParent(); this.popoverComponent = render( , - util.getPopoverLayer(pageEl) + util.getPopoverLayer(pageEl), ); this.emit(THREAD_EVENT.renderPopover); } @@ -240,10 +240,10 @@ class AnnotationThread extends EventEmitter { message, permissions: { can_edit: true, - can_delete: true + can_delete: true, }, createdBy: this.api.user, - createdAt: new Date().toISOString() + createdAt: new Date().toISOString(), }); this.state = STATES.inactive; @@ -254,8 +254,8 @@ class AnnotationThread extends EventEmitter { this.api // $FlowFixMe .create(annotationData) - .then((savedAnnotation) => this.updateTemporaryAnnotation(id, savedAnnotation)) - .catch((error) => this.handleThreadSaveError(error, id)) + .then(savedAnnotation => this.updateTemporaryAnnotation(id, savedAnnotation)) + .catch(error => this.handleThreadSaveError(error, id)) ); } @@ -318,7 +318,7 @@ class AnnotationThread extends EventEmitter { /* eslint-disable no-console */ console.error( THREAD_EVENT.deleteError, - `User does not have the correct permissions to delete annotation with ID ${annotation.id}.` + `User does not have the correct permissions to delete annotation with ID ${annotation.id}.`, ); /* eslint-enable no-console */ return Promise.reject(); @@ -330,7 +330,7 @@ class AnnotationThread extends EventEmitter { /* eslint-disable no-console */ console.error( THREAD_EVENT.deleteError, - `Annotation with ID ${annotation.threadNumber} not deleted from server` + `Annotation with ID ${annotation.threadNumber} not deleted from server`, ); /* eslint-enable no-console */ this.deleteSuccessHandler(); @@ -568,16 +568,16 @@ class AnnotationThread extends EventEmitter { return { item: { id: this.fileVersionId, - type: 'file_version' + type: 'file_version', }, details: { type, location: this.location, - threadID: this.threadID + threadID: this.threadID, }, message, createdBy: this.api.user, - thread: this.threadNumber + thread: this.threadNumber, }; } @@ -636,7 +636,7 @@ class AnnotationThread extends EventEmitter { getThreadEventData(): Object { const threadData = { type: this.type, - threadID: this.threadID + threadID: this.threadID, }; // $FlowFixMe diff --git a/src/Annotator.js b/src/Annotator.js index 06b9af98f..31663bbb8 100644 --- a/src/Annotator.js +++ b/src/Annotator.js @@ -9,7 +9,7 @@ import { ANNOTATOR_EVENT, CONTROLLER_EVENT, CLASS_ANNOTATIONS_LOADED, - SELECTOR_BOX_PREVIEW_HEADER_CONTAINER + SELECTOR_BOX_PREVIEW_HEADER_CONTAINER, } from './constants'; import FileVersionAPI from './api/FileVersionAPI'; @@ -46,7 +46,7 @@ class Annotator extends EventEmitter { fileId: this.fileId, token, permissions: this.permissions, - anonymousUserName: this.localized.anonymousUserName + anonymousUserName: this.localized.anonymousUserName, }); // Get applicable annotation mode controllers @@ -77,7 +77,7 @@ class Annotator extends EventEmitter { */ destroy() { // Destroy all annotate buttons - Object.keys(this.modeControllers).forEach((mode) => { + Object.keys(this.modeControllers).forEach(mode => { this.modeControllers[mode].destroy(); }); @@ -139,7 +139,7 @@ class Annotator extends EventEmitter { const { TYPE: annotationTypes } = this.options.annotator; if (type && annotationTypes) { - if (!annotationTypes.some((annotationType) => type === annotationType)) { + if (!annotationTypes.some(annotationType => type === annotationType)) { return false; } } @@ -159,7 +159,7 @@ class Annotator extends EventEmitter { this.render(); this.annotatedElement.classList.add(CLASS_ANNOTATIONS_LOADED); }) - .catch((error) => this.emit(ANNOTATOR_EVENT.loadError, error)); + .catch(error => this.emit(ANNOTATOR_EVENT.loadError, error)); } /** @@ -216,9 +216,9 @@ class Annotator extends EventEmitter { const options = { header: this.options.header, hasTouch: this.hasTouch, - locale: this.locale + locale: this.locale, }; - Object.keys(this.modeControllers).forEach((type) => { + Object.keys(this.modeControllers).forEach(type => { const controller = this.modeControllers[type]; controller.init({ container: this.container, @@ -233,7 +233,7 @@ class Annotator extends EventEmitter { apiHost: this.options.apiHost, token: this.options.token, getLocation: this.getLocationFromEvent, - options + options, }); controller.addListener('annotationcontrollerevent', this.handleControllerEvents); @@ -252,9 +252,9 @@ class Annotator extends EventEmitter { return; } - Object.keys(this.modeControllers).forEach((mode) => { + Object.keys(this.modeControllers).forEach(mode => { this.modeControllers[mode].destroyPendingThreads(); - this.modeControllers[mode].applyActionToThreads((thread) => { + this.modeControllers[mode].applyActionToThreads(thread => { thread.unmountPopover(); }); }); @@ -275,11 +275,11 @@ class Annotator extends EventEmitter { return this.api .fetchVersionAnnotations(this.fileVersionId) - .then((threads) => { + .then(threads => { this.annotationMap = threads; this.emit(ANNOTATOR_EVENT.fetch); }) - .catch((err) => { + .catch(err => { this.emit(ANNOTATOR_EVENT.loadError, err); }); } @@ -297,7 +297,7 @@ class Annotator extends EventEmitter { } // Generate map of page to annotations - Object.keys(annotationMap).forEach((id) => { + Object.keys(annotationMap).forEach(id => { const annotation = annotationMap[id]; const controller = this.modeControllers[annotation.type]; @@ -356,7 +356,7 @@ class Annotator extends EventEmitter { * @return {AnnotationType|null} Current annotation mode */ getCurrentAnnotationMode(): ?AnnotationType { - const modes = Object.keys(this.modeControllers).filter((mode) => { + const modes = Object.keys(this.modeControllers).filter(mode => { const controller = this.modeControllers[mode]; return controller.isEnabled(); }); @@ -415,7 +415,7 @@ class Annotator extends EventEmitter { */ render() { this.resetAnnotationUI(); - Object.keys(this.modeControllers).forEach((mode) => this.modeControllers[mode].render()); + Object.keys(this.modeControllers).forEach(mode => this.modeControllers[mode].render()); } /** @@ -426,7 +426,7 @@ class Annotator extends EventEmitter { */ renderPage(pageNum: number) { this.resetAnnotationUI(pageNum); - Object.keys(this.modeControllers).forEach((mode) => this.modeControllers[mode].renderPage(pageNum)); + Object.keys(this.modeControllers).forEach(mode => this.modeControllers[mode].renderPage(pageNum)); } /** @@ -440,12 +440,12 @@ class Annotator extends EventEmitter { const { can_annotate = false, can_view_annotations_all = false, - can_view_annotations_self = false + can_view_annotations_self = false, } = permissions; return { can_annotate, can_view_annotations_all, - can_view_annotations_self + can_view_annotations_self, }; } @@ -495,7 +495,7 @@ class Annotator extends EventEmitter { return; } - Object.keys(this.modeControllers).forEach((mode) => { + Object.keys(this.modeControllers).forEach(mode => { const annotation = this.modeControllers[mode].getThreadByID(threadID); if (annotation) { annotation.scrollIntoView(); @@ -592,7 +592,7 @@ class Annotator extends EventEmitter { data, annotatorName: annotator ? annotator.NAME : '', fileVersionId: this.fileVersionId, - fileId: this.fileId + fileId: this.fileId, }); } } diff --git a/src/Annotator.scss b/src/Annotator.scss index a85eb1c6b..4f41fbe7d 100644 --- a/src/Annotator.scss +++ b/src/Annotator.scss @@ -1,4 +1,4 @@ -@import 'common'; +@import "common"; .ba-annotate-mode-background { background-color: $fours; @@ -6,16 +6,16 @@ .ba-mode-header, .bp-header.ba-mode-header { + position: relative; background-color: $twos; border: none; - position: relative; } .bp-header button.ba-btn-annotate-point-exit, .bp-header button.ba-btn-annotate-draw-cancel { + color: $off-white; background-color: $twos; border: solid $off-white 1px; - color: $off-white; &:hover { background-color: $black; @@ -23,8 +23,8 @@ } .bp-header button.ba-btn-annotate-draw-post { - background-color: $off-white; color: $twos; + background-color: $off-white; &:hover { background-color: $white; @@ -33,10 +33,10 @@ .bp-container .ba-point-post-cancel-container, .bp-container .ba-draw-post-cancel-container { - margin-right: 20px; position: absolute; - right: 0; top: 0; + right: 0; + margin-right: 20px; button { height: 32px; @@ -53,19 +53,19 @@ .ba-btn-annotate-draw-redo, button.ba-btn-annotate-draw-undo, button.ba-btn-annotate-draw-redo { + margin: 5px; background: none; border: none; - margin: 5px; svg { - fill: $off-white; vertical-align: middle; + fill: $off-white; } } @media #{$mobile} { - margin-left: 0; margin-right: 0; + margin-left: 0; } } @@ -74,16 +74,16 @@ //------------------------------------------------------------------------------ .ba-point-annotation-marker { + position: absolute; + width: 24px; + padding: 0; background-color: transparent; border-style: none; cursor: pointer; - padding: 0; - position: absolute; - width: 24px; svg { - fill: fade-out($box-blue, .35); transition: fill .5s; + fill: fade-out($box-blue, .35); } &:hover svg { @@ -95,22 +95,22 @@ // CSS for highlights //------------------------------------------------------------------------------ .ba-highlight-dialog { - border-top: 20px solid transparent; // Transparent border for hover detection - color: $fours; - display: table; - font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; position: absolute; z-index: 130; + display: table; + color: $fours; + font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; + border-top: 20px solid transparent; // Transparent border for hover detection } .ba-annotation-drawing-dialog, .ba-annotation-highlight-dialog, .ba-annotation-highlight-dialog:hover { + padding: 5px 6px; + font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; background-color: $white; border: 1px solid $seesee; border-radius: 3px; - font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; - padding: 5px 6px; // Center buttons .ba-add-highlight-btn { @@ -123,13 +123,13 @@ .ba-btn-annotate-draw-add, .ba-btn-annotate-draw-delete { - color: lighten($better-black, 10%); padding: 8px; + color: lighten($better-black, 10%); &:hover, &:active { - color: $better-black; padding: 8px; + color: $better-black; } } @@ -139,18 +139,18 @@ .ba-btn-annotate-draw-add, .ba-btn-annotate-draw-add:active, .ba-btn-annotate-draw-add:hover { - font-size: 13px; margin-top: -3px; padding: 4px; + font-size: 13px; } } .ba-create-highlight-comment { - background-color: #fff; + padding: 10px 9px; overflow-x: hidden; overflow-y: auto; - padding: 10px 9px; white-space: normal; + background-color: #fff; } .bp-use-default-cursor { @@ -164,33 +164,33 @@ .ba-annotation-layer-highlight, .ba-annotation-layer-highlight-comment { - cursor: text; - left: 0; - mix-blend-mode: multiply; position: absolute; top: 15px; // Match 15px padding top on page + left: 0; + cursor: text; + mix-blend-mode: multiply; } // Quad point positioning - the helper divs are positioned relative to the Rangy-created element .bp-doc .rangy-highlight { - background-color: $highlight-yellow; position: relative; + background-color: $highlight-yellow; } // These helper divs allow us to calculate the quad points of an element .ba-quad-corner-container { - bottom: 0; - left: 0; position: absolute; - right: 0; top: 0; + right: 0; + bottom: 0; + left: 0; } .ba-quad-corner { - background: none; - height: 0; position: absolute; width: 0; + height: 0; + background: none; &.corner1 { bottom: 0; @@ -198,18 +198,18 @@ } &.corner2 { - bottom: 0; right: 0; + bottom: 0; } &.corner3 { - right: 0; top: 0; + right: 0; } &.corner4 { - left: 0; top: 0; + left: 0; } } @@ -244,15 +244,15 @@ .ba-annotation-layer-draw, .ba-annotation-layer-draw-in-progress { - left: 0; - mix-blend-mode: multiply; position: absolute; top: 15px; // Match 15px padding top on page + left: 0; + mix-blend-mode: multiply; } .ba-drawing-boundary { - border: 2px dashed $sevens; position: absolute; + border: 2px dashed $sevens; } //------------------------------------------------------------------------------ diff --git a/src/BoxAnnotations.js b/src/BoxAnnotations.js index a7698a3d2..57fcc9a7f 100644 --- a/src/BoxAnnotations.js +++ b/src/BoxAnnotations.js @@ -20,30 +20,30 @@ const ANNOTATORS = [ CONSTRUCTOR: DocAnnotator, VIEWER: ['Document', 'Presentation'], TYPE: [TYPES.point, TYPES.highlight, TYPES.highlight_comment, TYPES.draw], - DEFAULT_TYPES: [TYPES.point, TYPES.highlight, TYPES.highlight_comment, TYPES.draw] + DEFAULT_TYPES: [TYPES.point, TYPES.highlight, TYPES.highlight_comment, TYPES.draw], }, { NAME: 'Image', CONSTRUCTOR: ImageAnnotator, VIEWER: ['Image', 'MultiImage'], TYPE: [TYPES.point], - DEFAULT_TYPES: [TYPES.point] - } + DEFAULT_TYPES: [TYPES.point], + }, ]; const ANNOTATOR_TYPE_CONTROLLERS = { [TYPES.point]: { - CONSTRUCTOR: PointModeController + CONSTRUCTOR: PointModeController, }, [TYPES.highlight]: { - CONSTRUCTOR: HighlightModeController + CONSTRUCTOR: HighlightModeController, }, [TYPES.highlight_comment]: { - CONSTRUCTOR: HighlightModeController + CONSTRUCTOR: HighlightModeController, }, [TYPES.draw]: { - CONSTRUCTOR: DrawingModeController - } + CONSTRUCTOR: DrawingModeController, + }, }; class BoxAnnotations { @@ -86,7 +86,7 @@ class BoxAnnotations { getAnnotatorsForViewer(viewerName: string, disabledAnnotators: Array = []) { const annotators = this.getAnnotators(); const annotatorConfig = annotators.find( - (annotator) => !disabledAnnotators.includes(annotator.NAME) && annotator.VIEWER.includes(viewerName) + annotator => !disabledAnnotators.includes(annotator.NAME) && annotator.VIEWER.includes(viewerName), ); this.instantiateControllers(annotatorConfig); @@ -108,10 +108,10 @@ class BoxAnnotations { /* eslint-disable no-param-reassign */ annotatorConfig.CONTROLLERS = {}; const annotatorTypes = this.getAnnotatorTypes(annotatorConfig); - annotatorTypes.forEach((type) => { + annotatorTypes.forEach(type => { if (type in ANNOTATOR_TYPE_CONTROLLERS) { annotatorConfig.CONTROLLERS[type] = new ANNOTATOR_TYPE_CONTROLLERS[type].CONSTRUCTOR( - annotatorConfig.NAME + annotatorConfig.NAME, ); } }); @@ -130,8 +130,8 @@ class BoxAnnotations { // Sets supported annotation types based on passed in options const options = this.viewerOptions[annotatorConfig.NAME]; if (options.enabledTypes) { - return options.enabledTypes.filter((type) => { - return annotatorConfig.TYPE.some((allowed) => allowed === type); + return options.enabledTypes.filter(type => { + return annotatorConfig.TYPE.some(allowed => allowed === type); }); } } else if (!this.viewerConfig) { @@ -144,10 +144,10 @@ class BoxAnnotations { // Keeping disabledTypes for backwards compatibility const disabledTypes = this.viewerConfig.disabledTypes || []; - return enabledTypes.filter((type) => { + return enabledTypes.filter(type => { return ( - !disabledTypes.some((disabled) => disabled === type) && - annotatorConfig.TYPE.some((allowed) => allowed === type) + !disabledTypes.some(disabled => disabled === type) && + annotatorConfig.TYPE.some(allowed => allowed === type) ); }); } @@ -170,7 +170,7 @@ class BoxAnnotations { return modifiedAnnotator; } - modifiedAnnotator = Object.assign({}, annotator); + modifiedAnnotator = { ...annotator }; modifiedAnnotator.TYPE = this.getAnnotatorTypes(modifiedAnnotator); return modifiedAnnotator; diff --git a/src/__tests__/AnnotationThread-test.js b/src/__tests__/AnnotationThread-test.js index a84e67ed6..44cf27929 100644 --- a/src/__tests__/AnnotationThread-test.js +++ b/src/__tests__/AnnotationThread-test.js @@ -9,7 +9,7 @@ import { CLASS_ANNOTATION_POINT_MARKER, DATA_TYPE_ANNOTATION_INDICATOR, THREAD_EVENT, - CLASS_FLIPPED_POPOVER + CLASS_FLIPPED_POPOVER, } from '../constants'; let thread; @@ -20,8 +20,8 @@ describe('AnnotationThread', () => { let api = { user: { - id: '1' - } + id: '1', + }, }; beforeEach(() => { @@ -40,7 +40,7 @@ describe('AnnotationThread', () => { location: {}, threadID: '2', threadNumber: '1', - type: 'point' + type: 'point', }); thread.emit = jest.fn(); @@ -108,13 +108,13 @@ describe('AnnotationThread', () => { thread.reset = jest.fn(); thread.toggleFlippedThreadEl = jest.fn(); thread.container = { - querySelectorAll: jest.fn().mockReturnValue([rootElement]) + querySelectorAll: jest.fn().mockReturnValue([rootElement]), }; }); it('should there are no popover layers', () => { thread.container = { - querySelectorAll: jest.fn().mockReturnValue([]) + querySelectorAll: jest.fn().mockReturnValue([]), }; thread.unmountPopover(); expect(thread.popoverComponent).not.toBeNull(); @@ -133,7 +133,7 @@ describe('AnnotationThread', () => { describe('renderAnnotationPopover()', () => { const event = { stopPropagation: jest.fn(), - preventDefault: jest.fn() + preventDefault: jest.fn(), }; it('should render and display the popover for this annotation', () => { @@ -181,7 +181,7 @@ describe('AnnotationThread', () => { thread.renderAnnotationPopover = jest.fn(); }); - it('should save an annotation with the specified type and text', (done) => { + it('should save an annotation with the specified type and text', done => { thread.api.create = jest.fn().mockResolvedValue({}); const promise = thread.save('point', 'blah'); @@ -193,7 +193,7 @@ describe('AnnotationThread', () => { expect(thread.emit).toBeCalledWith(THREAD_EVENT.create); }); - it('should delete the temporary annotation and broadcast an error if there was an error saving', (done) => { + it('should delete the temporary annotation and broadcast an error if there was an error saving', done => { thread.api.create = jest.fn().mockRejectedValue({}); const promise = thread.save('point', 'blah'); @@ -219,7 +219,7 @@ describe('AnnotationThread', () => { id: '123', threadNumber: '1', threadID: 'abc', - createdAt: 'today' + createdAt: 'today', }); expect(thread.id).toEqual('123'); expect(thread.threadNumber).toEqual('1'); @@ -230,7 +230,7 @@ describe('AnnotationThread', () => { it('should add a comment to the annotation', () => { thread.updateAnnotationThread({ - message: 'something' + message: 'something', }); expect(thread.comments.length).toEqual(1); }); @@ -244,16 +244,16 @@ describe('AnnotationThread', () => { expect(data).toStrictEqual({ item: { type: 'file_version', - id: '1' + id: '1', }, details: { type, location: {}, - threadID: '2' + threadID: '2', }, message, createdBy: { id: '1' }, - thread: '1' + thread: '1', }); }); }); @@ -263,7 +263,7 @@ describe('AnnotationThread', () => { const serverAnnotation = { id: 456, threadNumber: 1, - message: 'comment' + message: 'comment', }; beforeEach(() => { @@ -310,15 +310,15 @@ describe('AnnotationThread', () => { beforeEach(() => { api = { user: { id: 1 }, - delete: jest.fn().mockResolvedValue() + delete: jest.fn().mockResolvedValue(), }; annotation = { id: 'someID', permissions: { - can_delete: true + can_delete: true, }, - threadID: 1 + threadID: 1, }; thread.api = api; @@ -330,7 +330,7 @@ describe('AnnotationThread', () => { thread.renderAnnotationPopover = jest.fn(); thread.cleanupAnnotationOnDelete = jest.fn(); thread.getThreadEventData = jest.fn().mockReturnValue({ - threadNumber: 1 + threadNumber: 1, }); thread.emit = jest.fn(); }); @@ -383,7 +383,7 @@ describe('AnnotationThread', () => { let comment; beforeEach(() => { comment = { - id: '123' + id: '123', }; thread.comments = [comment]; thread.threadID = '123abc'; @@ -447,7 +447,7 @@ describe('AnnotationThread', () => { describe('deleteErrorHandler()', () => { it('should re-render and broadcast delete error message', () => { const error = { - toString: jest.fn().mockReturnValue('error') + toString: jest.fn().mockReturnValue('error'), }; thread.deleteErrorHandler(error); expect(thread.emit).toBeCalledWith(THREAD_EVENT.render, thread.location); @@ -459,7 +459,7 @@ describe('AnnotationThread', () => { describe('scrollIntoView()', () => { beforeEach(() => { thread.annotatedElement = { - scrollTop: 0 + scrollTop: 0, }; }); @@ -485,7 +485,7 @@ describe('AnnotationThread', () => { let pageEl; beforeEach(() => { pageEl = { - scrollIntoView: jest.fn() + scrollIntoView: jest.fn(), }; util.getPageEl = jest.fn().mockReturnValue(pageEl); }); @@ -499,9 +499,9 @@ describe('AnnotationThread', () => { expect(pageEl.scrollIntoView).not.toBeCalled(); }); - it('should scroll annotation\'s page into view', () => { + it("should scroll annotation's page into view", () => { thread.location = { - page: 1 + page: 1, }; thread.scrollToPage(); expect(pageEl.scrollIntoView).toBeCalled(); @@ -514,7 +514,7 @@ describe('AnnotationThread', () => { scrollHeight: 100, scrollTop: 0, scrollBottom: 200, - clientHeight: 50 + clientHeight: 50, }; }); @@ -649,39 +649,39 @@ describe('AnnotationThread', () => { describe('getThreadEventData()', () => { it('should return thread type and threadID', () => { thread.api.user = { - id: -1 + id: -1, }; thread.threadNumber = undefined; const data = thread.getThreadEventData(); expect(data).toStrictEqual({ type: thread.type, - threadID: thread.threadID + threadID: thread.threadID, }); }); - it('should also return annotator\'s user id', () => { + it("should also return annotator's user id", () => { thread.api.user = { - id: 1 + id: 1, }; thread.threadNumber = undefined; const data = thread.getThreadEventData(); expect(data).toStrictEqual({ type: thread.type, threadID: thread.threadID, - userId: 1 + userId: 1, }); }); it('should return thread type and threadID', () => { thread.api.user = { - id: -1 + id: -1, }; thread.threadNumber = 1; const data = thread.getThreadEventData(); expect(data).toStrictEqual({ type: thread.type, threadID: thread.threadID, - threadNumber: 1 + threadNumber: 1, }); }); }); @@ -711,12 +711,12 @@ describe('AnnotationThread', () => { thread.regenerateBoundary(); thread.location = { - x: 'something' + x: 'something', }; thread.regenerateBoundary(); thread.location = { - y: 'something' + y: 'something', }; thread.regenerateBoundary(); @@ -727,7 +727,7 @@ describe('AnnotationThread', () => { it('should set the min/max x/y values to the thread location', () => { thread.location = { x: 1, - y: 2 + y: 2, }; thread.regenerateBoundary(); expect(thread.minX).toEqual(1); diff --git a/src/__tests__/Annotator-test.js b/src/__tests__/Annotator-test.js index 307822f47..9a1fb044e 100644 --- a/src/__tests__/Annotator-test.js +++ b/src/__tests__/Annotator-test.js @@ -7,7 +7,7 @@ import { THREAD_EVENT, CONTROLLER_EVENT, SELECTOR_ANNOTATED_ELEMENT, - SELECTOR_BOX_PREVIEW_HEADER_CONTAINER + SELECTOR_BOX_PREVIEW_HEADER_CONTAINER, } from '../constants'; import * as util from '../util'; import AnnotationThread from '../AnnotationThread'; @@ -48,16 +48,16 @@ describe('Annotator', () => { const options = { annotator: { NAME: 'name', - CONTROLLERS: { something: controller } + CONTROLLERS: { something: controller }, }, - modeButtons: { something: {} } + modeButtons: { something: {} }, }; annotator = new Annotator({ container: rootElement, api, file: { - file_version: { id: 1 } + file_version: { id: 1 }, }, isMobile: false, options, @@ -67,8 +67,8 @@ describe('Annotator', () => { loadError: 'load error', createError: 'create error', deleteError: 'delete error', - authError: 'auth error' - } + authError: 'auth error', + }, }); }); @@ -153,7 +153,7 @@ describe('Annotator', () => { .then(() => { expect(annotator.render).not.toBeCalled(); }) - .catch((err) => { + .catch(err => { expect(annotator.emit).toBeCalledWith(ANNOTATOR_EVENT.loadError, err); }); }); @@ -213,11 +213,11 @@ describe('Annotator', () => { it('should call hide on each thread in map', () => { annotator.modeControllers = { type: { - render: jest.fn() + render: jest.fn(), }, type2: { - render: jest.fn() - } + render: jest.fn(), + }, }; annotator.render(); @@ -230,11 +230,11 @@ describe('Annotator', () => { it('should call hide on each thread in map on page 1', () => { annotator.modeControllers = { type: { - renderPage: jest.fn() + renderPage: jest.fn(), }, type2: { - renderPage: jest.fn() - } + renderPage: jest.fn(), + }, }; annotator.renderPage(1); expect(annotator.modeControllers.type.renderPage).toBeCalledWith(1); @@ -248,8 +248,8 @@ describe('Annotator', () => { permissions: { can_annotate: false, can_view_annotations_self: true, - can_view_annotations_all: false - } + can_view_annotations_all: false, + }, }; const permissions = annotator.getAnnotationPermissions(file); expect(permissions.can_annotate).toBeFalsy(); @@ -270,7 +270,7 @@ describe('Annotator', () => { beforeEach(() => { util.isInDialog = jest.fn().mockReturnValue(false); annotator.modeControllers = { - something: controller + something: controller, }; }); @@ -290,14 +290,14 @@ describe('Annotator', () => { describe('fetchAnnotations()', () => { const threadMap = { someID: [{}, {}], - someID2: [{}] + someID2: [{}], }; beforeEach(() => { annotator.api.fetchVersionAnnotations = jest.fn().mockResolvedValue(threadMap); annotator.permissions = { can_view_annotations_all: true, - can_view_annotations_self: true + can_view_annotations_self: true, }; annotator.emit = jest.fn(); }); @@ -305,7 +305,7 @@ describe('Annotator', () => { it('should not fetch existing annotations if the user does not have correct permissions', () => { annotator.permissions = { can_view_annotations_all: false, - can_view_annotations_self: false + can_view_annotations_self: false, }; const result = annotator.fetchAnnotations(); @@ -317,7 +317,7 @@ describe('Annotator', () => { it('should fetch existing annotations if the user can view all annotations', () => { annotator.permissions = { can_view_annotations_all: false, - can_view_annotations_self: true + can_view_annotations_self: true, }; annotator.fetchAnnotations().then(() => { @@ -329,7 +329,7 @@ describe('Annotator', () => { it('should fetch existing annotations if the user can view all annotations', () => { annotator.permissions = { can_view_annotations_all: true, - can_view_annotations_self: false + can_view_annotations_self: false, }; annotator.fetchAnnotations().then(() => { @@ -480,7 +480,7 @@ describe('Annotator', () => { annotator.getLocationFromEvent = jest.fn().mockReturnValue({ page: 1 }); annotator.emit = jest.fn(); annotator.modeControllers = { - point: controller + point: controller, }; }); @@ -488,22 +488,22 @@ describe('Annotator', () => { annotator.createPointThread({ lastPointEvent: {}, pendingThreadID: '123abc', - commentText: ' ' + commentText: ' ', }); annotator.createPointThread({ lastPointEvent: {}, - pendingThreadID: '123abc' + pendingThreadID: '123abc', }); annotator.createPointThread({ lastPointEvent: {}, - commentText: ' ' + commentText: ' ', }); annotator.createPointThread({ pendingThreadID: '123abc', - commentText: ' ' + commentText: ' ', }); expect(annotator.emit).not.toBeCalled(); }); @@ -514,7 +514,7 @@ describe('Annotator', () => { const result = annotator.createPointThread({ lastPointEvent: {}, pendingThreadID: '123abc', - commentText: 'text' + commentText: 'text', }); expect(annotator.emit).not.toBeCalled(); expect(result).toBeNull(); @@ -525,7 +525,7 @@ describe('Annotator', () => { const result = annotator.createPointThread({ lastPointEvent: {}, pendingThreadID: '123abc', - commentText: 'text' + commentText: 'text', }); expect(annotator.emit).not.toBeCalled(); expect(result).toBeNull(); @@ -540,7 +540,7 @@ describe('Annotator', () => { const result = annotator.createPointThread({ lastPointEvent: {}, pendingThreadID: '123abc', - commentText: 'text' + commentText: 'text', }); expect(thread.state).toEqual(STATES.active); @@ -566,8 +566,8 @@ describe('Annotator', () => { annotator.modeControllers = { type: { getThreadByID: jest.fn().mockReturnValue(thread), - threads: { 1: { '123abc': thread } } - } + threads: { 1: { '123abc': thread } }, + }, }; annotator.scrollToAnnotation(thread.threadID); expect(thread.scrollIntoView).toBeCalled(); @@ -583,7 +583,7 @@ describe('Annotator', () => { const data = { scale: 5, rotationAngle: 90, - pageNum: 2 + pageNum: 2, }; annotator.scaleAnnotations(data); expect(annotator.setScale).toBeCalledWith(data.scale); @@ -653,7 +653,7 @@ describe('Annotator', () => { describe('isModeAnnotatable()', () => { beforeEach(() => { annotator.options.annotator = { - TYPE: [TYPES.point, 'highlight'] + TYPE: [TYPES.point, 'highlight'], }; }); diff --git a/src/__tests__/BoxAnnotations-test.js b/src/__tests__/BoxAnnotations-test.js index e19313187..9e94c27c2 100644 --- a/src/__tests__/BoxAnnotations-test.js +++ b/src/__tests__/BoxAnnotations-test.js @@ -20,11 +20,11 @@ describe('BoxAnnotations', () => { }); describe('getAnnotators()', () => { - it('should return the loader\'s annotators', () => { + it("should return the loader's annotators", () => { expect(loader.getAnnotators()).toStrictEqual(loader.annotators); }); - it('should return an empty array if the loader doesn\'t have annotators', () => { + it("should return an empty array if the loader doesn't have annotators", () => { loader.annotators = []; expect(loader.getAnnotators()).toStrictEqual([]); }); @@ -60,9 +60,9 @@ describe('BoxAnnotations', () => { const config = { CONTROLLERS: { [TYPES.draw]: { - CONSTRUCTOR: jest.fn() - } - } + CONSTRUCTOR: jest.fn(), + }, + }, }; expect(() => loader.instantiateControllers(config)).not.toThrow(); @@ -75,14 +75,14 @@ describe('BoxAnnotations', () => { it('Should do nothing when config has no types', () => { const config = { - TYPE: undefined + TYPE: undefined, }; expect(() => loader.instantiateControllers(config)).not.toThrow(); }); it('Should instantiate controllers and assign them to the CONTROLLERS attribute', () => { const config = { - TYPE: [TYPES.draw, 'typeWithoutController'] + TYPE: [TYPES.draw, 'typeWithoutController'], }; loader.viewerConfig = { enabledTypes: [TYPES.draw] }; @@ -99,12 +99,12 @@ describe('BoxAnnotations', () => { NAME: 'Document', VIEWER: ['Document'], TYPE: ['point', 'highlight', 'highlight-comment', 'draw'], - DEFAULT_TYPES: ['point', 'highlight'] + DEFAULT_TYPES: ['point', 'highlight'], }; it('should use the specified types from options', () => { loader.viewerOptions = { - Document: { enabledTypes: ['draw'] } + Document: { enabledTypes: ['draw'] }, }; expect(loader.getAnnotatorTypes(config)).toStrictEqual(['draw']); }); @@ -120,8 +120,8 @@ describe('BoxAnnotations', () => { loader.viewerOptions = { Document: { - enabledTypes: ['point', 'timestamp'] - } + enabledTypes: ['point', 'timestamp'], + }, }; expect(loader.getAnnotatorTypes(config)).toStrictEqual(['point']); }); @@ -143,16 +143,16 @@ describe('BoxAnnotations', () => { NAME: 'Document', VIEWER: ['Document'], TYPE: ['point'], - DEFAULT_TYPES: ['point'] + DEFAULT_TYPES: ['point'], }; options = { file: { - permissions: {} + permissions: {}, }, viewer: { - NAME: 'Document' - } + NAME: 'Document', + }, }; loader.getAnnotatorTypes = jest.fn().mockReturnValue(['point']); }); @@ -183,7 +183,7 @@ describe('BoxAnnotations', () => { NAME: viewer, VIEWER: ['Document'], TYPE: ['point', 'highlight'], - DEFAULT_TYPES: ['point'] + DEFAULT_TYPES: ['point'], }; loader.getAnnotatorsForViewer = jest.fn().mockReturnValue(docAnnotator); @@ -195,7 +195,7 @@ describe('BoxAnnotations', () => { it('should return null if the config for the viewer disables annotations', () => { const config = { - enabled: false + enabled: false, }; loader.getAnnotatorsForViewer = jest.fn().mockReturnValue(annotator); expect(loader.determineAnnotator(options, config)).toBeNull(); diff --git a/src/__tests__/util-test.js b/src/__tests__/util-test.js index 5a45118a5..185293a73 100644 --- a/src/__tests__/util-test.js +++ b/src/__tests__/util-test.js @@ -6,7 +6,7 @@ import { CLASS_ANNOTATION_CARET, SELECTOR_ANNOTATION_POINT_MARKER, CLASS_ANNOTATION_POPOVER, - CLASS_ANNOTATION_POINT_MARKER + CLASS_ANNOTATION_POINT_MARKER, } from '../constants'; const DIALOG_WIDTH = 81; @@ -176,7 +176,7 @@ describe('util', () => { rootElement.querySelector('.container').appendChild(node); document.createRange = jest.fn().mockReturnValue({ selectNode: jest.fn(), - createContextualFragment: jest.fn() + createContextualFragment: jest.fn(), }); util.insertTemplate(node, '
'); @@ -233,11 +233,11 @@ describe('util', () => { it('should return null if no dimension scaling is needed', () => { const dimensions = { x: 100, - y: 100 + y: 100, }; const pageDimensions = { width: 100, - height: 130 + height: 130, }; const HEIGHT_PADDING = 30; @@ -248,11 +248,11 @@ describe('util', () => { it('should return dimension scaling factor if dimension scaling is needed', () => { const dimensions = { x: 100, - y: 100 + y: 100, }; const pageDimensions = { width: 200, - height: 230 + height: 230, }; const HEIGHT_PADDING = 30; @@ -314,7 +314,7 @@ describe('util', () => { locationHandler = util.eventToLocationHandler(getLocation, callback); event = { preventDefault: jest.fn(), - stopPropagation: jest.fn() + stopPropagation: jest.fn(), }; }); @@ -330,7 +330,7 @@ describe('util', () => { it('should do nothing when the target exists and it is not the textLayer', () => { event.target = { - nodeName: 'BUTTON' + nodeName: 'BUTTON', }; locationHandler(event); expect(callback).not.toBeCalled(); @@ -342,7 +342,7 @@ describe('util', () => { const location = util.createLocation(1, 2, undefined); expect(location).toStrictEqual({ x: 1, - y: 2 + y: 2, }); }); @@ -352,7 +352,7 @@ describe('util', () => { expect(location).toStrictEqual({ x: 1, y: 2, - dimensions: dimensionalObj + dimensions: dimensionalObj, }); }); }); @@ -449,7 +449,7 @@ describe('util', () => { permissions = { can_annotate: false, can_view_annotations_all: false, - can_view_annotations_self: false + can_view_annotations_self: false, }; }); @@ -481,11 +481,11 @@ describe('util', () => { layerEl = { width: 500, height: 500, - getContext: jest.fn() + getContext: jest.fn(), }; context = { - clearRect: jest.fn() + clearRect: jest.fn(), }; }); @@ -496,7 +496,7 @@ describe('util', () => { it('should clear the specified annotation layer', () => { const pageEl = { - querySelector: jest.fn().mockReturnValue(layerEl) + querySelector: jest.fn().mockReturnValue(layerEl), }; layerEl.getContext = jest.fn().mockReturnValue(context); util.clearCanvas(pageEl, 'anything'); @@ -538,16 +538,16 @@ describe('util', () => { minX: NaN, minY: 1, maxX: 1, - maxY: 1 - }) + maxY: 1, + }), ).toBeFalsy(); expect( util.hasValidBoundaryCoordinates({ minX: 1, minY: 1, maxX: 1, - maxY: 1 - }) + maxY: 1, + }), ).toBeTruthy(); }); diff --git a/src/_common.scss b/src/_common.scss index 7289a4c57..f1df824a0 100644 --- a/src/_common.scss +++ b/src/_common.scss @@ -1,49 +1,60 @@ -@import './variables'; +@import "./variables"; @font-face { - font-family: 'Lato'; - font-style: normal; font-weight: normal; - src: local('Lato Regular'), local('Lato-Regular'), url('https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Regular.woff2') format('woff2'), url('https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Regular.woff') format('woff'); + font-family: "Lato"; + font-style: normal; + src: + local("Lato Regular"), + local("Lato-Regular"), + url("https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Regular.woff2") + format("woff2"), + url("https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Regular.woff") + format("woff"); } @font-face { - font-family: 'Lato'; - font-style: normal; font-weight: bold; - src: local('Lato Bold'), local('Lato-Bold'), url('https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Bold.woff2') format('woff2'), url('https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Bold.woff') format('woff'); + font-family: "Lato"; + font-style: normal; + src: + local("Lato Bold"), + local("Lato-Bold"), + url("https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Bold.woff2") + format("woff2"), + url("https://cdn01.boxcdn.net/fonts/1.0.2/lato/Lato-Bold.woff") + format("woff"); } .flyout-overlay { - @import '~box-react-ui/lib/styles/common/overlay'; - @import '~box-react-ui/lib/styles/common/links'; - @import '~box-react-ui/lib/styles/common/buttons'; + @import "~box-react-ui/lib/styles/common/overlay"; + @import "~box-react-ui/lib/styles/common/links"; + @import "~box-react-ui/lib/styles/common/buttons"; } .ba { @include reset; /* stylelint-disable no-duplicate-at-import-rules */ - @import '~box-react-ui/lib/styles/common/links'; - @import '~box-react-ui/lib/styles/common/buttons'; + @import "~box-react-ui/lib/styles/common/links"; + @import "~box-react-ui/lib/styles/common/buttons"; /* stylelint-enable no-duplicate-at-import-rules */ - @import '~box-react-ui/lib/styles/common/forms'; - - background: $white; - border: 0 none; + @import "~box-react-ui/lib/styles/common/forms"; /* stylelint-disable declaration-no-important */ box-sizing: border-box !important; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; /* stylelint-enable declaration-no-important */ color: $twos; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; - height: 100%; - letter-spacing: .3px; line-height: 20px; - margin: 0; + letter-spacing: .3px; + background: $white; + border: 0 none; outline: none; - overflow: hidden; - padding: 0; user-select: none; @media #{$mobile}, #{$tablet} { @@ -99,8 +110,8 @@ .ba-annotation-dialog, .ba-create-annotation-dialog { // stylelint-disable no-duplicate-at-import-rules - @import '~box-react-ui/lib/styles/common/forms'; - @import '~box-react-ui/lib/styles/common/buttons'; + @import "~box-react-ui/lib/styles/common/forms"; + @import "~box-react-ui/lib/styles/common/buttons"; } /************************************** @@ -108,7 +119,7 @@ **************************************/ .accessibility-hidden { - left: -9999px; position: absolute; top: auto; /* Some browsers ignore left without a top */ + left: -9999px; } diff --git a/src/_variables.scss b/src/_variables.scss index fcd2963fa..aa8206256 100644 --- a/src/_variables.scss +++ b/src/_variables.scss @@ -1,8 +1,8 @@ -@import '~box-react-ui/lib/styles/variables'; +@import "~box-react-ui/lib/styles/variables"; -$mobile: '(max-width: 767px)'; -$tablet: '(min-width: 768px) and (max-width: 1024px)'; -$desktop: '(min-width: 1025px)'; +$mobile: "(max-width: 767px)"; +$tablet: "(min-width: 768px) and (max-width: 1024px)"; +$desktop: "(min-width: 1025px)"; $highlight-yellow: #fed94e; $highlight-yellow-active-hover: #ffc900; @@ -35,7 +35,7 @@ $lighter-white: rgba($white, .9) !default; $lighter-grey-blue: rgba($grey-blue, .4) !default; $lighter-light-blue: rgba($light-blue, .4) !default; -$font: Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif; +$font: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; $sidebarContentWidth: 340px; @@ -50,9 +50,9 @@ $sidebarContentWidth: 340px; /* stylelint-disable declaration-no-important */ box-sizing: border-box !important; + font-size: 13px; /* stylelint-enable declaration-no-important */ font-family: $font; - font-size: 13px; * { @include rendering; @@ -73,7 +73,7 @@ $sidebarContentWidth: 340px; } @mixin placeholder { - font-family: $font; font-weight: 200; + font-family: $font; opacity: .6; } diff --git a/src/api/API.js b/src/api/API.js index fcdc7ccdc..da7ed2c4b 100644 --- a/src/api/API.js +++ b/src/api/API.js @@ -25,7 +25,7 @@ class API extends EventEmitter { permissions: BoxItemPermissions = { can_annotate: false, can_view_annotations_all: false, - can_view_annotations_self: false + can_view_annotations_self: false, }; /** @property {CancelTokenSource} */ @@ -38,7 +38,7 @@ class API extends EventEmitter { * @return {string} UUID for annotation */ static generateID() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { /* eslint-disable */ var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8; @@ -61,7 +61,7 @@ class API extends EventEmitter { this.headers = getHeaders({}, data.token); this.user = { ...PLACEHOLDER_USER, - name: data.anonymousUserName + name: data.anonymousUserName, }; } @@ -96,7 +96,7 @@ class API extends EventEmitter { errorHandler = (error: $AxiosError): void => { this.emit(ANNOTATOR_EVENT.error, { reason: error.name, - error: error.toString() + error: error.toString(), }); }; @@ -105,7 +105,7 @@ class API extends EventEmitter { return { ...rest, email: login, - avatarUrl: profile_image + avatarUrl: profile_image, }; } @@ -116,7 +116,7 @@ class API extends EventEmitter { permissions, created_by = PLACEHOLDER_USER, created_at: createdAt, - modified_at: modifiedAt + modified_at: modifiedAt, } = entry; return { id, @@ -125,7 +125,7 @@ class API extends EventEmitter { createdBy: this.formatUserInfo(created_by), createdAt, modifiedAt, - isPending: false + isPending: false, }; } diff --git a/src/api/AnnotationAPI.js b/src/api/AnnotationAPI.js index 123dc3c6f..ce99603a6 100644 --- a/src/api/AnnotationAPI.js +++ b/src/api/AnnotationAPI.js @@ -28,7 +28,7 @@ class AnnotationAPI extends API { data: annotation, method: HTTP_POST, cancelToken: this.axiosSource.token, - headers: this.headers + headers: this.headers, }); return this.makeRequest(methodRequest, this.createSuccessHandler); @@ -44,10 +44,10 @@ class AnnotationAPI extends API { url, method: HTTP_DELETE, cancelToken: this.axiosSource.token, - headers: this.headers + headers: this.headers, }); - return this.makeRequest(methodRequest, (data) => this.deleteSuccessHandler(data, id)); + return this.makeRequest(methodRequest, data => this.deleteSuccessHandler(data, id)); } /** @@ -80,8 +80,8 @@ class AnnotationAPI extends API { canAnnotate: true, permissions: { can_delete: true, - can_edit: true - } + can_edit: true, + }, }; }; diff --git a/src/api/FileVersionAPI.js b/src/api/FileVersionAPI.js index 1f2084e42..d52476774 100644 --- a/src/api/FileVersionAPI.js +++ b/src/api/FileVersionAPI.js @@ -5,15 +5,15 @@ import { ERROR_TYPE, PLACEHOLDER_USER, TYPES } from '../constants'; const FIELDS = 'item,thread,details,message,created_by,created_at,modified_at,permissions'; type Params = { + limit?: string, marker?: string, - limit?: string }; type Data = { - type: string, - next_marker: string, + entries: Array, limit: number, - entries: Array + next_marker: string, + type: string, }; class FileVersionAPI extends API { @@ -64,10 +64,10 @@ class FileVersionAPI extends API { const methodRequest = this.axios.get(apiUrl, { cancelToken: this.axiosSource.token, headers: this.headers, - params + params, }); - return this.makeRequest(methodRequest, (data) => this.successHandler(data, params)); + return this.makeRequest(methodRequest, data => this.successHandler(data, params)); }; /** @@ -87,14 +87,14 @@ class FileVersionAPI extends API { const entries = this.data ? this.data.entries : []; this.data = { ...data, - entries: [...entries, ...data.entries] + entries: [...entries, ...data.entries], }; const { next_marker } = data; if (next_marker) { const params = { ...queryParams, - marker: next_marker + marker: next_marker, }; return this.fetchFromMarker(params); @@ -114,7 +114,7 @@ class FileVersionAPI extends API { const { entries } = this.data; // Construct map of thread ID to annotations - entries.forEach((entry) => { + entries.forEach(entry => { const { id, details, @@ -122,7 +122,7 @@ class FileVersionAPI extends API { created_by = PLACEHOLDER_USER, created_at: createdAt, modified_at: modifiedAt, - thread: threadNumber + thread: threadNumber, } = entry; const { threadID, location, type } = details; @@ -153,7 +153,7 @@ class FileVersionAPI extends API { modifiedAt, canAnnotate: this.permissions.can_annotate, canDelete: permissions.can_delete, - comments: this.appendComments(entry, annotations[threadID].comments) + comments: this.appendComments(entry, annotations[threadID].comments), }; // NOTE: Highlight comment annotations can be structured as a plain highlight diff --git a/src/api/__tests__/API-test.js b/src/api/__tests__/API-test.js index d0b258daa..ea62796f1 100644 --- a/src/api/__tests__/API-test.js +++ b/src/api/__tests__/API-test.js @@ -10,7 +10,7 @@ describe('api/API', () => { api = new API({ apiHost: API_HOST, fileId: 1, - token: 'someToken' + token: 'someToken', }); }); @@ -50,7 +50,7 @@ describe('api/API', () => { api.errorHandler(error); expect(api.emit).toBeCalledWith(ANNOTATOR_EVENT.error, { reason: error.name, - error: error.toString() + error: error.toString(), }); }); }); diff --git a/src/api/__tests__/AnnotationAPI-test.js b/src/api/__tests__/AnnotationAPI-test.js index dcf2b3b27..0bcc7ac60 100644 --- a/src/api/__tests__/AnnotationAPI-test.js +++ b/src/api/__tests__/AnnotationAPI-test.js @@ -13,15 +13,15 @@ describe('api/AnnotationAPI', () => { const annotationData = { id: '', details: { - location: { page: -1 } - } + location: { page: -1 }, + }, }; beforeEach(() => { api = new AnnotationAPI({ apiHost: API_HOST, fileId: 1, - token: 'someToken' + token: 'someToken', }); api.axios = jest.fn().mockReturnValue(promise); api.errorHandler = jest.fn(); @@ -47,7 +47,7 @@ describe('api/AnnotationAPI', () => { data: {}, method: HTTP_POST, cancelToken: '123abc', - headers: {} + headers: {}, }); }); }); @@ -60,7 +60,7 @@ describe('api/AnnotationAPI', () => { url: api.getBaseUrl('123'), method: HTTP_DELETE, cancelToken: '123abc', - headers: {} + headers: {}, }); }); }); @@ -80,7 +80,7 @@ describe('api/AnnotationAPI', () => { expect(annotation.location.page).toEqual(1); expect(annotation.permissions).toEqual({ can_delete: true, - can_edit: true + can_edit: true, }); }); }); diff --git a/src/api/__tests__/FileVersionAPI-test.js b/src/api/__tests__/FileVersionAPI-test.js index 50a9020fa..888418d98 100644 --- a/src/api/__tests__/FileVersionAPI-test.js +++ b/src/api/__tests__/FileVersionAPI-test.js @@ -13,10 +13,10 @@ describe('api/FileVersionAPI', () => { apiHost: API_HOST, fileId: 1, token: 'someToken', - permissions: {} + permissions: {}, }); api.axios = { - get: jest.fn().mockReturnValue(promise) + get: jest.fn().mockReturnValue(promise), }; api.axiosSource = { token: '123abc' }; api.headers = {}; @@ -47,7 +47,7 @@ describe('api/FileVersionAPI', () => { expect(api.axios.get).toBeCalledWith(api.getBaseUrl(), { cancelToken: '123abc', headers: {}, - params: 'params' + params: 'params', }); }); }); @@ -58,7 +58,7 @@ describe('api/FileVersionAPI', () => { api.fetchFromMarker = jest.fn().mockReturnValue(Promise.resolve()); api.emit = jest.fn(); api.data = { - entries: [] + entries: [], }; }); @@ -80,7 +80,7 @@ describe('api/FileVersionAPI', () => { it('should emit an error if the entries in the success response is not an array', () => { api.fileVersionId = 123; - api.successHandler({ entries: 'wrong type' }).catch((err) => { + api.successHandler({ entries: 'wrong type' }).catch(err => { expect(err.name).toEqual(ERROR_TYPE.read); expect(api.fetchFromMarker).not.toBeCalled(); }); @@ -88,7 +88,7 @@ describe('api/FileVersionAPI', () => { it('should emit an error if the success response is of type error', () => { api.fileVersionId = 123; - api.successHandler({ type: 'error' }).catch((err) => { + api.successHandler({ type: 'error' }).catch(err => { expect(err.name).toEqual(ERROR_TYPE.read); expect(api.fetchFromMarker).not.toBeCalled(); }); @@ -103,8 +103,8 @@ describe('api/FileVersionAPI', () => { details: { location: { page: -1 }, type: TYPES.highlight, - threadID: '123' - } + threadID: '123', + }, }; api.data = { @@ -114,24 +114,24 @@ describe('api/FileVersionAPI', () => { ...annotationData, details: { type: TYPES.highlight, - threadID: '123' - } + threadID: '123', + }, }, { // invalid type ...annotationData, details: { location: { page: -1 }, - threadID: '123' - } + threadID: '123', + }, }, { // invalid threadID ...annotationData, details: { location: { page: -1 }, - type: TYPES.highlight - } + type: TYPES.highlight, + }, }, // plain highlight { ...annotationData, id: 1 }, @@ -143,10 +143,10 @@ describe('api/FileVersionAPI', () => { details: { location: { page: 1 }, type: TYPES.highlight_comment, - threadID: '123' - } - } - ] + threadID: '123', + }, + }, + ], }; const annotationMap = api.createAnnotationMap(); diff --git a/src/components/ActionControls/ActionControls.js b/src/components/ActionControls/ActionControls.js index 72e5ca365..651be0ba5 100644 --- a/src/components/ActionControls/ActionControls.js +++ b/src/components/ActionControls/ActionControls.js @@ -14,20 +14,20 @@ const CLASS_ACTION_CONTROLS = 'ba-action-controls'; const CLASS_INPUT_CONTAINER = 'ba-annotation-input-container'; type Props = { - id?: string, - type: AnnotationType, canComment: boolean, canDelete: boolean, hasComments: boolean, + id?: string, isPending: boolean, - onCreate: Function, - onCommentClick: Function, onCancel: Function, - onDelete: Function + onCommentClick: Function, + onCreate: Function, + onDelete: Function, + type: AnnotationType, }; type State = { - isInputOpen: boolean + isInputOpen: boolean, }; const NULL_USER = {}; @@ -36,11 +36,11 @@ class ActionControls extends React.Component { static defaultProps = { canComment: false, canDelete: false, - isPending: false + isPending: false, }; state = { - isInputOpen: true + isInputOpen: true, }; componentDidMount() { @@ -98,9 +98,9 @@ class ActionControls extends React.Component { canAnnotateAndDelete={canDelete} canComment={canComment} isPending={isPending} - onDelete={this.onDelete} - onCreate={this.onCreate} onCommentClick={onCommentClick} + onCreate={this.onCreate} + onDelete={this.onDelete} /> ); case TYPES.highlight_comment: @@ -112,15 +112,16 @@ class ActionControls extends React.Component { ); } @@ -128,11 +129,11 @@ class ActionControls extends React.Component { return ( ); case TYPES.draw: @@ -157,15 +158,16 @@ class ActionControls extends React.Component { ); default: diff --git a/src/components/ActionControls/ActionControls.scss b/src/components/ActionControls/ActionControls.scss index c8bdca23c..47c9ef86e 100644 --- a/src/components/ActionControls/ActionControls.scss +++ b/src/components/ActionControls/ActionControls.scss @@ -1,4 +1,4 @@ -@import '../../variables'; +@import "../../variables"; .ba { .bcs-at-mention-tip { @@ -6,15 +6,15 @@ } .ba-action-controls { - background: white; - color: $fours; margin: 0; + color: $fours; white-space: normal; + background: white; } .ba-annotation-input-container { - border-top: none; width: 252px; // Hard-coded width to solve layout issues + border-top: none; } .bcs-comment .bcs-comment-headline { @@ -32,34 +32,34 @@ // TABLET-SPECIFIC CSS @media #{$mobile}, #{$tablet} { .ba-create-popover .ba-action-controls { + justify-content: flex-end; border: none; box-shadow: none; - justify-content: flex-end; } .ba-annotation-input-container, .ba-create-popover .ba-annotation-input-container { + bottom: 0; + width: 100%; + padding: 15px; background: white; border-top: 1px solid $see-see; - bottom: 0; box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); - padding: 15px; - width: 100%; } .ba-annotator-label ~ .ba-action-controls .ba-action-controls-draw, .ba-annotator-label ~ .ba-action-controls .ba-action-controls-highlight { - border-left: 0; margin: 0; + border-left: 0; } } // MOBILE CSS @media #{$mobile} { .ba-action-controls { - background: white; justify-content: flex-end; width: 100%; + background: white; } } } diff --git a/src/components/ActionControls/DrawingControls.js b/src/components/ActionControls/DrawingControls.js index 0941c068f..8f06cafd5 100644 --- a/src/components/ActionControls/DrawingControls.js +++ b/src/components/ActionControls/DrawingControls.js @@ -15,18 +15,18 @@ type Props = { canDelete: boolean, isPending: boolean, onCreate: Function, - onDelete: Function + onDelete: Function, }; const DrawingControls = ({ isPending, canDelete, onCreate, onDelete }: Props) => (
{isPending && ( - + )} {canDelete && ( - + )} @@ -34,7 +34,7 @@ const DrawingControls = ({ isPending, canDelete, onCreate, onDelete }: Props) => ); DrawingControls.defaultProps = { - canDelete: false + canDelete: false, }; export default DrawingControls; diff --git a/src/components/ActionControls/DrawingControls.scss b/src/components/ActionControls/DrawingControls.scss index 74e960d56..b74830946 100644 --- a/src/components/ActionControls/DrawingControls.scss +++ b/src/components/ActionControls/DrawingControls.scss @@ -1,4 +1,4 @@ -@import '../../variables'; +@import "../../variables"; .ba { .ba-action-controls-draw { @@ -33,15 +33,15 @@ // MOBILE & TABLET CSS @media #{$mobile}, #{$tablet} { .ba-inline-popover .ba-action-controls-draw { - background: white; - border-top: 1px solid $seesee; + position: fixed; bottom: 0; - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); left: 0; + width: 100%; margin: 0; padding: 15px; - position: fixed; - width: 100%; + background: white; + border-top: 1px solid $seesee; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); } .ba-action-controls-draw .btn-plain, diff --git a/src/components/ActionControls/HighlightControls.js b/src/components/ActionControls/HighlightControls.js index 785b7569c..1d28f68f0 100644 --- a/src/components/ActionControls/HighlightControls.js +++ b/src/components/ActionControls/HighlightControls.js @@ -17,9 +17,9 @@ type Props = { canAnnotateAndDelete: boolean, canComment: boolean, isPending?: boolean, + onCommentClick: Function, onCreate: Function, onDelete: Function, - onCommentClick: Function }; const HighlightControls = ({ @@ -28,22 +28,22 @@ const HighlightControls = ({ onCreate, onDelete, onCommentClick, - isPending + isPending, }: Props) => (
{canAnnotateAndDelete && ( - + )} {canComment && ( - + )} @@ -52,7 +52,7 @@ const HighlightControls = ({ HighlightControls.defaultProps = { canAnnotateAndDelete: false, - isPending: false + isPending: false, }; export default HighlightControls; diff --git a/src/components/ActionControls/HighlightControls.scss b/src/components/ActionControls/HighlightControls.scss index 297b1135b..16f490014 100644 --- a/src/components/ActionControls/HighlightControls.scss +++ b/src/components/ActionControls/HighlightControls.scss @@ -1,4 +1,4 @@ -@import '../../variables'; +@import "../../variables"; .ba { .ba-action-controls-highlight { @@ -45,15 +45,15 @@ // MOBILE & TABLET CSS @media #{$mobile}, #{$tablet} { .ba-inline-popover .ba-action-controls-highlight { - background: white; - border-top: 1px solid $seesee; + position: fixed; bottom: 0; - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); left: 0; + width: 100%; margin: 0; padding: 15px; - position: fixed; - width: 100%; + background: white; + border-top: 1px solid $seesee; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); } .ba-action-controls-highlight .btn-plain, diff --git a/src/components/ActionControls/__tests__/ActionControls-test.js b/src/components/ActionControls/__tests__/ActionControls-test.js index 08e0d062f..1ff94ee8a 100644 --- a/src/components/ActionControls/__tests__/ActionControls-test.js +++ b/src/components/ActionControls/__tests__/ActionControls-test.js @@ -10,22 +10,22 @@ const onDelete = jest.fn(); const event = { stopPropagation: jest.fn(), - preventDefault: jest.fn() + preventDefault: jest.fn(), }; describe('components/ActionControls', () => { const render = (props = {}) => shallow( + />, ); test('should render no controls if the type does not match a valid type', () => { diff --git a/src/components/ActionControls/__tests__/DrawingControls-test.js b/src/components/ActionControls/__tests__/DrawingControls-test.js index 3df58993c..e1b198427 100644 --- a/src/components/ActionControls/__tests__/DrawingControls-test.js +++ b/src/components/ActionControls/__tests__/DrawingControls-test.js @@ -7,12 +7,12 @@ const onDelete = jest.fn(); describe('components/ActionControls/DrawingControls', () => { test('should correctly render pending drawing controls', () => { - const wrapper = shallow(); + const wrapper = shallow(); expect(wrapper).toMatchSnapshot(); }); test('should correctly render saved drawing controls', () => { - const wrapper = shallow(); + const wrapper = shallow(); expect(wrapper).toMatchSnapshot(); }); }); diff --git a/src/components/ActionControls/__tests__/HighlightControls-test.js b/src/components/ActionControls/__tests__/HighlightControls-test.js index 485bc0dc6..9bfadb9cf 100644 --- a/src/components/ActionControls/__tests__/HighlightControls-test.js +++ b/src/components/ActionControls/__tests__/HighlightControls-test.js @@ -8,13 +8,13 @@ const onCommentClick = jest.fn(); describe('components/ActionControls/HighlightControls', () => { const render = (props = {}) => - shallow(); + shallow(); test('should correctly render pending plain highlight controls', () => { const wrapper = render({ canAnnotateAndDelete: true, canComment: false, - isPending: true + isPending: true, }); expect(wrapper).toMatchSnapshot(); }); @@ -23,7 +23,7 @@ describe('components/ActionControls/HighlightControls', () => { const wrapper = render({ canAnnotateAndDelete: true, canComment: true, - isPending: true + isPending: true, }); expect(wrapper).toMatchSnapshot(); }); @@ -31,7 +31,7 @@ describe('components/ActionControls/HighlightControls', () => { test('should correctly render saved plain highlight controls', () => { const wrapper = render({ canAnnotateAndDelete: true, - canComment: false + canComment: false, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('.ba-saved-highlight').length).toEqual(1); @@ -40,7 +40,7 @@ describe('components/ActionControls/HighlightControls', () => { test('should correctly render saved highlight comment controls', () => { const wrapper = render({ canAnnotateAndDelete: true, - canComment: true + canComment: true, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('.ba-saved-highlight').length).toEqual(1); diff --git a/src/components/AnnotationPopover/AnnotationPopover.js b/src/components/AnnotationPopover/AnnotationPopover.js index a262d188b..c67eb0817 100644 --- a/src/components/AnnotationPopover/AnnotationPopover.js +++ b/src/components/AnnotationPopover/AnnotationPopover.js @@ -24,17 +24,17 @@ const CLASS_MOBILE_CLOSE_BTN = 'ba-mobile-close-btn'; const CLASS_POPOVER_OVERLAY = 'ba-popover-overlay'; type Props = { - isMobile: boolean, canComment: boolean, - position: Function, - onDelete: Function, - onCancel: Function, - onCreate: Function, - onCommentClick: Function, + headerHeight?: number, + isMobile: boolean, isPending: boolean, language?: string, messages?: StringMap, - headerHeight?: number + onCancel: Function, + onCommentClick: Function, + onCreate: Function, + onDelete: Function, + position: Function, } & Annotation; class AnnotationPopover extends React.PureComponent { @@ -47,7 +47,7 @@ class AnnotationPopover extends React.PureComponent { onCommentClick: noop, onDelete: noop, onCreate: noop, - comments: [] + comments: [], }; componentDidMount() { @@ -78,7 +78,7 @@ class AnnotationPopover extends React.PureComponent { onCommentClick, language, messages: intlMessages, - headerHeight + headerHeight, } = this.props; const hasComments = comments.length > 0; const isInline = !hasComments && (type === TYPES.highlight || type === TYPES.draw); @@ -87,8 +87,8 @@ class AnnotationPopover extends React.PureComponent { description: , key: 'esc', handler: onCancel, - type: 'Close' - }) + type: 'Close', + }), ]; return ( @@ -98,7 +98,7 @@ class AnnotationPopover extends React.PureComponent { className={classNames(CLASS_ANNOTATION_POPOVER, { [CLASS_INLINE_POPOVER]: isInline, [CLASS_ANIMATE_POPOVER]: isMobile, - [CLASS_CREATE_POPOVER]: isPending + [CLASS_CREATE_POPOVER]: isPending, })} > {isMobile ? ( @@ -114,22 +114,22 @@ class AnnotationPopover extends React.PureComponent { {hasComments ? ( ) : ( - + )} {canAnnotate && ( )}
diff --git a/src/components/AnnotationPopover/AnnotationPopover.scss b/src/components/AnnotationPopover/AnnotationPopover.scss index 4bc582774..3f24b0cd0 100644 --- a/src/components/AnnotationPopover/AnnotationPopover.scss +++ b/src/components/AnnotationPopover/AnnotationPopover.scss @@ -1,59 +1,59 @@ -@import '../../variables'; +@import "../../variables"; .ba { .ba-popover { - cursor: auto; // Overrides cursor: none from annotation mode - max-width: 282px; position: absolute; z-index: 3; + max-width: 282px; + cursor: auto; // Overrides cursor: none from annotation mode } .ba-popover-caret { - left: 50%; position: absolute; + left: 50%; z-index: 3; // CSS arrow for caret above container &::after, &::before { - border: solid transparent; - content: ' '; - height: 0; - left: 50%; - pointer-events: none; position: absolute; top: 0; - transform: rotate(-225deg); + left: 50%; width: 0; + height: 0; + border: solid transparent; + transform: rotate(-225deg); + content: " "; + pointer-events: none; } &::after { + margin: -4px 0 0 -6px; border-color: transparent transparent $white $white; border-width: 6px; - margin: -4px 0 0 -6px; } &::before { + margin: -5px 0 0 -6px; border-color: transparent transparent $sf-fog $sf-fog; border-width: 6px; - margin: -5px 0 0 -6px; } } .ba-popover-overlay { - background: white; - border: 1px solid $seesee; - border-radius: 4px; display: block; + padding: 10px; overflow-x: hidden; overflow-y: auto; - padding: 10px; white-space: normal; + background: white; + border: 1px solid $seesee; + border-radius: 4px; } .ba-inline-popover .ba-popover-overlay { - align-items: center; display: inline-flex; + align-items: center; padding: 0; } @@ -95,39 +95,39 @@ @media #{$mobile}, #{$tablet} { // SAVED ANNOTATION POPOVER CSS .ba-popover { + top: 0; display: flex; flex-direction: column; - height: 100%; justify-content: flex-start; - max-width: unset; - top: 0; width: 100%; + max-width: unset; + height: 100%; } .ba-mobile-header { - background: white; - border-bottom: 1px solid #ccc; display: flex; justify-content: flex-end; - padding-right: 5px; width: 100%; + padding-right: 5px; + background: white; + border-bottom: 1px solid #ccc; } .ba-popover-overlay { - background: white; display: flex; flex-direction: column; height: 100%; + background: white; } .ba-popover .ba-popover-overlay { - border: none; - box-shadow: unset; display: flex; flex-direction: column; height: 100%; - overflow: unset; padding: 0; + overflow: unset; + border: none; + box-shadow: unset; } // INLINE ANNOTATION POPOVER CSS @@ -136,19 +136,19 @@ } .ba-inline-popover .ba-popover-overlay { - background: transparent; - border-bottom: 1px solid $seesee; - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); height: auto; margin: 0; text-align: center; + background: transparent; + border-bottom: 1px solid $seesee; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .1); } .ba-inline-popover.ba-create-popover .ba-popover-overlay { - border: none; - box-shadow: none; display: flex; flex-direction: column; + border: none; + box-shadow: none; } .ba-inline-popover .ba-mobile-header, @@ -158,33 +158,33 @@ .ba-create-popover .ba-popover-overlay, .ba-inline-popover .ba-popover-overlay { - background: transparent; height: auto; + background: transparent; } // UNSAVED/CREATE ANNOTATION POPOVER CSS .ba-create-popover { + top: auto; bottom: 0; height: auto; - top: auto; } .ba-create-popover .ba-popover-overlay { - background: transparent; - border-radius: 0; - height: auto; justify-content: flex-end; + height: auto; padding: 0; + background: transparent; + border-radius: 0; } } // TABLET-SPECIFIC CSS @media #{$tablet} { .ba-popover { - border-left: 1px solid $seesee; + right: 0; // Max width matches the max-width of the Preview Sidebar max-width: 341px; - right: 0; + border-left: 1px solid $seesee; } .ba-create-popover .ba-mobile-header { @@ -192,8 +192,8 @@ } .ba-popover.ba-inline-popover { - border: none; width: 100%; + border: none; } .ba-inline-popover .ba-mobile-header { @@ -202,14 +202,14 @@ .ba-create-popover, .ba-create-popover .ba-popover-overlay { - background: white; height: 100%; + background: white; } .ba-inline-popover.ba-create-popover, .ba-inline-popover.ba-create-popover .ba-popover-overlay { - background: transparent; height: auto; + background: transparent; } } } diff --git a/src/components/AnnotationPopover/AnnotatorLabel.js b/src/components/AnnotationPopover/AnnotatorLabel.js index 9c6e53e81..ff05433ae 100644 --- a/src/components/AnnotationPopover/AnnotatorLabel.js +++ b/src/components/AnnotationPopover/AnnotatorLabel.js @@ -13,11 +13,11 @@ import './AnnotatorLabel.scss'; const CLASS_ANNOTATOR_LABEL = 'ba-annotator-label'; type Props = { - id?: string, - type: AnnotationType, createdBy: ?User, + id?: string, + intl: any, isPending: boolean, - intl: any + type: AnnotationType, }; const AnnotatorLabel = ({ id, isPending, type, createdBy, intl }: Props) => { diff --git a/src/components/AnnotationPopover/AnnotatorLabel.scss b/src/components/AnnotationPopover/AnnotatorLabel.scss index f95d3b49b..dea9f3230 100644 --- a/src/components/AnnotationPopover/AnnotatorLabel.scss +++ b/src/components/AnnotationPopover/AnnotatorLabel.scss @@ -1,24 +1,24 @@ -@import '../../variables'; +@import "../../variables"; .ba { .ba-annotator-label { - border-right: 1px solid $see-see; margin: 10px 0 10px 10px; padding-right: 10px; + border-right: 1px solid $see-see; } // MOBILE & TABLET CSS @media #{$mobile}, #{$tablet} { .ba-annotator-label { - background: white; - border-bottom: 1px solid #ccc; - display: flex; - justify-content: center; - left: 0; - padding: 20px; position: fixed; top: 0; + left: 0; + display: flex; + justify-content: center; width: 100%; + padding: 20px; + background: white; + border-bottom: 1px solid #ccc; } } } diff --git a/src/components/AnnotationPopover/__tests__/AnnotationPopover-test.js b/src/components/AnnotationPopover/__tests__/AnnotationPopover-test.js index ca3bb76d0..72beb9506 100644 --- a/src/components/AnnotationPopover/__tests__/AnnotationPopover-test.js +++ b/src/components/AnnotationPopover/__tests__/AnnotationPopover-test.js @@ -13,7 +13,7 @@ const USER = { type: 'user', id: '789ghi', name: 'Mia Thermopolis', - email: 'princess@genovia.gov' + email: 'princess@genovia.gov', }; const comments = [ @@ -22,15 +22,15 @@ const comments = [ createdAt: TIME_STRING_SEPT_27_2017, createdBy: USER, message: 'test', - permissions: {} + permissions: {}, }, { id: '456', createdAt: TIME_STRING_SEPT_27_2017, createdBy: USER, message: 'test', - permissions: {} - } + permissions: {}, + }, ]; describe('components/AnnotationPopover', () => { @@ -39,12 +39,12 @@ describe('components/AnnotationPopover', () => { + />, ); test('should position the component on componentDidUpdate()', () => { @@ -63,7 +63,7 @@ describe('components/AnnotationPopover', () => { test('should render a view-only annotation with a annotator label and no comments', () => { const wrapper = render({ comments: [], - type: TYPES.highlight + type: TYPES.highlight, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('.ba-inline-popover').length).toEqual(1); @@ -73,7 +73,7 @@ describe('components/AnnotationPopover', () => { const wrapper = render({ canAnnotate: true, comments: [], - type: TYPES.highlight + type: TYPES.highlight, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('.ba-inline-popover').length).toEqual(1); @@ -83,7 +83,7 @@ describe('components/AnnotationPopover', () => { const wrapper = render({ canAnnotate: true, comments, - isMobile: true + isMobile: true, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('Overlay').exists()).toBeFalsy(); @@ -92,7 +92,7 @@ describe('components/AnnotationPopover', () => { test('should correctly render a popover with comments and reply textarea', () => { const wrapper = render({ canAnnotate: true, - comments + comments, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('.ba-inline-popover').length).toEqual(0); @@ -101,7 +101,7 @@ describe('components/AnnotationPopover', () => { test('should correctly render a pending annotation', () => { const wrapper = render({ isPending: true, - canAnnotate: true + canAnnotate: true, }); expect(wrapper).toMatchSnapshot(); expect(wrapper.find('.ba-inline-popover').length).toEqual(0); diff --git a/src/components/AnnotationPopover/__tests__/AnnotatorLabel-test.js b/src/components/AnnotationPopover/__tests__/AnnotatorLabel-test.js index d96328713..6e3050ef5 100644 --- a/src/components/AnnotationPopover/__tests__/AnnotatorLabel-test.js +++ b/src/components/AnnotationPopover/__tests__/AnnotatorLabel-test.js @@ -7,11 +7,11 @@ const createdBy = { type: 'user', id: '789ghi', name: 'Mia Thermopolis', - email: 'princess@genovia.gov' + email: 'princess@genovia.gov', }; describe('components/AnnotationPopover/AnnotatorLabel', () => { - const render = (props = {}) => shallow().dive(); + const render = (props = {}) => shallow().dive(); test('should render nothing if label is pending', () => { const wrapper = render({ isPending: true }); @@ -21,7 +21,7 @@ describe('components/AnnotationPopover/AnnotatorLabel', () => { test('should render a highlight annotation label', () => { const wrapper = render({ type: 'highlight', - createdBy + createdBy, }); expect(wrapper).toMatchSnapshot(); }); @@ -29,21 +29,21 @@ describe('components/AnnotationPopover/AnnotatorLabel', () => { test('should render a drawing annotation label', () => { const wrapper = render({ type: 'draw', - createdBy + createdBy, }); expect(wrapper).toMatchSnapshot(); }); test('should render an anonymous highlight annotation label', () => { const wrapper = render({ - type: 'highlight' + type: 'highlight', }); expect(wrapper).toMatchSnapshot(); }); test('should render an anonymous drawing annotation label', () => { const wrapper = render({ - type: 'draw' + type: 'draw', }); expect(wrapper).toMatchSnapshot(); }); diff --git a/src/components/AnnotationPopover/messages.js b/src/components/AnnotationPopover/messages.js index 71a71da80..127a83a19 100644 --- a/src/components/AnnotationPopover/messages.js +++ b/src/components/AnnotationPopover/messages.js @@ -11,29 +11,29 @@ import type { MessageDescriptor } from 'react-intl'; const messages: { [string]: MessageDescriptor } = defineMessages({ anonymousUserName: { id: 'ba.anonymousUserName', - description: 'Placeholder when the current annotation\'s user information is unknown', - defaultMessage: 'Some User' + description: "Placeholder when the current annotation's user information is unknown", + defaultMessage: 'Some User', }, whoHighlighted: { id: 'ba.whoHighlighted', description: 'Label for who highlighted the annotated text', - defaultMessage: '{name} highlighted' + defaultMessage: '{name} highlighted', }, whoDrew: { id: 'ba.whoDrew', description: 'Label for who drew the drawing annotation', - defaultMessage: '{name} drew' + defaultMessage: '{name} drew', }, whoAnnotated: { id: 'ba.whoAnnotated', description: 'Label for who left the annotation', - defaultMessage: '{name} annotated' + defaultMessage: '{name} annotated', }, close: { id: 'ba.closePopover', description: 'Description for popover close hotkey record', - defaultMessage: 'Close Popover' - } + defaultMessage: 'Close Popover', + }, }); export default messages; diff --git a/src/components/Comment/Comment.js b/src/components/Comment/Comment.js index f331b5b76..f6ff574a3 100644 --- a/src/components/Comment/Comment.js +++ b/src/components/Comment/Comment.js @@ -7,8 +7,8 @@ import CommentComponent from '../../../third-party/components/Comment'; import { PLACEHOLDER_USER } from '../../constants'; type Props = { + error?: ActionItemError, onDelete: Function, - error?: ActionItemError } & CommentProps; class Comment extends React.PureComponent { @@ -16,26 +16,26 @@ class Comment extends React.PureComponent { isPending: false, permissions: { can_delete: false, - can_edit: false + can_edit: false, }, - onDelete: noop + onDelete: noop, }; render() { const { id, isPending, error, createdAt, modifiedAt, message, onDelete, permissions, createdBy } = this.props; return ( ); } diff --git a/src/components/Comment/__tests__/Comment-test.js b/src/components/Comment/__tests__/Comment-test.js index 08980b560..32275e482 100644 --- a/src/components/Comment/__tests__/Comment-test.js +++ b/src/components/Comment/__tests__/Comment-test.js @@ -9,7 +9,7 @@ const USER = { type: 'user', id: '789ghi', name: 'Mia Thermopolis', - email: 'princess@genovia.gov' + email: 'princess@genovia.gov', }; const comment = { @@ -17,7 +17,7 @@ const comment = { createdAt: TIME_STRING_SEPT_27_2017, createdBy: USER, message: 'test', - permissions: {} + permissions: {}, }; describe('components/Comment', () => { diff --git a/src/components/Comment/messages.js b/src/components/Comment/messages.js index d8e5e2229..84cae7f0e 100644 --- a/src/components/Comment/messages.js +++ b/src/components/Comment/messages.js @@ -11,9 +11,9 @@ import type { MessageDescriptor } from 'react-intl'; const messages: { [string]: MessageDescriptor } = defineMessages({ anonymousUserName: { id: 'ba.anonymousUserName', - description: 'Placeholder when the current annotation\'s user information is unknown', - defaultMessage: 'Some User' - } + description: "Placeholder when the current annotation's user information is unknown", + defaultMessage: 'Some User', + }, }); export default messages; diff --git a/src/components/CommentList/CommentList.js b/src/components/CommentList/CommentList.js index f027854ed..60a9ac1df 100644 --- a/src/components/CommentList/CommentList.js +++ b/src/components/CommentList/CommentList.js @@ -10,7 +10,7 @@ const CLASS_COMMENT_LIST_ITEM = 'ba-comment-list-item'; type Props = { comments: Comments, - onDelete: Function + onDelete: Function, }; class CommentList extends React.Component { @@ -38,13 +38,13 @@ class CommentList extends React.Component { const { comments, onDelete } = this.props; return (
    { + ref={ref => { this.commentsContainer = ref; }} + className={CLASS_COMMENT_LIST} > {comments.map(({ id, ...rest }) => ( -
  • +
  • ))} diff --git a/src/components/CommentList/CommentList.scss b/src/components/CommentList/CommentList.scss index 39623b81b..5a04018e7 100644 --- a/src/components/CommentList/CommentList.scss +++ b/src/components/CommentList/CommentList.scss @@ -1,25 +1,25 @@ .ba { - @import '../../variables.scss'; + @import "../../variables.scss"; .ba-comment-list { + width: 100%; max-height: 282px; overflow-y: auto; user-select: text; - width: 100%; } .ba-comment-list-item { - @import '~box-react-ui/lib/styles/common/inline-notifications'; + @import "~box-react-ui/lib/styles/common/inline-notifications"; - list-style: none; margin-bottom: 15px; // Matches spacing of activity feed items in UI Elements + list-style: none; } // Spaces comment elements from each other and the dividing border // Adds extra spacing above consecutive annotations as well .ba-comment-list-item + .ba-comment-list-item { - border-top: 1px solid $seesee; padding-top: 15px; + border-top: 1px solid $seesee; } .bcs-comment, @@ -34,11 +34,11 @@ // MOBILE CSS @media #{$mobile}, #{$tablet} { .ba-comment-list { - background: white; flex-grow: 1; + width: unset; max-height: unset; padding: 15px; - width: unset; + background: white; } .ba-comment-list-item { diff --git a/src/components/CommentList/__tests__/CommentList-test.js b/src/components/CommentList/__tests__/CommentList-test.js index 6556c3109..fc82f30eb 100644 --- a/src/components/CommentList/__tests__/CommentList-test.js +++ b/src/components/CommentList/__tests__/CommentList-test.js @@ -9,7 +9,7 @@ const USER = { type: 'user', id: '789ghi', name: 'Mia Thermopolis', - email: 'princess@genovia.gov' + email: 'princess@genovia.gov', }; const comments = [ @@ -18,15 +18,15 @@ const comments = [ createdAt: TIME_STRING_SEPT_27_2017, createdBy: USER, message: 'test', - permissions: {} + permissions: {}, }, { id: '456', createdAt: TIME_STRING_SEPT_27_2017, createdBy: USER, message: 'test', - permissions: {} - } + permissions: {}, + }, ]; const onDelete = jest.fn(); diff --git a/src/components/Internationalize.js b/src/components/Internationalize.js index 5d0231f26..1ef5df83a 100644 --- a/src/components/Internationalize.js +++ b/src/components/Internationalize.js @@ -10,7 +10,7 @@ import { IntlProvider, addLocaleData } from 'react-intl'; import i18n from '../utils/i18n'; type Props = { - children?: any + children?: any, }; addLocaleData(i18n.localeData); diff --git a/src/constants.js b/src/constants.js index 506f9eaa1..961d929b1 100644 --- a/src/constants.js +++ b/src/constants.js @@ -112,37 +112,37 @@ export const PERMISSION_CAN_VIEW_ANNOTATIONS_SELF = 'can_view_annotations_self'; export const DRAW_STATES = { idle: 'idle', drawing: 'drawing', - erasing: 'erasing' + erasing: 'erasing', }; export const STATES = { active: 'active', // mouse is over inactive: 'inactive', // not clicked and mouse is not over - pending: 'pending' // not saved + pending: 'pending', // not saved }; export const TYPES = { point: 'point', highlight: 'highlight', draw: 'draw', - highlight_comment: 'highlight-comment' + highlight_comment: 'highlight-comment', }; export const ANNOTATOR_TYPE = { document: 'Document', - image: 'Image' + image: 'Image', }; export const HIGHLIGHT_FILL = { normal: 'rgba(254, 217, 78, 0.5)', active: 'rgba(255, 201, 0, 0.5)', - erase: 'rgba(255, 245, 132, 1)' + erase: 'rgba(255, 245, 132, 1)', }; export const ANNOTATOR_EVENT = { fetch: 'annotationsfetched', error: 'annotationerror', - scale: 'scaleannotations' + scale: 'scaleannotations', }; export const THREAD_EVENT = { @@ -158,7 +158,7 @@ export const THREAD_EVENT = { createError: 'annotationcreateerror', show: 'annotationshow', hide: 'annotationhide', - reset: 'annotationreset' + reset: 'annotationreset', }; export const CONTROLLER_EVENT = { @@ -172,20 +172,20 @@ export const CONTROLLER_EVENT = { unregister: 'unregisterthread', bindDOMListeners: 'binddomlisteners', unbindDOMListeners: 'unbinddomlisteners', - renderPage: 'annotationsrenderpage' + renderPage: 'annotationsrenderpage', }; export const CREATE_EVENT = { plain: 'plain_highlight_create', comment: 'comment_highlight_edit', - commentPost: 'comment_highlight_create' + commentPost: 'comment_highlight_create', }; export const ERROR_TYPE = { auth: 'AuthorizationError', read: 'ReadError', create: 'CreateError', - delete: 'DeleteError' + delete: 'DeleteError', }; export const POINT_ANNOTATION_ICON_HEIGHT = 31; @@ -205,5 +205,5 @@ export const DRAW_DASHED_SPACING = 5; export const PLACEHOLDER_USER = { type: 'user', id: '0', - email: '' + email: '', }; diff --git a/src/controllers/AnnotationModeController.js b/src/controllers/AnnotationModeController.js index 08793e0a7..2fa0e313e 100644 --- a/src/controllers/AnnotationModeController.js +++ b/src/controllers/AnnotationModeController.js @@ -13,7 +13,7 @@ import { THREAD_EVENT, CONTROLLER_EVENT, BORDER_OFFSET, - STATES + STATES, } from '../constants'; import AnnotationAPI from '../api/AnnotationAPI'; @@ -115,7 +115,7 @@ class AnnotationModeController extends EventEmitter { fileId: data.fileId, token: data.token, anonymousUserName: data.localized.anonymousUserName, - permissions: this.permissions + permissions: this.permissions, }); this.api.addListener(CONTROLLER_EVENT.error, this.handleAPIErrors); @@ -131,9 +131,9 @@ class AnnotationModeController extends EventEmitter { * @return {void} */ destroy(): void { - Object.keys(this.annotations).forEach((pageNum) => { + Object.keys(this.annotations).forEach(pageNum => { const pageThreads = this.annotations[pageNum].all() || []; - pageThreads.forEach((thread) => thread.removeListener('threadevent', this.handleThreadEvents)); + pageThreads.forEach(thread => thread.removeListener('threadevent', this.handleThreadEvents)); this.annotations[pageNum].clear(); }); @@ -281,13 +281,11 @@ class AnnotationModeController extends EventEmitter { const currentHandlerIndex = this.handlers.length; this.setupHandlers(); - for (let index = currentHandlerIndex; index < this.handlers.length; index++) { + for (let index = currentHandlerIndex; index < this.handlers.length; index += 1) { const handler = this.handlers[index]; const types = handler.type instanceof Array ? handler.type : [handler.type]; - types.forEach((eventName) => - handler.eventObj.addEventListener(eventName, handler.func, handler.useCapture) - ); + types.forEach(eventName => handler.eventObj.addEventListener(eventName, handler.func, handler.useCapture)); } } @@ -301,7 +299,7 @@ class AnnotationModeController extends EventEmitter { const handler = this.handlers.pop(); const types = handler.type instanceof Array ? handler.type : [handler.type]; - types.forEach((eventName) => { + types.forEach(eventName => { handler.eventObj.removeEventListener(eventName, handler.func, handler.useCapture); }); } @@ -322,7 +320,7 @@ class AnnotationModeController extends EventEmitter { isMobile: shouldDisplayMobileUI(this.container), hasTouch: this.hasTouch, headerHeight: this.headerElement.clientHeight, - ...annotation + ...annotation, }; } @@ -364,7 +362,7 @@ class AnnotationModeController extends EventEmitter { } this.annotations[page].insert(thread); - let threadEventHandler = (data) => this.handleThreadEvents(thread, data); + let threadEventHandler = data => this.handleThreadEvents(thread, data); threadEventHandler = threadEventHandler.bind(this); thread.addListener('threadevent', threadEventHandler); @@ -427,7 +425,7 @@ class AnnotationModeController extends EventEmitter { * @return {void} */ applyActionToThreads(func: Function): void { - Object.keys(this.annotations).forEach((page) => this.applyActionToPageThreads(func, page)); + Object.keys(this.annotations).forEach(page => this.applyActionToPageThreads(func, page)); } /** @@ -446,7 +444,7 @@ class AnnotationModeController extends EventEmitter { if (pageNum) { thread = this.doesThreadMatch(threadID, pageNum); } else { - Object.keys(this.annotations).some((page) => { + Object.keys(this.annotations).some(page => { // $FlowFixMe const matchingThread = this.doesThreadMatch(threadID, page); if (matchingThread) { @@ -473,7 +471,7 @@ class AnnotationModeController extends EventEmitter { return thread; } - thread = pageThreads.all().filter((t) => { + thread = pageThreads.all().filter(t => { return t.threadID === threadID; })[0]; @@ -578,7 +576,7 @@ class AnnotationModeController extends EventEmitter { element: HTMLElement, type: Array | string, handlerFn: Function, - useCapture: boolean = false + useCapture: boolean = false, ): void { if (!element) { return; @@ -588,7 +586,7 @@ class AnnotationModeController extends EventEmitter { eventObj: element, func: handlerFn, type, - useCapture + useCapture, }); } @@ -614,7 +612,7 @@ class AnnotationModeController extends EventEmitter { return; } - Object.keys(this.annotations).forEach((pageNum) => this.renderPage(pageNum)); + Object.keys(this.annotations).forEach(pageNum => this.renderPage(pageNum)); } /** @@ -669,9 +667,9 @@ class AnnotationModeController extends EventEmitter { destroyPendingThreads(): boolean { let hadPendingThreads = false; - Object.keys(this.annotations).forEach((pageNum) => { + Object.keys(this.annotations).forEach(pageNum => { const pageThreads = this.annotations[pageNum].all() || []; - pageThreads.forEach((thread) => { + pageThreads.forEach(thread => { if (thread.state === STATES.pending || thread.id === this.pendingThreadID) { this.destroyThread(thread); hadPendingThreads = true; @@ -708,7 +706,7 @@ class AnnotationModeController extends EventEmitter { // $FlowFixMe maxX: +location.x + BORDER_OFFSET, // $FlowFixMe - maxY: +location.y + BORDER_OFFSET + maxY: +location.y + BORDER_OFFSET, }; // Get the threads that correspond to the point that was clicked on @@ -763,7 +761,7 @@ class AnnotationModeController extends EventEmitter { super.emit('annotationcontrollerevent', { event, data, - mode: this.mode + mode: this.mode, }); return super.emit(event, data); } diff --git a/src/controllers/DrawingModeController.js b/src/controllers/DrawingModeController.js index 42d0dbe4e..d1959bf44 100644 --- a/src/controllers/DrawingModeController.js +++ b/src/controllers/DrawingModeController.js @@ -16,7 +16,7 @@ import { CLASS_ANNOTATION_DRAW_MODE, CLASS_ANNOTATION_POINT_MARKER, ANNOTATOR_TYPE, - CLASS_ANNOTATION_LAYER_DRAW_IN_PROGRESS + CLASS_ANNOTATION_LAYER_DRAW_IN_PROGRESS, } from '../constants'; // $FlowFixMe @@ -142,7 +142,7 @@ class DrawingModeController extends AnnotationModeController { /** @inheritdoc */ setupHandlers(): void { /* eslint-disable require-jsdoc */ - this.locationFunction = (event) => this.getLocation(event, TYPES.point); + this.locationFunction = event => this.getLocation(event, TYPES.point); this.locationFunction = this.locationFunction.bind(this); /* eslint-enable require-jsdoc */ @@ -212,7 +212,7 @@ class DrawingModeController extends AnnotationModeController { createdBy: this.api.user, createdAt: new Date().toISOString(), isPending: true, - comments: [] + comments: [], }); if (!threadParams) { @@ -229,7 +229,7 @@ class DrawingModeController extends AnnotationModeController { this.emit(THREAD_EVENT.pending, thread.getThreadEventData()); thread.bindDrawingListeners(this.locationFunction); - thread.addListener('threadevent', (data) => this.handleThreadEvents(thread, data)); + thread.addListener('threadevent', data => this.handleThreadEvents(thread, data)); thread.handleStart(location); } @@ -243,11 +243,11 @@ class DrawingModeController extends AnnotationModeController { const boundaries = this.annotatedElement.querySelectorAll('.ba-drawing-boundary'); // $FlowFixMe - boundaries.forEach((boundaryEl) => boundaryEl.parentNode.removeChild(boundaryEl)); + boundaries.forEach(boundaryEl => boundaryEl.parentNode.removeChild(boundaryEl)); // Clear the in progress drawing canvases const pageElements = this.annotatedElement.querySelectorAll('.page'); - pageElements.forEach((pageEl) => clearCanvas(pageEl, CLASS_ANNOTATION_LAYER_DRAW_IN_PROGRESS)); + pageElements.forEach(pageEl => clearCanvas(pageEl, CLASS_ANNOTATION_LAYER_DRAW_IN_PROGRESS)); this.annotatedElement.classList.remove(CLASS_ANNOTATION_DRAW_MODE); } @@ -278,7 +278,9 @@ class DrawingModeController extends AnnotationModeController { // Clear existing canvases // eslint-disable-next-line - const pageEl = this.annotatedElement.querySelector(`[data-page-number="${thread.location.page}"]`); + const pageEl = this.annotatedElement.querySelector( + `[data-page-number="${thread.location.page}"]` + ); clearCanvas(pageEl, CLASS_ANNOTATION_LAYER_DRAW_IN_PROGRESS); // Do not bind when mode is exited diff --git a/src/controllers/HighlightModeController.js b/src/controllers/HighlightModeController.js index 2ce7a8264..466023d4b 100644 --- a/src/controllers/HighlightModeController.js +++ b/src/controllers/HighlightModeController.js @@ -8,7 +8,7 @@ import { CONTROLLER_EVENT, TYPES, CLASS_ANNOTATION_LAYER_HIGHLIGHT, - CLASS_ANNOTATION_LAYER_HIGHLIGHT_COMMENT + CLASS_ANNOTATION_LAYER_HIGHLIGHT_COMMENT, } from '../constants'; class HighlightModeController extends AnnotationModeController { diff --git a/src/controllers/PointModeController.js b/src/controllers/PointModeController.js index 35b07fb51..e1758b50a 100644 --- a/src/controllers/PointModeController.js +++ b/src/controllers/PointModeController.js @@ -10,7 +10,7 @@ import { SELECTOR_POINT_MODE_HEADER, SELECTOR_ANNOTATION_BUTTON_POINT_EXIT, CLASS_ANNOTATION_POINT_MODE, - ANNOTATOR_TYPE + ANNOTATOR_TYPE, } from '../constants'; import { replaceHeader, isInAnnotationOrMarker } from '../util'; @@ -105,7 +105,7 @@ class PointModeController extends AnnotationModeController { } this.hadPendingThreads = this.destroyPendingThreads(); - this.applyActionToThreads((thread) => { + this.applyActionToThreads(thread => { thread.hide(); }); @@ -125,7 +125,7 @@ class PointModeController extends AnnotationModeController { createdBy: this.api.user, createdAt: new Date().toISOString(), isPending: true, - comments: [] + comments: [], }); if (!thread) { diff --git a/src/controllers/__tests__/AnnotationModeController-test.js b/src/controllers/__tests__/AnnotationModeController-test.js index 0c301ca9b..acffaa41c 100644 --- a/src/controllers/__tests__/AnnotationModeController-test.js +++ b/src/controllers/__tests__/AnnotationModeController-test.js @@ -10,7 +10,7 @@ import { SELECTOR_BOX_PREVIEW_BASE_HEADER, THREAD_EVENT, STATES, - CONTROLLER_EVENT + CONTROLLER_EVENT, } from '../../constants'; import AnnotationThread from '../../AnnotationThread'; import AnnotationAPI from '../../api/AnnotationAPI'; @@ -63,7 +63,7 @@ describe('controllers/AnnotationModeController', () => { controller.init({ modeButton: {}, permissions: { can_annotate: true }, - localized: { anonymousUserName: '' } + localized: { anonymousUserName: '' }, }); expect(controller.showButton).toBeCalled(); }); @@ -71,7 +71,7 @@ describe('controllers/AnnotationModeController', () => { it('should not show modeButton if none provided', () => { controller.showButton = jest.fn(); controller.init({ - localized: { anonymousUserName: '' } + localized: { anonymousUserName: '' }, }); expect(controller.showButton).not.toBeCalled(); }); @@ -81,7 +81,7 @@ describe('controllers/AnnotationModeController', () => { controller.init({ modeButton: {}, permissions: { can_annotate: false }, - localized: { anonymousUserName: '' } + localized: { anonymousUserName: '' }, }); expect(controller.showButton).not.toBeCalled(); }); @@ -91,7 +91,7 @@ describe('controllers/AnnotationModeController', () => { beforeEach(() => { controller.api = new AnnotationAPI(); controller.localized = { - anonymouseUserName: '' + anonymouseUserName: '', }; }); @@ -112,7 +112,7 @@ describe('controllers/AnnotationModeController', () => { it('should remove listener from button', () => { controller.buttonEl = { - removeEventListener: jest.fn() + removeEventListener: jest.fn(), }; controller.destroy(); expect(controller.buttonEl.removeEventListener).toBeCalled(); @@ -137,8 +137,8 @@ describe('controllers/AnnotationModeController', () => { controller.modeButton = { type: { title: 'Annotation Mode', - selector: '.selector' - } + selector: '.selector', + }, }; buttonEl = document.createElement('button'); buttonEl.title = controller.modeButton.title; @@ -181,8 +181,8 @@ describe('controllers/AnnotationModeController', () => { controller.modeButton = { type: { title: 'Annotation Mode', - selector: '.selector' - } + selector: '.selector', + }, }; buttonEl = document.createElement('button'); buttonEl.title = controller.modeButton.title; @@ -292,8 +292,8 @@ describe('controllers/AnnotationModeController', () => { func: jest.fn(), useCapture: false, eventObj: { - addEventListener: jest.fn() - } + addEventListener: jest.fn(), + }, }; controller.setupHandlers = jest.fn(() => { controller.handlers = [handlerObj]; @@ -313,8 +313,8 @@ describe('controllers/AnnotationModeController', () => { func: jest.fn(), useCapture: false, eventObj: { - removeEventListener: jest.fn() - } + removeEventListener: jest.fn(), + }, }; controller.handlers = [handlerObj]; @@ -345,7 +345,7 @@ describe('controllers/AnnotationModeController', () => { expect(controller.emit).not.toBeCalled(); }); - it('should create a new rbush for the thread\'s page location', () => { + it("should create a new rbush for the thread's page location", () => { controller.instantiateThread = jest.fn().mockReturnValue(thread); controller.registerThread([], thread.location, thread.type); expect(controller.emit).toBeCalledWith(CONTROLLER_EVENT.register, thread); @@ -388,9 +388,9 @@ describe('controllers/AnnotationModeController', () => { }); describe('applyActionToPageThreads()', () => { - it('should apply the predicate function to all of the controller\'s threads on the specified page', () => { + it("should apply the predicate function to all of the controller's threads on the specified page", () => { controller.annotations = { - 1: { all: jest.fn().mockReturnValue([thread]) } + 1: { all: jest.fn().mockReturnValue([thread]) }, }; controller.applyActionToPageThreads(thread.addListener, 2); // func not called controller.applyActionToPageThreads(thread.addListener, 1); @@ -399,10 +399,10 @@ describe('controllers/AnnotationModeController', () => { }); describe('applyActionToThreads()', () => { - it('should apply the predicate function to all of the controller\'s threads', () => { + it("should apply the predicate function to all of the controller's threads", () => { controller.annotations = { 1: { all: jest.fn().mockReturnValue([thread]) }, - 2: { all: jest.fn().mockReturnValue([thread]) } + 2: { all: jest.fn().mockReturnValue([thread]) }, }; controller.applyActionToThreads(thread.addListener); expect(thread.addListener).toHaveBeenCalledTimes(2); @@ -413,8 +413,8 @@ describe('controllers/AnnotationModeController', () => { it('should return null if no page threads exist', () => { controller.annotations = { 1: { - all: jest.fn().mockReturnValue([]) - } + all: jest.fn().mockReturnValue([]), + }, }; expect(controller.getThreadByID(thread.threadID)).toBeNull(); }); @@ -422,8 +422,8 @@ describe('controllers/AnnotationModeController', () => { it('should find and return annotation thread specified by threadID', () => { controller.annotations = { 1: { - all: jest.fn().mockReturnValue([thread]) - } + all: jest.fn().mockReturnValue([thread]), + }, }; expect(controller.getThreadByID(thread.threadID)).toStrictEqual(thread); }); @@ -431,8 +431,8 @@ describe('controllers/AnnotationModeController', () => { it('should return null if specified annotation thread is not found', () => { controller.annotations = { 1: { - all: jest.fn().mockReturnValue([thread]) - } + all: jest.fn().mockReturnValue([thread]), + }, }; expect(controller.getThreadByID('random')).toBeNull(); }); @@ -457,7 +457,7 @@ describe('controllers/AnnotationModeController', () => { controller.resetCurrentThread = jest.fn(); controller.localized = { deleteError: 'delete error', - createError: 'create error' + createError: 'create error', }; }); @@ -527,7 +527,7 @@ describe('controllers/AnnotationModeController', () => { eventObj: element, func: fn, type, - useCapture + useCapture, }); }); }); @@ -536,7 +536,7 @@ describe('controllers/AnnotationModeController', () => { it('should insert the new header into the container before the baseheader', () => { util.insertTemplate = jest.fn(); const container = { - firstElementChild: 'child' + firstElementChild: 'child', }; const header = document.createElement('div'); @@ -570,7 +570,7 @@ describe('controllers/AnnotationModeController', () => { // eslint-disable-next-line new-cap 1: new rbush(), // eslint-disable-next-line new-cap - 2: new rbush() + 2: new rbush(), }; thread.state = STATES.inactive; thread2.state = STATES.inactive; @@ -614,8 +614,8 @@ describe('controllers/AnnotationModeController', () => { controller.unregisterThread = jest.fn(); controller.annotations = { 1: { - all: jest.fn() - } + all: jest.fn(), + }, }; controller.pendingThreadID = null; }); @@ -660,8 +660,8 @@ describe('controllers/AnnotationModeController', () => { beforeEach(() => { controller.annotations = { 1: { - search: jest.fn().mockReturnValue([]) - } + search: jest.fn().mockReturnValue([]), + }, }; }); diff --git a/src/controllers/__tests__/DrawingModeController-test.js b/src/controllers/__tests__/DrawingModeController-test.js index 323517158..882c9ed55 100644 --- a/src/controllers/__tests__/DrawingModeController-test.js +++ b/src/controllers/__tests__/DrawingModeController-test.js @@ -13,7 +13,7 @@ import { CLASS_ANNOTATION_MODE, CLASS_ACTIVE, THREAD_EVENT, - CLASS_ANNOTATION_DRAW_MODE + CLASS_ANNOTATION_DRAW_MODE, } from '../../constants'; import DrawingThread from '../../drawing/DrawingThread'; @@ -76,7 +76,7 @@ describe('controllers/DrawingModeController', () => { controller.getButton = jest.fn().mockReturnValue(blankDiv); controller.localized = { cancelButton: 'cancel', - doneButton: 'done' + doneButton: 'done', }; controller.setupHeader(blankDiv, blankDiv); @@ -150,33 +150,33 @@ describe('controllers/DrawingModeController', () => { controller.annotatedElement, 'click', expect.any(Function), - true + true, ); expect(controller.pushElementHandler).toBeCalledWith( controller.postButtonEl, 'click', - expect.any(Function) + expect.any(Function), ); expect(controller.pushElementHandler).toBeCalledWith( controller.undoButtonEl, 'click', - expect.any(Function) + expect.any(Function), ); expect(controller.pushElementHandler).toBeCalledWith( controller.redoButtonEl, 'click', - expect.any(Function) + expect.any(Function), ); expect(controller.pushElementHandler).toBeCalledWith( controller.cancelButtonEl, 'click', - expect.any(Function) + expect.any(Function), ); expect(controller.pushElementHandler).toBeCalledWith( controller.annotatedElement, ['mousedown', 'touchstart'], expect.any(Function), - true + true, ); }); }); @@ -184,7 +184,7 @@ describe('controllers/DrawingModeController', () => { describe('drawingStartHandler()', () => { const event = { stopPropagation: jest.fn(), - preventDefault: jest.fn() + preventDefault: jest.fn(), }; const location = {}; @@ -260,7 +260,7 @@ describe('controllers/DrawingModeController', () => { it('should save thread on annotationsaved', () => { controller.handleThreadEvents(thread, { - event: THREAD_EVENT.save + event: THREAD_EVENT.save, }); expect(controller.unbindListeners).toBeCalled(); expect(controller.bindListeners).toBeCalled(); @@ -274,7 +274,7 @@ describe('controllers/DrawingModeController', () => { it('should soft delete a pending thread and restart mode listeners', () => { thread.state = 'pending'; controller.handleThreadEvents(thread, { - event: THREAD_EVENT.delete + event: THREAD_EVENT.delete, }); expect(controller.unbindListeners).toBeCalled(); expect(controller.bindListeners).toBeCalled(); @@ -291,7 +291,7 @@ describe('controllers/DrawingModeController', () => { controller.annotations[1] = new rbush(); controller.handleThreadEvents(thread, { - event: THREAD_EVENT.delete + event: THREAD_EVENT.delete, }); expect(controller.unregisterThread).toBeCalled(); expect(controller.currentThread).toBeUndefined(); @@ -306,7 +306,7 @@ describe('controllers/DrawingModeController', () => { thread.state = 'pending'; controller.handleThreadEvents(thread, { - event: THREAD_EVENT.delete + event: THREAD_EVENT.delete, }); expect(controller.unbindListeners).toBeCalled(); expect(controller.bindListeners).toBeCalled(); @@ -326,7 +326,7 @@ describe('controllers/DrawingModeController', () => { controller.getIntersectingThreads = jest.fn().mockReturnValue([thread]); event = { - stopPropagation: jest.fn() + stopPropagation: jest.fn(), }; }); @@ -363,7 +363,7 @@ describe('controllers/DrawingModeController', () => { util.clearCanvas = jest.fn(); controller.annotations = { // eslint-disable-next-line new-cap - 1: new rbush() + 1: new rbush(), }; controller.renderPage(1); expect(util.clearCanvas).toBeCalledTwice; diff --git a/src/controllers/__tests__/HighlightModeController-test.js b/src/controllers/__tests__/HighlightModeController-test.js index 46940194d..b04c92fce 100644 --- a/src/controllers/__tests__/HighlightModeController-test.js +++ b/src/controllers/__tests__/HighlightModeController-test.js @@ -68,7 +68,7 @@ describe('controllers/HighlightModeController', () => { controller.unbindListeners = jest.fn(); const selection = { - removeAllRanges: jest.fn() + removeAllRanges: jest.fn(), }; window.getSelection = jest.fn().mockReturnValue(selection); @@ -121,7 +121,7 @@ describe('controllers/HighlightModeController', () => { util.clearCanvas = jest.fn(); controller.annotations = { // eslint-disable-next-line new-cap - 1: new rbush() + 1: new rbush(), }; controller.renderPage(1); expect(util.clearCanvas).toBeCalled(); diff --git a/src/controllers/__tests__/PointModeController-test.js b/src/controllers/__tests__/PointModeController-test.js index eb3e7123a..9a6df5e26 100644 --- a/src/controllers/__tests__/PointModeController-test.js +++ b/src/controllers/__tests__/PointModeController-test.js @@ -8,7 +8,7 @@ import { THREAD_EVENT, CONTROLLER_EVENT, SELECTOR_ANNOTATION_BUTTON_POINT_EXIT, - SELECTOR_POINT_MODE_HEADER + SELECTOR_POINT_MODE_HEADER, } from '../../constants'; import AnnotationThread from '../../AnnotationThread'; import Annotator from '../../Annotator'; @@ -80,12 +80,12 @@ describe('controllers/PointModeController', () => { controller.annotatedElement, ['click', 'touchstart'], controller.pointClickHandler, - true + true, ); expect(controller.pushElementHandler).toBeCalledWith( controller.exitButtonEl, 'click', - controller.toggleMode + controller.toggleMode, ); }); }); @@ -142,7 +142,7 @@ describe('controllers/PointModeController', () => { describe('pointClickHandler()', () => { const event = { stopPropagation: jest.fn(), - preventDefault: jest.fn() + preventDefault: jest.fn(), }; beforeEach(() => { @@ -151,7 +151,7 @@ describe('controllers/PointModeController', () => { util.isInAnnotationOrMarker = jest.fn().mockReturnValue(false); controller.modeButton = { title: 'Point Annotation Mode', - selector: '.bp-btn-annotate' + selector: '.bp-btn-annotate', }; }); diff --git a/src/doc/CreateHighlightDialog.js b/src/doc/CreateHighlightDialog.js index 640d4b049..c6b303272 100644 --- a/src/doc/CreateHighlightDialog.js +++ b/src/doc/CreateHighlightDialog.js @@ -12,7 +12,7 @@ import { getPopoverLayer, isInElement, getPageEl, - shouldDisplayMobileUI + shouldDisplayMobileUI, } from '../util'; import { getDialogCoordsFromRange } from './docUtil'; import { @@ -21,14 +21,14 @@ import { PAGE_PADDING_TOP, PAGE_PADDING_BOTTOM, SELECTOR_ANNOTATION_POPOVER, - INLINE_POPOVER_HEIGHT + INLINE_POPOVER_HEIGHT, } from '../constants'; class CreateHighlightDialog extends EventEmitter { /** @property {Object} - Position, on the DOM, to align the dialog to the end of a highlight. */ position = { x: 0, - y: 0 + y: 0, }; /** @property {boolean} - Whether or not we're on a mobile device. */ @@ -138,20 +138,20 @@ class CreateHighlightDialog extends EventEmitter { this.createPopoverComponent = render( , - popoverLayer + popoverLayer, ); this.isVisible = true; }; @@ -194,7 +194,7 @@ class CreateHighlightDialog extends EventEmitter { const pageTop = pageDimensions.top - popoverDimensions.height; this.position = { x: coords.x - pageLeft, - y: coords.y - pageTop + y: coords.y - pageTop, }; this.updatePosition(); } diff --git a/src/doc/DocAnnotator.js b/src/doc/DocAnnotator.js index 65a4540a8..b61d42be8 100644 --- a/src/doc/DocAnnotator.js +++ b/src/doc/DocAnnotator.js @@ -24,7 +24,7 @@ import { ANNOTATOR_EVENT, CONTROLLER_EVENT, CREATE_EVENT, - SELECTOR_ANNOTATION_POPOVER + SELECTOR_ANNOTATION_POPOVER, } from '../constants'; const DOUBLE_CLICK_COUNT = 2; @@ -40,7 +40,7 @@ const ID_ANNOTATED_ELEMENT = 'ba-rangy-annotated-element'; const ANNOTATION_LAYER_CLASSES = [ CLASS_ANNOTATION_LAYER_HIGHLIGHT, CLASS_ANNOTATION_LAYER_HIGHLIGHT_COMMENT, - CLASS_ANNOTATION_LAYER_DRAW + CLASS_ANNOTATION_LAYER_DRAW, ]; class DocAnnotator extends Annotator { @@ -174,7 +174,7 @@ class DocAnnotator extends Annotator { // $FlowFixMe clientEvent.clientX - pageDimensions.left, // $FlowFixMe - clientEvent.clientY - pageDimensions.top - PAGE_PADDING_TOP + clientEvent.clientY - pageDimensions.top - PAGE_PADDING_TOP, ]; // If click is outside the page, ignore @@ -197,7 +197,7 @@ class DocAnnotator extends Annotator { // and scale if needed (in case the representation changes size) const dimensions = { x: pageWidth / zoomScale, - y: pageHeight / zoomScale + y: pageHeight / zoomScale, }; location = { x, y, page: pageInfo.page, dimensions }; @@ -222,7 +222,7 @@ class DocAnnotator extends Annotator { } const quadPoints = []; - highlightEls.forEach((element) => { + highlightEls.forEach(element => { quadPoints.push(docUtil.getQuadPoints(element, pageEl, zoomScale)); }); @@ -234,7 +234,7 @@ class DocAnnotator extends Annotator { const pageHeight = pageDimensions.height - PAGE_PADDING_TOP - PAGE_PADDING_BOTTOM; const dimensions = { x: pageWidth / zoomScale, - y: pageHeight / zoomScale + y: pageHeight / zoomScale, }; location = { page, quadPoints, dimensions }; @@ -270,7 +270,7 @@ class DocAnnotator extends Annotator { scaleAnnotationCanvases(pageNum: number) { const pageEl = util.getPageEl(this.annotatedElement, pageNum); - ANNOTATION_LAYER_CLASSES.forEach((annotationLayerClass) => { + ANNOTATION_LAYER_CLASSES.forEach(annotationLayerClass => { const annotationLayerEl = pageEl.querySelector(`canvas.${annotationLayerClass}`); if (annotationLayerEl) { docUtil.scaleCanvas(pageEl, annotationLayerEl); @@ -297,7 +297,7 @@ class DocAnnotator extends Annotator { allowHighlight: this.plainHighlightEnabled, localized: this.localized, container: this.container, - headerHeight: this.headerElement.clientHeight + headerHeight: this.headerElement.clientHeight, }); if (this.commentHighlightEnabled) { @@ -317,8 +317,8 @@ class DocAnnotator extends Annotator { this.highlighter.addClassApplier( rangy.createClassApplier(CLASS_RANGY_HIGHLIGHT, { ignoreWhiteSpace: true, - tagNames: ['span', 'a'] - }) + tagNames: ['span', 'a'], + }), ); } @@ -383,7 +383,7 @@ class DocAnnotator extends Annotator { this.highlightThrottleHandle = null; } - Object.keys(this.modeControllers).forEach((mode) => { + Object.keys(this.modeControllers).forEach(mode => { const controller = this.modeControllers[mode]; controller.removeSelection(); }); @@ -525,7 +525,7 @@ class DocAnnotator extends Annotator { canAnnotate: true, canDelete: true, createdBy: this.api.user, - createdAt: new Date().toISOString() + createdAt: new Date().toISOString(), }); if (!thread) { this.handleValidationError(); @@ -598,11 +598,11 @@ class DocAnnotator extends Annotator { // Set all annotations on current page that are in the 'active' state to 'inactive' if (this.plainHighlightEnabled) { - this.modeControllers[TYPES.highlight].applyActionToThreads((thread) => thread.reset(), page); + this.modeControllers[TYPES.highlight].applyActionToThreads(thread => thread.reset(), page); } if (this.commentHighlightEnabled) { - this.modeControllers[TYPES.highlight_comment].applyActionToThreads((thread) => thread.reset(), page); + this.modeControllers[TYPES.highlight_comment].applyActionToThreads(thread => thread.reset(), page); } this.lastHighlightEvent = get(event, 'targetTouches[0]', event); @@ -642,7 +642,7 @@ class DocAnnotator extends Annotator { } this.highlighter.highlightSelection(CLASS_RANGY_HIGHLIGHT, { - containerElementId: this.annotatedElement.id + containerElementId: this.annotatedElement.id, }); } @@ -689,7 +689,7 @@ class DocAnnotator extends Annotator { */ isCreatingAnnotation() { let isPending = false; - Object.keys(this.modeControllers).some((mode) => { + Object.keys(this.modeControllers).some(mode => { const controller = this.modeControllers[mode]; if (controller.hadPendingThreads) { isPending = true; @@ -831,7 +831,7 @@ class DocAnnotator extends Annotator { } const intersectingThreads = [].concat(plainThreads, commentThreads); - intersectingThreads.forEach((thread) => this.clickThread(event, thread)); + intersectingThreads.forEach(thread => this.clickThread(event, thread)); // Show active thread last if (this.activeThread) { @@ -912,7 +912,7 @@ class DocAnnotator extends Annotator { return; } - const matchingHighlights = highlights.filter((internalHighlight) => { + const matchingHighlights = highlights.filter(internalHighlight => { return internalHighlight.id === highlight.id; }); diff --git a/src/doc/DocDrawingThread.js b/src/doc/DocDrawingThread.js index 3ebf2832f..26969ae9a 100644 --- a/src/doc/DocDrawingThread.js +++ b/src/doc/DocDrawingThread.js @@ -8,7 +8,7 @@ import { PAGE_PADDING_TOP, SELECTOR_ANNOTATION_POPOVER, STATES, - THREAD_EVENT + THREAD_EVENT, } from '../constants'; import { getBrowserCoordinatesFromLocation, getContext } from './docUtil'; import { createLocation, getScale, repositionCaret, findElement, getPageEl, shouldDisplayMobileUI } from '../util'; @@ -90,7 +90,7 @@ class DocDrawingThread extends DrawingThread { if ((!this.location || !this.location.page) && location.page) { this.location = { page: location.page, - dimensions: location.dimensions + dimensions: location.dimensions, }; } this.checkAndHandleScaleUpdate(); @@ -181,8 +181,8 @@ class DocDrawingThread extends DrawingThread { const context = this.selectContext(); // Generate the paths and draw to the annotation layer canvas - this.pathContainer.applyToItems((drawing) => - drawing.generateBrowserPath(this.reconstructBrowserCoordFromLocation) + this.pathContainer.applyToItems(drawing => + drawing.generateBrowserPath(this.reconstructBrowserCoordFromLocation), ); if (this.pendingPath && !this.pendingPath.isEmpty()) { @@ -206,7 +206,7 @@ class DocDrawingThread extends DrawingThread { */ checkAndHandleScaleUpdate() { const scale = getScale(this.annotatedElement); - if (this.lastScaleFactor === scale || (!this.location || !this.location.page)) { + if (this.lastScaleFactor === scale || !this.location || !this.location.page) { return; } @@ -363,7 +363,7 @@ class DocDrawingThread extends DrawingThread { popoverX, popoverWidth, popoverX + popoverWidth / 2, - pageDimensions.width + pageDimensions.width, ); popoverEl.style.left = `${popoverX}px`; diff --git a/src/doc/DocHighlightThread.js b/src/doc/DocHighlightThread.js index ea5810b4b..077cb6dfc 100644 --- a/src/doc/DocHighlightThread.js +++ b/src/doc/DocHighlightThread.js @@ -13,7 +13,7 @@ import { PAGE_PADDING_BOTTOM, BORDER_OFFSET, INLINE_POPOVER_HEIGHT, - SELECTOR_ANNOTATION_POPOVER + SELECTOR_ANNOTATION_POPOVER, } from '../constants'; class DocHighlightThread extends AnnotationThread { @@ -305,11 +305,11 @@ class DocHighlightThread extends AnnotationThread { this.location.dimensions, pageDimensions, zoomScale, - PAGE_PADDING_TOP + PAGE_PADDING_BOTTOM + PAGE_PADDING_TOP + PAGE_PADDING_BOTTOM, ); // $FlowFixMe - this.location.quadPoints.forEach((quadPoint) => { + this.location.quadPoints.forEach(quadPoint => { // If needed, scale quad points comparing current dimensions with saved dimensions let scaledQuadPoint = quadPoint; if (dimensionScale) { @@ -363,7 +363,7 @@ class DocHighlightThread extends AnnotationThread { this.location.dimensions, pageDimensions, zoomScale, - PAGE_PADDING_TOP + PAGE_PADDING_BOTTOM + PAGE_PADDING_TOP + PAGE_PADDING_BOTTOM, ); /** @@ -396,7 +396,7 @@ class DocHighlightThread extends AnnotationThread { const scaledQuadPoint = [...quadPoint]; if (dimensionScale) { const qLength = quadPoint.length; - for (let i = 0; i < qLength; i++) { + for (let i = 0; i < qLength; i += 1) { scaledQuadPoint[i] = scaleVertices(quadPoint[i], i); } } @@ -405,7 +405,16 @@ class DocHighlightThread extends AnnotationThread { const [x1, y1, x2, y2, x3, y3, x4, y4] = browserQuadPoint; - eventOccurredInHighlight = docUtil.isPointInPolyOpt([[x1, y1], [x2, y2], [x3, y3], [x4, y4]], x, y); + eventOccurredInHighlight = docUtil.isPointInPolyOpt( + [ + [x1, y1], + [x2, y2], + [x3, y3], + [x4, y4], + ], + x, + y, + ); index += 1; } @@ -443,7 +452,7 @@ class DocHighlightThread extends AnnotationThread { this.maxX = 0; this.maxY = 0; - this.location.quadPoints.forEach((quadPoint) => { + this.location.quadPoints.forEach(quadPoint => { const [x1, y1, x2, y2, x3, y3, x4, y4] = quadPoint; this.minX = Math.min(x1, x2, x3, x4, this.minX); this.maxX = Math.max(x1, x2, x3, x4, this.maxX); @@ -472,13 +481,13 @@ class DocHighlightThread extends AnnotationThread { this.annotatedElement, this.location, pageDimensions, - pageHeight + pageHeight, ); const popoverEl = util.findElement( this.annotatedElement, SELECTOR_ANNOTATION_POPOVER, - this.renderAnnotationPopover + this.renderAnnotationPopover, ); const dialogDimensions = popoverEl.getBoundingClientRect(); const dialogWidth = dialogDimensions.width; diff --git a/src/doc/DocPointThread.js b/src/doc/DocPointThread.js index a4b67e8dc..75165929f 100644 --- a/src/doc/DocPointThread.js +++ b/src/doc/DocPointThread.js @@ -6,7 +6,7 @@ import { STATES, SELECTOR_ANNOTATION_POPOVER, ANNOTATION_POPOVER_CARET_HEIGHT, - CLASS_FLIPPED_POPOVER + CLASS_FLIPPED_POPOVER, } from '../constants'; const PAGE_PADDING_TOP = 15; @@ -95,7 +95,7 @@ class DocPointThread extends AnnotationThread { dialogWidth, threadIconLeftX, pageDimensions.width, - !isUpperHalf + !isUpperHalf, ); // Position the dialog diff --git a/src/doc/__tests__/CreateHighlightDialog-test.js b/src/doc/__tests__/CreateHighlightDialog-test.js index 120a9f401..81ce3091f 100644 --- a/src/doc/__tests__/CreateHighlightDialog-test.js +++ b/src/doc/__tests__/CreateHighlightDialog-test.js @@ -12,7 +12,7 @@ describe('doc/CreateHighlightDialog', () => { let parentEl; const localized = { highlightToggle: 'highlight toggle', - highlightComment: 'highlight comment' + highlightComment: 'highlight comment', }; beforeEach(() => { @@ -25,7 +25,7 @@ describe('doc/CreateHighlightDialog', () => { dialog = new CreateHighlightDialog(parentEl, { allowHighlight: true, allowComment: true, - localized + localized, }); dialog.annotatedElement = rootElement; dialog.renderAnnotationPopover = jest.fn(); @@ -55,7 +55,7 @@ describe('doc/CreateHighlightDialog', () => { const config = { allowHighlight: true, allowComment: false, - localized + localized, }; const instance = new CreateHighlightDialog(document.createElement('div'), config); expect(instance.allowHighlight).toBeTruthy(); @@ -69,7 +69,7 @@ describe('doc/CreateHighlightDialog', () => { dialog.createPopoverComponent = {}; dialog.container = { - querySelectorAll: jest.fn().mockReturnValue([rootElement]) + querySelectorAll: jest.fn().mockReturnValue([rootElement]), }; }); @@ -81,7 +81,7 @@ describe('doc/CreateHighlightDialog', () => { it('should there are no popover layers', () => { dialog.container = { - querySelectorAll: jest.fn().mockReturnValue([]) + querySelectorAll: jest.fn().mockReturnValue([]), }; dialog.unmountPopover(); expect(dialog.createPopoverComponent).not.toBeNull(); @@ -128,14 +128,14 @@ describe('doc/CreateHighlightDialog', () => { describe('setPosition()', () => { const selection = { getRangeAt: jest.fn(), - rangeCount: 1 + rangeCount: 1, }; const pageEl = { getBoundingClientRect: jest.fn().mockReturnValue({ left: 1, - top: 2 - }) + top: 2, + }), }; beforeEach(() => { diff --git a/src/doc/__tests__/DocAnnotator-test.js b/src/doc/__tests__/DocAnnotator-test.js index d6b9da85a..e019d1bf4 100644 --- a/src/doc/__tests__/DocAnnotator-test.js +++ b/src/doc/__tests__/DocAnnotator-test.js @@ -11,7 +11,7 @@ import { CONTROLLER_EVENT, CREATE_EVENT, SELECTOR_ANNOTATED_ELEMENT, - CLASS_ANNOTATION_POPOVER + CLASS_ANNOTATION_POPOVER, } from '../../constants'; import DocHighlightThread from '../DocHighlightThread'; import FileVersionAPI from '../../api/FileVersionAPI'; @@ -53,8 +53,8 @@ describe('doc/DocAnnotator', () => { annotator: { NAME: 'name', TYPE: ['highlight', 'highlight-comment'], - CONTROLLERS: { something: controller } - } + CONTROLLERS: { something: controller }, + }, }; api = new FileVersionAPI(); @@ -62,18 +62,18 @@ describe('doc/DocAnnotator', () => { container: rootElement, api, file: { - file_version: { id: 1 } + file_version: { id: 1 }, }, isMobile: false, options, modeButtons: {}, location: { - locale: 'en-US' + locale: 'en-US', }, localizedStrings: { anonymousUserName: 'anonymous', - loadError: 'loaderror' - } + loadError: 'loaderror', + }, }); annotator.headerElement = document.createElement('div'); @@ -90,7 +90,7 @@ describe('doc/DocAnnotator', () => { util.getPageInfo = jest.fn().mockReturnValue({ page: 1, - pageEl: document.createElement('div') + pageEl: document.createElement('div'), }); }); @@ -124,7 +124,10 @@ describe('doc/DocAnnotator', () => { const x = 100; const y = 200; const dimensions = { x, y }; - const quadPoints = [[1, 2, 3, 4, 5, 6, 7, 8], [2, 3, 4, 5, 6, 7, 8, 9]]; + const quadPoints = [ + [1, 2, 3, 4, 5, 6, 7, 8], + [2, 3, 4, 5, 6, 7, 8, 9], + ]; const page = 3; let event; let pageEl; @@ -133,7 +136,7 @@ describe('doc/DocAnnotator', () => { event = { clientX: x, clientY: y, - target: annotator.annotatedEl + target: annotator.annotatedEl, }; docUtil.isSelectionPresent = jest.fn().mockReturnValue(true); @@ -142,14 +145,14 @@ describe('doc/DocAnnotator', () => { width: dimensions.x, height: dimensions.y + 30, // 15px padding top and bottom, top: 0, - left: 0 - }) + left: 0, + }), }; util.getPageInfo = jest.fn().mockReturnValue({ pageEl, page }); docUtil.getHighlightAndHighlightEls = jest.fn().mockReturnValue({ highlight: {}, - highlightEls: [] + highlightEls: [], }); util.isInDialog = jest.fn().mockReturnValue(false); @@ -170,9 +173,9 @@ describe('doc/DocAnnotator', () => { { clientX: x, clientY: y, - target: annotator.annotatedEl - } - ] + target: annotator.annotatedEl, + }, + ], }; annotator.getLocationFromEvent(event, TYPES.point); }); @@ -184,15 +187,15 @@ describe('doc/DocAnnotator', () => { event = { targetTouches: [ { - target: annotator.annotatedEl - } - ] + target: annotator.annotatedEl, + }, + ], }; annotator; expect(annotator.getLocationFromEvent(event, TYPES.point)).toBeNull(); }); - it('should not return a location if click isn\'t on page', () => { + it("should not return a location if click isn't on page", () => { window.getSelection = jest.fn().mockReturnValue(false); util.getPageInfo = jest.fn().mockReturnValue({ pageEl: null, page: -1 }); expect(annotator.getLocationFromEvent(event, TYPES.point)).toBeNull(); @@ -207,7 +210,7 @@ describe('doc/DocAnnotator', () => { docUtil.getSelection = jest.fn().mockReturnValue(false); util.getPageInfo = jest.fn().mockReturnValue({ pageEl: document.querySelector(SELECTOR_ANNOTATED_ELEMENT), - page: 1 + page: 1, }); util.isInDialog = jest.fn().mockReturnValue(true); expect(annotator.getLocationFromEvent(event, TYPES.point)).toBeNull(); @@ -231,9 +234,9 @@ describe('doc/DocAnnotator', () => { { clientX: x + 1, clientY: y, - target: annotator.annotatedEl - } - ] + target: annotator.annotatedEl, + }, + ], }; expect(annotator.getLocationFromEvent(event, TYPES.point)).toBeNull(); @@ -252,7 +255,7 @@ describe('doc/DocAnnotator', () => { describe(TYPES.highlight, () => { beforeEach(() => { annotator.highlighter = { - highlights: [] + highlights: [], }; }); @@ -291,7 +294,7 @@ describe('doc/DocAnnotator', () => { describe(TYPES.highlight_comment, () => { beforeEach(() => { annotator.highlighter = { - highlights: [] + highlights: [], }; }); @@ -353,14 +356,14 @@ describe('doc/DocAnnotator', () => { annotator.lastHighlightEvent = {}; annotator.highlighter = { - removeAllHighlights: jest.fn() + removeAllHighlights: jest.fn(), }; thread.type = 'highlight'; controller.registerThread = jest.fn().mockReturnValue(thread); annotator.modeControllers = { highlight: controller, - highlight_comment: controller + highlight_comment: controller, }; }); @@ -415,10 +418,10 @@ describe('doc/DocAnnotator', () => { describe('resetAnnotationUI()', () => { beforeEach(() => { window.getSelection = jest.fn().mockReturnValue({ - removeAllRanges: jest.fn() + removeAllRanges: jest.fn(), }); annotator.highlighter = { - removeAllHighlights: jest.fn() + removeAllHighlights: jest.fn(), }; annotator.scaleAnnotationCanvases = jest.fn(); }); @@ -480,18 +483,18 @@ describe('doc/DocAnnotator', () => { it('should not bind any plain highlight functions if they are disabled', () => { expect(annotator.createHighlightDialog.addListener).not.toBeCalledWith( CREATE_EVENT.plain, - expect.any(Function) + expect.any(Function), ); }); it('should not bind any comment highlight functions if they are disabled', () => { expect(annotator.createHighlightDialog.addListener).not.toBeCalledWith( CREATE_EVENT.comment, - expect.any(Function) + expect.any(Function), ); expect(annotator.createHighlightDialog.addListener).not.toBeCalledWith( CREATE_EVENT.post, - expect.any(Function) + expect.any(Function), ); }); @@ -509,11 +512,11 @@ describe('doc/DocAnnotator', () => { Object.defineProperty(Annotator.prototype, 'bindDOMListeners', { value: jest.fn() }); annotator.container = { addEventListener: jest.fn(), - removeEventListener: jest.fn() + removeEventListener: jest.fn(), }; annotator.annotatedElement = { addEventListener: jest.fn(), - removeEventListener: jest.fn() + removeEventListener: jest.fn(), }; annotator.permissions.can_annotate = true; @@ -531,16 +534,16 @@ describe('doc/DocAnnotator', () => { expect(annotator.container.addEventListener).toBeCalledWith('resize', annotator.resetAnnotationUI); expect(annotator.annotatedElement.addEventListener).toBeCalledWith( 'mouseup', - annotator.highlightMouseupHandler + annotator.highlightMouseupHandler, ); expect(annotator.annotatedElement.addEventListener).toBeCalledWith('wheel', annotator.hideCreateDialog); expect(annotator.annotatedElement.addEventListener).toBeCalledWith( 'mousedown', - annotator.highlightMousedownHandler + annotator.highlightMousedownHandler, ); expect(annotator.annotatedElement.addEventListener).toBeCalledWith( 'contextmenu', - annotator.highlightMousedownHandler + annotator.highlightMousedownHandler, ); expect(annotator.annotatedElement.addEventListener).toBeCalledWith('click', annotator.clickHandler); }); @@ -598,15 +601,15 @@ describe('doc/DocAnnotator', () => { expect(annotator.annotatedElement.addEventListener).not.toBeCalledWith('wheel', annotator.hideCreateDialog); expect(annotator.annotatedElement.addEventListener).not.toBeCalledWith( 'mouseup', - annotator.highlightMouseupHandler + annotator.highlightMouseupHandler, ); expect(annotator.annotatedElement.addEventListener).not.toBeCalledWith( 'mousedown', - annotator.highlightMousedownHandler + annotator.highlightMousedownHandler, ); expect(annotator.annotatedElement.addEventListener).not.toBeCalledWith( 'contextmenu', - annotator.highlightMousedownHandler + annotator.highlightMousedownHandler, ); expect(annotator.annotatedElement.addEventListener).toBeCalledWith('click', annotator.clickHandler); }); @@ -615,10 +618,10 @@ describe('doc/DocAnnotator', () => { describe('unbindDOMListeners()', () => { beforeEach(() => { annotator.container = { - removeEventListener: jest.fn() + removeEventListener: jest.fn(), }; annotator.annotatedElement = { - removeEventListener: jest.fn() + removeEventListener: jest.fn(), }; annotator.highlightMousemoveHandler = jest.fn(); @@ -632,20 +635,20 @@ describe('doc/DocAnnotator', () => { expect(annotator.container.removeEventListener).toBeCalledWith('resize', annotator.resetAnnotationUI); expect(annotator.annotatedElement.removeEventListener).toBeCalledWith( 'mouseup', - annotator.highlightMouseupHandler + annotator.highlightMouseupHandler, ); expect(annotator.annotatedElement.removeEventListener).toBeCalledWith('wheel', annotator.hideCreateDialog); expect(annotator.annotatedElement.removeEventListener).toBeCalledWith( 'contextmenu', - annotator.highlightMousedownHandler + annotator.highlightMousedownHandler, ); expect(annotator.annotatedElement.removeEventListener).toBeCalledWith( 'touchend', - annotator.hideCreateDialog + annotator.hideCreateDialog, ); expect(annotator.annotatedElement.removeEventListener).toBeCalledWith( 'mousedown', - annotator.highlightMousedownHandler + annotator.highlightMousedownHandler, ); expect(annotator.annotatedElement.removeEventListener).toBeCalledWith('click', annotator.clickHandler); }); @@ -674,8 +677,8 @@ describe('doc/DocAnnotator', () => { annotator.permissions.can_annotate = true; annotator.modeControllers = { test: { - removeSelection: jest.fn() - } + removeSelection: jest.fn(), + }, }; annotator.unbindDOMListeners(); @@ -687,7 +690,7 @@ describe('doc/DocAnnotator', () => { let drawingController; const event = { stopPropagation: jest.fn(), - preventDefault: jest.fn() + preventDefault: jest.fn(), }; beforeEach(() => { @@ -698,7 +701,7 @@ describe('doc/DocAnnotator', () => { annotator.hideAnnotations = jest.fn(); annotator.modeControllers = { - [TYPES.draw]: new DrawingModeController() + [TYPES.draw]: new DrawingModeController(), }; drawingController = annotator.modeControllers[TYPES.draw]; drawingController.handleSelection = jest.fn(); @@ -753,7 +756,7 @@ describe('doc/DocAnnotator', () => { describe('resetHighlightSelection()', () => { it('should hide the visible createHighlightDialog and clear the text selection', () => { const selection = { - removeAllRanges: jest.fn() + removeAllRanges: jest.fn(), }; window.getSelection = jest.fn().mockReturnValue(selection); annotator.hideCreateDialog = jest.fn(); @@ -767,7 +770,7 @@ describe('doc/DocAnnotator', () => { describe('highlightCurrentSelection()', () => { beforeEach(() => { annotator.highlighter = { - highlightSelection: jest.fn() + highlightSelection: jest.fn(), }; }); @@ -776,10 +779,10 @@ describe('doc/DocAnnotator', () => { expect(annotator.highlighter.highlightSelection).toBeCalled(); }); - it('should invoke highlighter.highlightSelection() with the annotated element\'s id', () => { + it("should invoke highlighter.highlightSelection() with the annotated element's id", () => { annotator.highlightCurrentSelection(); expect(annotator.highlighter.highlightSelection).toBeCalledWith('rangy-highlight', { - containerElementId: 'doc-annotator-el' + containerElementId: 'doc-annotator-el', }); }); }); @@ -789,7 +792,7 @@ describe('doc/DocAnnotator', () => { thread.type = 'highlight'; controller.threads = { 1: { '123abc': thread } }; annotator.modeControllers = { - highlight: controller + highlight: controller, }; annotator.resetHighlightSelection = jest.fn(); util.isInAnnotationOrMarker = jest.fn().mockReturnValue(false); @@ -863,7 +866,7 @@ describe('doc/DocAnnotator', () => { it('should call highlighter.removeAllHighlghts', () => { annotator.highlighter = { - removeAllHighlights: jest.fn() + removeAllHighlights: jest.fn(), }; annotator.highlightMouseupHandler({ x: 0, y: 0 }); expect(annotator.highlighter.removeAllHighlights).toBeCalled(); @@ -877,11 +880,11 @@ describe('doc/DocAnnotator', () => { event = { nodeName: 'textarea', preventDefault: jest.fn(), - stopPropagation: jest.fn() + stopPropagation: jest.fn(), }; annotator.annotatedElement = { - contains: jest.fn().mockReturnValue(true) + contains: jest.fn().mockReturnValue(true), }; docUtil.isValidSelection = jest.fn().mockReturnValue(true); @@ -893,9 +896,9 @@ describe('doc/DocAnnotator', () => { window.getSelection = jest.fn().mockReturnValue({ anchorNode: { - parentNode: 'Node' + parentNode: 'Node', }, - getRangeAt: jest.fn() + getRangeAt: jest.fn(), }); util.getPageInfo = jest.fn().mockReturnValue({ page: 1 }); annotator.isCreatingHighlight = false; @@ -929,7 +932,7 @@ describe('doc/DocAnnotator', () => { it('should do nothing if the user is currently creating a point annotation', () => { annotator.modeControllers = { - point: controller + point: controller, }; controller.pendingThreadID = 'something'; annotator.onSelectionChange(event); @@ -948,7 +951,7 @@ describe('doc/DocAnnotator', () => { it('should clear selection if the highlight has not changed', () => { const selection = { anchorNode: 'derp', - toString: () => '' // Causes invalid selection + toString: () => '', // Causes invalid selection }; docUtil.hasSelectionChanged = jest.fn().mockReturnValue(false); window.getSelection = jest.fn().mockReturnValue(selection); @@ -962,9 +965,9 @@ describe('doc/DocAnnotator', () => { rangeCount: 10, isCollapsed: false, anchorNode: { - parentNode: 'Node' + parentNode: 'Node', }, - toString: () => 'asdf' + toString: () => 'asdf', }; window.getSelection = jest.fn().mockReturnValue(selection); docUtil.hasSelectionChanged = jest.fn().mockReturnValue(true); @@ -981,9 +984,9 @@ describe('doc/DocAnnotator', () => { rangeCount: 10, isCollapsed: false, anchorNode: { - parentNode: 'Node' + parentNode: 'Node', }, - toString: () => 'asdf' + toString: () => 'asdf', }; window.getSelection = jest.fn().mockReturnValue(selection); docUtil.hasSelectionChanged = jest.fn().mockReturnValue(true); @@ -1000,12 +1003,12 @@ describe('doc/DocAnnotator', () => { rangeCount: 10, isCollapsed: false, anchorNode: { - parentNode: 'Node' + parentNode: 'Node', }, - toString: jest.fn().mockReturnValue('asdf') + toString: jest.fn().mockReturnValue('asdf'), }; annotator.modeControllers = { - highlight: controller + highlight: controller, }; docUtil.hasSelectionChanged = jest.fn().mockReturnValue(true); annotator.plainHighlightEnabled = true; @@ -1019,7 +1022,7 @@ describe('doc/DocAnnotator', () => { describe('highlightCreateHandler()', () => { const selection = { - rangeCount: 1 + rangeCount: 1, }; let pageInfo; const event = new Event({ x: 1, y: 1 }); @@ -1068,7 +1071,7 @@ describe('doc/DocAnnotator', () => { docUtil.getDialogCoordsFromRange = jest.fn().mockReturnValue({ x: 50, y: 35 }); const pageRect = { top: 0, - left: 0 + left: 0, }; pageInfo.pageEl.getBoundingClientRect = jest.fn().mockReturnValue(pageRect); selection.getRangeAt = jest.fn().mockReturnValue({}); @@ -1091,10 +1094,10 @@ describe('doc/DocAnnotator', () => { annotator.resetHighlightOnOutsideClick = jest.fn(); annotator.highlightCreateHandler = jest.fn(); annotator.modeControllers = { - highlight: controller + highlight: controller, }; annotator.highlighter = { - removeAllHighlights: jest.fn() + removeAllHighlights: jest.fn(), }; annotator.activeThread = undefined; annotator.plainHighlightEnabled = false; @@ -1130,7 +1133,7 @@ describe('doc/DocAnnotator', () => { it('should find the active highlight comment', () => { annotator.modeControllers = { - 'highlight-comment': controller + 'highlight-comment': controller, }; annotator.commentHighlightEnabled = true; annotator.activeThread = thread; @@ -1235,7 +1238,7 @@ describe('doc/DocAnnotator', () => { annotator.highlighter = { highlights: [{ id: 1 }, { id: 2 }, { id: 3 }], filter: jest.fn(), - removeHighlights: jest.fn() + removeHighlights: jest.fn(), }; Array.isArray = jest.fn().mockReturnValue(false); @@ -1248,10 +1251,10 @@ describe('doc/DocAnnotator', () => { annotator.highlighter = { highlights: { filter: jest.fn().mockReturnValue(1), - ids: [1, 2, 3, 4] + ids: [1, 2, 3, 4], }, filter: jest.fn(), - removeHighlights: jest.fn() + removeHighlights: jest.fn(), }; Array.isArray = jest.fn().mockReturnValue(true); @@ -1265,7 +1268,7 @@ describe('doc/DocAnnotator', () => { controller.hadPendingThreads = true; annotator.modeControllers = { draw: controller, - point: controller + point: controller, }; expect(annotator.isCreatingAnnotation()).toBeTruthy(); }); @@ -1274,7 +1277,7 @@ describe('doc/DocAnnotator', () => { controller.hadPendingThreads = false; annotator.modeControllers = { draw: controller, - point: controller + point: controller, }; expect(annotator.isCreatingAnnotation()).toBeFalsy(); }); diff --git a/src/doc/__tests__/DocDrawingThread-test.js b/src/doc/__tests__/DocDrawingThread-test.js index b97a321e4..8cc71beaa 100644 --- a/src/doc/__tests__/DocDrawingThread-test.js +++ b/src/doc/__tests__/DocDrawingThread-test.js @@ -25,7 +25,7 @@ describe('doc/DocDrawingThread', () => { api = { user: {}, create: jest.fn().mockResolvedValue({}), - delete: jest.fn().mockResolvedValue({}) + delete: jest.fn().mockResolvedValue({}), }; thread = new DocDrawingThread({ @@ -36,18 +36,18 @@ describe('doc/DocDrawingThread', () => { location: { x: 0, y: 0, - page: 1 + page: 1, }, threadID: 2, type: 'draw', permissions: { can_annotate: false, - can_view_annotations_all: true + can_view_annotations_all: true, }, minX: 1, maxX: 10, minY: 1, - maxY: 10 + maxY: 10, }); thread.getThreadEventData = jest.fn(); thread.renderAnnotationPopover = jest.fn(); @@ -71,21 +71,21 @@ describe('doc/DocDrawingThread', () => { thread.page = 1; thread.pendingPath = { addCoordinate: jest.fn(), - isEmpty: jest.fn() + isEmpty: jest.fn(), }; const { location } = thread; docUtil.getBrowserCoordinatesFromLocation = jest.fn().mockReturnValue([location.x, location.y]); }); - it('should not add a coordinate when the state is not \'draw\'', () => { + it("should not add a coordinate when the state is not 'draw'", () => { thread.drawingFlag = DRAW_STATES.idle; thread.handleMove(thread.location); expect(thread.pendingPath.addCoordinate).not.toBeCalled(); }); - it('should add a coordinate frame when the state is \'draw\'', () => { + it("should add a coordinate frame when the state is 'draw'", () => { thread.hasPageChanged = jest.fn().mockReturnValue(false); thread.handleMove(thread.location); @@ -116,7 +116,7 @@ describe('doc/DocDrawingThread', () => { thread.onPageChange = jest.fn(); thread.hasPageChanged = jest.fn(); - const context = 'I\'m a real context'; + const context = "I'm a real context"; util.getPageEl = jest.fn().mockReturnValue(context); }); @@ -163,15 +163,15 @@ describe('doc/DocDrawingThread', () => { thread.render = jest.fn(); thread.drawingFlag = DRAW_STATES.drawing; thread.pendingPath = { - isEmpty: () => false + isEmpty: () => false, }; thread.pathContainer = { insert: jest.fn(), - isEmpty: jest.fn().mockReturnValue(false) + isEmpty: jest.fn().mockReturnValue(false), }; }); - it('should set the state to \'idle\' and clear the pendingPath', () => { + it("should set the state to 'idle' and clear the pendingPath", () => { thread.handleStop(); expect(thread.emitAvailableActions).toBeCalled(); @@ -185,7 +185,7 @@ describe('doc/DocDrawingThread', () => { }); describe('onPageChange()', () => { - it('should emit an annotationevent of type pagechanged and stop a pending drawing', (done) => { + it('should emit an annotationevent of type pagechanged and stop a pending drawing', done => { thread.handleStop = jest.fn(); const location = 'location'; thread.addListener('threadevent', () => { @@ -205,7 +205,7 @@ describe('doc/DocDrawingThread', () => { docUtil.getContext = jest.fn(); thread.lastScaleFactor = 1.1; thread.location = { - page: 1 + page: 1, }; thread.checkAndHandleScaleUpdate(); expect(thread.lastScaleFactor).toEqual(1.4); @@ -229,11 +229,11 @@ describe('doc/DocDrawingThread', () => { it('should return a browser coordinate when the DocDrawingThread has been assigned a page', () => { thread.pageEl = 'has been set'; thread.location = { - dimensions: 'has been set' + dimensions: 'has been set', }; const documentLocation = { x: 1, - y: 2 + y: 2, }; docUtil.getBrowserCoordinatesFromLocation = jest.fn().mockReturnValue([3, 4]); @@ -241,7 +241,7 @@ describe('doc/DocDrawingThread', () => { expect(returnValue).toStrictEqual({ x: 3, - y: 4 + y: 4, }); }); }); @@ -254,7 +254,7 @@ describe('doc/DocDrawingThread', () => { it('should return false when there is a location but no page', () => { const location = { - page: undefined + page: undefined, }; thread.location = location; const value = thread.hasPageChanged(location); @@ -263,7 +263,7 @@ describe('doc/DocDrawingThread', () => { it('should return false when the given location page is the same as the thread location', () => { const location = { - page: 2 + page: 2, }; thread.location = location; const value = thread.hasPageChanged(location); @@ -272,10 +272,10 @@ describe('doc/DocDrawingThread', () => { it('should return true when the given location page is different from the thread location', () => { thread.location = { - page: 2 + page: 2, }; const location = { - page: thread.location.page + 1 + page: thread.location.page + 1, }; const value = thread.hasPageChanged(location); expect(value).toBeTruthy(); @@ -288,7 +288,7 @@ describe('doc/DocDrawingThread', () => { thread.draw = jest.fn(); thread.destroy = jest.fn(); thread.pathContainer = { - applyToItems: jest.fn() + applyToItems: jest.fn(), }; }); @@ -326,8 +326,8 @@ describe('doc/DocDrawingThread', () => { clearRect: jest.fn(), canvas: { height: 100, - width: 100 - } + width: 100, + }, }; const retValue = thread.selectContext(); @@ -341,8 +341,8 @@ describe('doc/DocDrawingThread', () => { clearRect: jest.fn(), canvas: { height: 100, - width: 100 - } + width: 100, + }, }; docUtil.getContext.mockReturnValue(concreteContext); @@ -367,7 +367,7 @@ describe('doc/DocDrawingThread', () => { thread.annotatedElement = rootElement; thread.location = { page: 1, - dimensions: {} + dimensions: {}, }; thread.pageEl = {}; @@ -393,10 +393,10 @@ describe('doc/DocDrawingThread', () => { canvas: { height: 100, parentNode: { - removeChild: removeFn + removeChild: removeFn, }, - width: 100 - } + width: 100, + }, }; thread.destroy(); diff --git a/src/doc/__tests__/DocHighlightThread-test.js b/src/doc/__tests__/DocHighlightThread-test.js index ea38483d5..8c3d47198 100644 --- a/src/doc/__tests__/DocHighlightThread-test.js +++ b/src/doc/__tests__/DocHighlightThread-test.js @@ -17,7 +17,7 @@ describe('doc/DocHighlightThread', () => { const api = { user: {}, - create: jest.fn().mockResolvedValue({}) + create: jest.fn().mockResolvedValue({}), }; beforeEach(() => { @@ -35,18 +35,18 @@ describe('doc/DocHighlightThread', () => { type: 'highlight', permissions: { can_annotate: true, - can_view_annotations_all: true + can_view_annotations_all: true, }, minX: 1, maxX: 10, minY: 1, - maxY: 10 + maxY: 10, }); thread.renderAnnotationPopover = jest.fn(); thread.unmountPopover = jest.fn(); window.getSelection = jest.fn().mockReturnValue({ - removeAllRanges: jest.fn() + removeAllRanges: jest.fn(), }); }); @@ -135,7 +135,7 @@ describe('doc/DocHighlightThread', () => { it('should emit deleted and a render event if the thread has been destroyed (the entire annotation was just deleted', () => { thread.emit = jest.fn(); thread.location = { - page: 1 + page: 1, }; thread.threadID = null; @@ -234,7 +234,7 @@ describe('doc/DocHighlightThread', () => { describe('handleDraw()', () => { it('should clear the text selection and show the thread', () => { const selection = { - removeAllRanges: jest.fn() + removeAllRanges: jest.fn(), }; window.getSelection = jest.fn().mockReturnValue(selection); thread.show = jest.fn(); @@ -317,7 +317,7 @@ describe('doc/DocHighlightThread', () => { describe('isInHighlight()', () => { const pageEl = { - getBoundingClientRect: jest.fn().mockReturnValue({ height: 0, top: 10 }) + getBoundingClientRect: jest.fn().mockReturnValue({ height: 0, top: 10 }), }; let quadPoint = {}; @@ -374,7 +374,10 @@ describe('doc/DocHighlightThread', () => { it('should set the min/max x/y values for thread location', () => { thread.location = { - quadPoints: [[1, 1, 1, 1, 1, 1, 1, 1], [10, 10, 10, 10, 10, 10, 10, 10]] + quadPoints: [ + [1, 1, 1, 1, 1, 1, 1, 1], + [10, 10, 10, 10, 10, 10, 10, 10], + ], }; thread.regenerateBoundary(); expect(thread.minX).toEqual(1); diff --git a/src/doc/__tests__/DocPointThread-test.js b/src/doc/__tests__/DocPointThread-test.js index be336a70b..8d76b0a0f 100644 --- a/src/doc/__tests__/DocPointThread-test.js +++ b/src/doc/__tests__/DocPointThread-test.js @@ -24,8 +24,8 @@ describe('doc/DocPointThread', () => { threadID: 2, type: 'point', permissions: { - can_annotate: true - } + can_annotate: true, + }, }); thread.getPopoverParent = jest.fn().mockReturnValue(rootElement); }); diff --git a/src/doc/__tests__/docUtil-test.js b/src/doc/__tests__/docUtil-test.js index 19dd2a09e..fc4e95dbd 100644 --- a/src/doc/__tests__/docUtil-test.js +++ b/src/doc/__tests__/docUtil-test.js @@ -54,10 +54,10 @@ describe('doc/docUtil', () => { it('should return true if the previous and current selection have changed', () => { const selection = { - getRangeAt: jest.fn().mockReturnValue({ compareBoundaryPoints: jest.fn().mockReturnValue(false) }) + getRangeAt: jest.fn().mockReturnValue({ compareBoundaryPoints: jest.fn().mockReturnValue(false) }), }; const diffSelection = { - getRangeAt: jest.fn().mockReturnValue({ compareBoundaryPoints: jest.fn().mockReturnValue(true) }) + getRangeAt: jest.fn().mockReturnValue({ compareBoundaryPoints: jest.fn().mockReturnValue(true) }), }; expect(docUtil.hasSelectionChanged(diffSelection, selection)).toBeTruthy(); expect(docUtil.hasSelectionChanged(selection, selection)).toBeFalsy(); @@ -66,12 +66,22 @@ describe('doc/docUtil', () => { describe('isPointInPolyOpt()', () => { it('should return true if point is inside polygon', () => { - const polygon = [[0, 0], [100, 0], [100, 100], [0, 100]]; + const polygon = [ + [0, 0], + [100, 0], + [100, 100], + [0, 100], + ]; expect(docUtil.isPointInPolyOpt(polygon, 50, 50)).toBeTruthy(); }); it('should return false if point is outside polygon', () => { - const polygon = [[0, 0], [100, 0], [100, 100], [0, 100]]; + const polygon = [ + [0, 0], + [100, 0], + [100, 100], + [0, 100], + ]; expect(docUtil.isPointInPolyOpt(polygon, 120, 50)).toBeFalsy(); }); }); @@ -80,7 +90,7 @@ describe('doc/docUtil', () => { it('should return true if there is a non-empty selection on the page', () => { window.getSelection = jest.fn().mockReturnValue({ isCollapsed: false, - rangeCount: 1 + rangeCount: 1, }); expect(docUtil.isSelectionPresent()).toBeTruthy(); }); @@ -118,15 +128,15 @@ describe('doc/docUtil', () => { y: 300, dimensions: { x: 600, - y: 1000 - } + y: 1000, + }, }; const annotatedEl = document.createElement('div'); annotatedEl.querySelector = jest.fn().mockReturnValue(rootElement); rootElement.getBoundingClientRect = jest.fn().mockReturnValue({ height: 1030, - width: 600 + width: 600, }); expect(docUtil.getBrowserCoordinatesFromLocation(location, annotatedEl)).toStrictEqual([400, 600]); @@ -134,12 +144,18 @@ describe('doc/docUtil', () => { }); describe('getLowerRightCornerOfLastQuadPoint()', () => { - const quadPoints = [[0, 10, 10, 10, 10, 20, 0, 20], [0, 0, 10, 0, 10, 10, 0, 10]]; + const quadPoints = [ + [0, 10, 10, 10, 10, 20, 0, 20], + [0, 0, 10, 0, 10, 10, 0, 10], + ]; expect(docUtil.getLowerRightCornerOfLastQuadPoint(quadPoints)).toStrictEqual([10, 0]); }); describe('getTopRightCornerOfLastQuadPoint()', () => { - const quadPoints = [[0, 10, 10, 10, 10, 20, 0, 20], [0, 0, 10, 0, 10, 10, 0, 10]]; + const quadPoints = [ + [0, 10, 10, 10, 10, 20, 0, 20], + [0, 0, 10, 0, 10, 10, 0, 10], + ]; expect(docUtil.getTopRightCornerOfLastQuadPoint(quadPoints)).toStrictEqual([0, 0]); }); @@ -148,16 +164,16 @@ describe('doc/docUtil', () => { const selection = { rangeCount: 0, isCollapsed: false, - toString: () => 'I am valid!' + toString: () => 'I am valid!', }; expect(docUtil.isValidSelection(selection)).toBeFalsy(); }); - it('should return false if the selection isn\'t collapsed', () => { + it("should return false if the selection isn't collapsed", () => { const selection = { rangeCount: 1, isCollapsed: true, - toString: () => 'I am valid!' + toString: () => 'I am valid!', }; expect(docUtil.isValidSelection(selection)).toBeFalsy(); }); @@ -166,7 +182,7 @@ describe('doc/docUtil', () => { const selection = { rangeCount: 1, isCollapsed: false, - toString: () => '' + toString: () => '', }; expect(docUtil.isValidSelection(selection)).toBeFalsy(); }); @@ -175,7 +191,7 @@ describe('doc/docUtil', () => { const selection = { rangeCount: 1, isCollapsed: false, - toString: () => 'I am valid!' + toString: () => 'I am valid!', }; expect(docUtil.isValidSelection(selection)).toBeTruthy(); }); @@ -191,14 +207,14 @@ describe('doc/docUtil', () => { const pageEl = { getBoundingClientRect: jest.fn().mockReturnValue({ width, - height - }) + height, + }), }; const canvasHeight = height - pagePadding; beforeEach(() => { const context = { - scale: jest.fn() + scale: jest.fn(), }; annotationLayer.getContext = jest.fn().mockReturnValue(context); }); @@ -234,7 +250,7 @@ describe('doc/docUtil', () => { docUtil.scaleCanvas = jest.fn().mockReturnValue(annotationLayer); annotationLayer.getContext = jest.fn().mockReturnValue({ - scale: jest.fn() + scale: jest.fn(), }); rootElement.insertBefore = jest.fn(); @@ -291,9 +307,9 @@ describe('doc/docUtil', () => { insertBefore: jest.fn(), appendChild: jest.fn(), removeChild: jest.fn(), - querySelector: jest.fn((sel) => { + querySelector: jest.fn(sel => { return rootElement.querySelector(sel); - }) + }), }; previousSibling = document.createElement('div'); @@ -305,19 +321,19 @@ describe('doc/docUtil', () => { insertBefore: jest.fn(), appendChild: jest.fn(), previousSibling, - parentNode: parentContainer + parentNode: parentContainer, }; range = { endContainer, endOffset: 6, setStart: jest.fn(), - setEnd: jest.fn() + setEnd: jest.fn(), }; document.createElement('span').getBoundingClientRect = jest.fn().mockReturnValue({ right: 10, - bottom: 11 + bottom: 11, }); }); @@ -362,10 +378,10 @@ describe('doc/docUtil', () => { expect(dummy).toBeNull(); }); - it('should use the position element\'s bounds for the x and y coordinate', () => { + it("should use the position element's bounds for the x and y coordinate", () => { docUtil.getDialogCoordsFromRange = jest.fn().mockReturnValue({ x: 10, - y: 11 + y: 11, }); const coords = docUtil.getDialogCoordsFromRange(range); expect(coords.x).toEqual(10); diff --git a/src/doc/docUtil.js b/src/doc/docUtil.js index 3da4d0141..afce7b228 100644 --- a/src/doc/docUtil.js +++ b/src/doc/docUtil.js @@ -72,13 +72,13 @@ export function isPointInPolyOpt(poly, x, y) { */ export function getHighlightAndHighlightEls(highlighter, pageEl) { const highlight = highlighter.highlights[0]; - const highlightEls = [].slice.call(pageEl.querySelectorAll('.rangy-highlight'), 0).filter((element) => { + const highlightEls = [].slice.call(pageEl.querySelectorAll('.rangy-highlight'), 0).filter(element => { return element.tagName && element.tagName === 'SPAN' && element.textContent.trim() !== ''; }); return { highlight, - highlightEls + highlightEls, }; } /* eslint-enable space-before-function-paren */ @@ -130,7 +130,7 @@ export function isCoordOutside(coordinates, pageWidth, pageHeight) { * pixels */ export function convertPDFSpaceToDOMSpace(coordinates, pageHeight, scale) { - const scaledCoordinates = coordinates.map((val) => val * PDF_UNIT_TO_CSS_PIXEL * scale); + const scaledCoordinates = coordinates.map(val => val * PDF_UNIT_TO_CSS_PIXEL * scale); if (scaledCoordinates.length === 2) { const [x, y] = scaledCoordinates; return [x, pageHeight - y]; @@ -161,7 +161,7 @@ export function convertDOMSpaceToPDFSpace(coordinates, pageHeight, scale) { pdfCoordinates = [x1, pageHeight - y1, x2, pageHeight - y2, x3, pageHeight - y3, x4, pageHeight - y4]; } - return pdfCoordinates.map((val) => ((val * CSS_PIXEL_TO_PDF_UNIT) / scale).toFixed(4)); + return pdfCoordinates.map(val => ((val * CSS_PIXEL_TO_PDF_UNIT) / scale).toFixed(4)); } /** @@ -247,7 +247,7 @@ export function getQuadPoints(element, pageEl, scale) { corner3Dimensions.left - pageLeft, corner3Dimensions.top - pageTop, corner4Dimensions.left - pageLeft, - corner4Dimensions.top - pageTop + corner4Dimensions.top - pageTop, ]; // Return quad points at 100% scale in PDF units @@ -402,7 +402,7 @@ export function getDialogCoordsFromRange(range) { return { x, - y + y, }; } @@ -428,7 +428,7 @@ export function getScaledPDFCoordinates(annotatedElement, location, pageDimensio location.dimensions, pageDimensions, zoomScale, - constants.PAGE_PADDING_TOP + constants.PAGE_PADDING_BOTTOM + constants.PAGE_PADDING_TOP + constants.PAGE_PADDING_BOTTOM, ); if (dimensionScale) { x *= dimensionScale.x; diff --git a/src/drawing/DrawingContainer.js b/src/drawing/DrawingContainer.js index a411a7c91..5eab3d5c4 100644 --- a/src/drawing/DrawingContainer.js +++ b/src/drawing/DrawingContainer.js @@ -80,7 +80,7 @@ class DrawingContainer { getNumberOfItems() { return { undoCount: this.undoStack.length, - redoCount: this.redoStack.length + redoCount: this.redoStack.length, }; } @@ -105,16 +105,16 @@ class DrawingContainer { maxX: -Infinity, minY: Infinity, maxY: -Infinity, - paths: [] + paths: [], }; - items.forEach((drawingPath) => { + items.forEach(drawingPath => { boundary.minX = Math.min(boundary.minX, drawingPath.minX); boundary.maxX = Math.max(boundary.maxX, drawingPath.maxX); boundary.minY = Math.min(boundary.minY, drawingPath.minY); boundary.maxY = Math.max(boundary.maxY, drawingPath.maxY); boundary.paths.push({ - path: drawingPath.path + path: drawingPath.path, }); }); return boundary; diff --git a/src/drawing/DrawingPath.js b/src/drawing/DrawingPath.js index 9fb010185..1b115f887 100644 --- a/src/drawing/DrawingPath.js +++ b/src/drawing/DrawingPath.js @@ -180,7 +180,7 @@ class DrawingPath { maxX: accumulator.maxX ? Math.max(accumulator.maxX, pathA.maxX) : pathA.maxX, minY: accumulator.minY ? Math.min(accumulator.minY, pathA.minY) : pathA.minY, maxY: accumulator.maxY ? Math.max(accumulator.maxY, pathA.maxY) : pathA.maxY, - paths + paths, }; } } diff --git a/src/drawing/DrawingThread.js b/src/drawing/DrawingThread.js index 1312dc607..eff490f71 100644 --- a/src/drawing/DrawingThread.js +++ b/src/drawing/DrawingThread.js @@ -8,7 +8,7 @@ import { DRAW_RENDER_THRESHOLD, DRAW_BASE_LINE_WIDTH, BORDER_OFFSET, - THREAD_EVENT + THREAD_EVENT, } from '../constants'; class DrawingThread extends AnnotationThread { @@ -93,7 +93,7 @@ class DrawingThread extends AnnotationThread { this.unmountPopover(); } - this.location.paths.forEach((drawingPathData) => { + this.location.paths.forEach(drawingPathData => { const pathInstance = new DrawingPath(drawingPathData); this.pathContainer.insert(pathInstance); }); @@ -215,7 +215,7 @@ class DrawingThread extends AnnotationThread { x - BORDER_OFFSET, y + BORDER_OFFSET, width + BORDER_OFFSET * 2, - height - BORDER_OFFSET * 2 + height - BORDER_OFFSET * 2, ); } @@ -327,7 +327,7 @@ s * } context.beginPath(); - this.pathContainer.applyToItems((drawing) => drawing.drawPath(context)); + this.pathContainer.applyToItems(drawing => drawing.drawPath(context)); if (this.pendingPath && !this.pendingPath.isEmpty()) { this.pendingPath.drawPath(context); } @@ -344,7 +344,7 @@ s * const availableActions = this.pathContainer.getNumberOfItems(); this.emit('availableactions', { undo: availableActions.undoCount, - redo: availableActions.redoCount + redo: availableActions.redoCount, }); } @@ -442,16 +442,16 @@ s * return { item: { id: this.fileVersionId, - type: 'file_version' + type: 'file_version', }, details: { type, location: this.location, threadID: this.threadID, - drawingPaths: this.pathContainer + drawingPaths: this.pathContainer, }, createdBy: this.api.user, - thread: this.threadNumber + thread: this.threadNumber, }; } diff --git a/src/drawing/__tests__/DrawingContainer-test.js b/src/drawing/__tests__/DrawingContainer-test.js index cef65dbd0..4e02301dc 100644 --- a/src/drawing/__tests__/DrawingContainer-test.js +++ b/src/drawing/__tests__/DrawingContainer-test.js @@ -101,7 +101,7 @@ describe('drawing/DrawingContainer', () => { describe('applyToItems()', () => { it('should apply the function only to items on the undo stack', () => { const counter = { - count: 0 + count: 0, }; drawingContainer.undoStack = [counter, counter, counter, counter]; drawingContainer.redoStack = [counter]; @@ -113,7 +113,7 @@ describe('drawing/DrawingContainer', () => { it('should apply the function to items on the undo and redo stack', () => { const counter = { - count: 0 + count: 0, }; drawingContainer.undoStack = [counter, counter, counter, counter]; drawingContainer.redoStack = [counter, counter]; @@ -135,7 +135,7 @@ describe('drawing/DrawingContainer', () => { maxX: -Infinity, minY: Infinity, maxY: -Infinity, - paths: [] + paths: [], }); }); @@ -145,14 +145,14 @@ describe('drawing/DrawingContainer', () => { minY: 6, maxX: 8, maxY: 9, - path: [1, 2, 3, 4] + path: [1, 2, 3, 4], }; const path2 = { minX: 3, minY: 7, maxX: 14, maxY: 8, - path: [1, 2, 3] + path: [1, 2, 3], }; drawingContainer.getItems = jest.fn().mockReturnValue([path1, path2]); @@ -163,7 +163,7 @@ describe('drawing/DrawingContainer', () => { maxX: path2.maxX, minY: path1.minY, maxY: path1.maxY, - paths: [{ path: path1.path }, { path: path2.path }] + paths: [{ path: path1.path }, { path: path2.path }], }); }); }); diff --git a/src/drawing/__tests__/DrawingPath-test.js b/src/drawing/__tests__/DrawingPath-test.js index 22c3817fc..5c5738460 100644 --- a/src/drawing/__tests__/DrawingPath-test.js +++ b/src/drawing/__tests__/DrawingPath-test.js @@ -19,7 +19,10 @@ describe('drawing/DrawingPath', () => { it('should generate path of Location objects from provided data', () => { const data = { - path: [{ x: 1, y: 1 }, { x: 2, y: 2 }] + path: [ + { x: 1, y: 1 }, + { x: 2, y: 2 }, + ], }; drawingPath.initPath(data); expect(drawingPath.path.length).toEqual(2); @@ -35,11 +38,11 @@ describe('drawing/DrawingPath', () => { let lengthBefore = drawingPath.path.length; drawingPath.addCoordinate({ x: null, - y: 2 + y: 2, }); drawingPath.addCoordinate({ x: 2, - y: null + y: null, }); let lengthAfter = drawingPath.path.length; @@ -50,22 +53,22 @@ describe('drawing/DrawingPath', () => { drawingPath.addCoordinate( { x: 1, - y: 1 + y: 1, }, { x: null, - y: 1 - } + y: 1, + }, ); drawingPath.addCoordinate( { x: 1, - y: 1 + y: 1, }, { x: 1, - y: null - } + y: null, + }, ); lengthAfter = drawingPath.browserPath.length; expect(lengthAfter).toEqual(lengthBefore); @@ -75,14 +78,14 @@ describe('drawing/DrawingPath', () => { const lengthBefore = drawingPath.path.length; drawingPath.addCoordinate({ x: 1, - y: 2 + y: 2, }); const lengthAfter = drawingPath.path.length; expect(lengthAfter).toEqual(lengthBefore + 1); expect(drawingPath.path[lengthAfter - 1]).toStrictEqual({ x: 1, - y: 2 + y: 2, }); }); @@ -91,16 +94,16 @@ describe('drawing/DrawingPath', () => { x1: 1, x2: 5, y1: 2, - y2: 6 + y2: 6, }; drawingPath.addCoordinate({ x: rectBounds.x1, - y: rectBounds.y1 + y: rectBounds.y1, }); drawingPath.addCoordinate({ x: rectBounds.x2, - y: rectBounds.y2 + y: rectBounds.y2, }); expect(drawingPath.minY).toEqual(rectBounds.y1); @@ -118,7 +121,7 @@ describe('drawing/DrawingPath', () => { it('should return false when a coordinate has been inserted', () => { const coord = { x: 1, - y: 1 + y: 1, }; drawingPath.addCoordinate(coord); expect(drawingPath.isEmpty()).toBeFalsy(); @@ -130,7 +133,7 @@ describe('drawing/DrawingPath', () => { drawingPath.drawPath({}); drawingPath.browserPath = { - forEach: jest.fn() + forEach: jest.fn(), }; drawingPath.drawPath(); expect(drawingPath.browserPath.forEach).not.toBeCalled(); @@ -139,15 +142,15 @@ describe('drawing/DrawingPath', () => { it('should draw when there are browser coordinates', () => { const context = { quadraticCurveTo: jest.fn(), - moveTo: jest.fn() + moveTo: jest.fn(), }; const docCoord = { x: 1, - y: 1 + y: 1, }; const browserCoord = { x: 1, - y: 1 + y: 1, }; drawingPath.addCoordinate(docCoord, browserCoord); @@ -161,12 +164,12 @@ describe('drawing/DrawingPath', () => { it('should not draw when there are no browser coordinates', () => { const context = { quadraticCurveTo: jest.fn(), - moveTo: jest.fn() + moveTo: jest.fn(), }; drawingPath.path.push({ x: 1, - y: 1 + y: 1, }); expect(drawingPath.browserPath.length).toEqual(0); @@ -189,15 +192,15 @@ describe('drawing/DrawingPath', () => { const lengthBefore = drawingPath.browserPath.length; // eslint-disable-next-line require-jsdoc - const transform = (coord) => { + const transform = coord => { return { x: coord.x + 1, - y: coord.y + 1 + y: coord.y + 1, }; }; const documentCoord = { x: 1, - y: 2 + y: 2, }; drawingPath.path = [documentCoord]; @@ -206,7 +209,7 @@ describe('drawing/DrawingPath', () => { const lengthAfter = drawingPath.browserPath.length; // eslint-disable-next-line require-jsdoc - const isBrowserCoord = (item) => item.x === documentCoord.x + 1 && item.y === documentCoord.y + 1; + const isBrowserCoord = item => item.x === documentCoord.x + 1 && item.y === documentCoord.y + 1; expect(lengthBefore).toBeLessThan(lengthAfter); expect(drawingPath.browserPath.find(isBrowserCoord)).not.toBeUndefined(); }); @@ -219,7 +222,7 @@ describe('drawing/DrawingPath', () => { minX: 5, maxX: 6, minY: 7, - maxY: 8 + maxY: 8, }; const result = DrawingPath.extractDrawingInfo(drawingObjA, {}); @@ -236,14 +239,14 @@ describe('drawing/DrawingPath', () => { minX: 5, maxX: 11, minY: 6, - maxY: 12 + maxY: 12, }; const drawingObjC = { path: 'pathC', minX: 3, maxX: 10, minY: 5, - maxY: 11 + maxY: 11, }; const result = DrawingPath.extractDrawingInfo(drawingObjC, acc); diff --git a/src/drawing/__tests__/DrawingThread-test.js b/src/drawing/__tests__/DrawingThread-test.js index 844d6ee4a..556bce58a 100644 --- a/src/drawing/__tests__/DrawingThread-test.js +++ b/src/drawing/__tests__/DrawingThread-test.js @@ -29,7 +29,7 @@ describe('drawing/DrawingThread', () => { fileVersionId: 1, location: {}, threadID: 2, - type: 'draw' + type: 'draw', }); expect(thread.state).toEqual(STATES.inactive); util.shouldDisplayMobileUI = jest.fn().mockReturnValue(false); @@ -46,7 +46,7 @@ describe('drawing/DrawingThread', () => { thread.pathContainer = new DrawingContainer(); thread.pathContainer.insert = jest.fn(); thread.location = { - paths: [{}, {}] + paths: [{}, {}], }; }); @@ -100,7 +100,7 @@ describe('drawing/DrawingThread', () => { beforeEach(() => { thread.hasTouch = false; thread.annotatedElement = { - addEventListener: jest.fn() + addEventListener: jest.fn(), }; }); @@ -135,7 +135,7 @@ describe('drawing/DrawingThread', () => { describe('unbindDrawingListeners()', () => { beforeEach(() => { thread.annotatedElement = { - removeEventListener: jest.fn() + removeEventListener: jest.fn(), }; thread.userMoveHandler = jest.fn(); thread.userStopHandler = jest.fn(); @@ -157,11 +157,11 @@ describe('drawing/DrawingThread', () => { thread.delete = jest.fn(); thread.getBrowserRectangularBoundary = jest.fn().mockReturnValue(['a', 'b', 'c', 'd']); thread.concreteContext = { - clearRect: jest.fn() + clearRect: jest.fn(), }; thread.pathContainer = { - destroy: jest.fn() + destroy: jest.fn(), }; thread.comments = [{ id: '123abc' }]; @@ -177,14 +177,14 @@ describe('drawing/DrawingThread', () => { describe('setContextStyles()', () => { const config = { scale: 2, - color: 'blue' + color: 'blue', }; const context = { lineCap: 'not set', lineJoin: 'not set', strokeStyle: 'no color', - lineWidth: 'no width' + lineWidth: 'no width', }; it('should do nothing when no context exists', () => { @@ -255,7 +255,7 @@ describe('drawing/DrawingThread', () => { thread.renderAnnotationPopover = jest.fn(); thread.pathContainer = { isEmpty: jest.fn().mockReturnValue(true), - getAxisAlignedBoundingBox: jest.fn() + getAxisAlignedBoundingBox: jest.fn(), }; thread.updateBoundaryAndPopover(); @@ -291,10 +291,10 @@ describe('drawing/DrawingThread', () => { beforeEach(() => { thread.pendingPath = { isEmpty: jest.fn(), - drawPath: jest.fn() + drawPath: jest.fn(), }; thread.pathContainer = { - applyToItems: jest.fn() + applyToItems: jest.fn(), }; context = { clearRect: jest.fn(), @@ -302,8 +302,8 @@ describe('drawing/DrawingThread', () => { stroke: jest.fn(), canvas: { width: 1, - height: 2 - } + height: 2, + }, }; }); @@ -341,15 +341,15 @@ describe('drawing/DrawingThread', () => { thread.removeAllListeners('threadevent'); }); - it('should trigger an annotationevent with thenumber of available undo and redo actions', (done) => { + it('should trigger an annotationevent with thenumber of available undo and redo actions', done => { const numItems = { undoCount: 3, - redoCount: 2 + redoCount: 2, }; thread.pathContainer = { - getNumberOfItems: jest.fn().mockReturnValue(numItems) + getNumberOfItems: jest.fn().mockReturnValue(numItems), }; - thread.addListener('threadevent', (data) => { + thread.addListener('threadevent', data => { const { eventData } = data; expect(data.event).toEqual('availableactions'); expect(eventData.undo).toEqual(numItems.undoCount); @@ -400,7 +400,7 @@ describe('drawing/DrawingThread', () => { describe('updateBoundary()', () => { beforeEach(() => { thread.pathContainer = { - getAxisAlignedBoundingBox: jest.fn() + getAxisAlignedBoundingBox: jest.fn(), }; DrawingPath.extractDrawingInfo = jest.fn(); }); @@ -442,7 +442,7 @@ describe('drawing/DrawingThread', () => { minX: 5, minY: 6, maxX: 7, - maxY: 8 + maxY: 8, }; thread.regenerateBoundary(); diff --git a/src/image/ImageAnnotator.js b/src/image/ImageAnnotator.js index 3aaf917c8..ccdd9b068 100644 --- a/src/image/ImageAnnotator.js +++ b/src/image/ImageAnnotator.js @@ -62,7 +62,7 @@ class ImageAnnotator extends Annotator { // compare to the element being rendered on and scale as appropriate const dimensions = { x: imageDimensions.width / scale, - y: imageDimensions.height / scale + y: imageDimensions.height / scale, }; location = { @@ -70,7 +70,7 @@ class ImageAnnotator extends Annotator { y, imageEl, dimensions, - page + page, }; return location; diff --git a/src/image/ImagePointThread.js b/src/image/ImagePointThread.js index b6da8d06e..6b93a5967 100644 --- a/src/image/ImagePointThread.js +++ b/src/image/ImagePointThread.js @@ -9,7 +9,7 @@ import { POINT_ANNOTATION_ICON_HEIGHT, POINT_ANNOTATION_ICON_DOT_HEIGHT, SELECTOR_ANNOTATION_POPOVER, - CLASS_FLIPPED_POPOVER + CLASS_FLIPPED_POPOVER, } from '../constants'; class ImagePointThread extends AnnotationThread { diff --git a/src/image/__tests__/ImageAnnotator-test.js b/src/image/__tests__/ImageAnnotator-test.js index 2d3dd8248..7d7bae1a1 100644 --- a/src/image/__tests__/ImageAnnotator-test.js +++ b/src/image/__tests__/ImageAnnotator-test.js @@ -22,26 +22,26 @@ describe('image/ImageAnnotator', () => { const options = { annotator: { NAME: 'name', - TYPE: [TYPES.point] - } + TYPE: [TYPES.point], + }, }; annotator = new ImageAnnotator({ container: document, api: {}, file: { - file_version: { id: 1 } + file_version: { id: 1 }, }, isMobile: false, options, modeButtons: {}, location: { - locale: 'en-US' + locale: 'en-US', }, localizedStrings: { anonymousUserName: 'anonymous', - loadError: 'loaderror' - } + loadError: 'loaderror', + }, }); annotator.annotatedElement = annotator.getAnnotatedEl(document); @@ -49,13 +49,13 @@ describe('image/ImageAnnotator', () => { annotator.threads = {}; annotator.modeButtons = { - point: { selector: 'point_btn' } + point: { selector: 'point_btn' }, }; annotator.modeControllers = { point: { api: {}, - getButton: jest.fn() - } + getButton: jest.fn(), + }, }; annotator.permissions = annotator.getAnnotationPermissions(annotator.options.file); @@ -81,7 +81,7 @@ describe('image/ImageAnnotator', () => { const y = 200; const dimensions = { x: 100, - y: 200 + y: 200, }; beforeEach(() => { @@ -92,18 +92,18 @@ describe('image/ImageAnnotator', () => { { clientX: x, clientY: y, - target: imageEl - } - ] + target: imageEl, + }, + ], }; }); - it('should not return a location if image isn\'t inside viewer', () => { + it("should not return a location if image isn't inside viewer", () => { annotator.annotatedElement = document.createElement('div'); const location = annotator.getLocationFromEvent({ target: { - nodeName: 'not-annotated' - } + nodeName: 'not-annotated', + }, }); expect(location).toBeNull(); }); @@ -122,17 +122,17 @@ describe('image/ImageAnnotator', () => { annotator.hasTouch = true; const location = annotator.getLocationFromEvent({ target: { - nodeName: 'not-annotated' - } + nodeName: 'not-annotated', + }, }); expect(location).toBeNull(); event = { targetTouches: [ { - target: imageEl - } - ] + target: imageEl, + }, + ], }; expect(annotator.getLocationFromEvent(event)).toBeNull(); }); @@ -149,20 +149,20 @@ describe('image/ImageAnnotator', () => { width: 100, height: 200, left: 0, - top: 0 + top: 0, }); const location = annotator.getLocationFromEvent({ clientX: x, clientY: y, - target: imageEl + target: imageEl, }); expect(location).toStrictEqual({ x, y, imageEl, dimensions, - page: 1 + page: 1, }); }); }); diff --git a/src/image/__tests__/ImagePointThread-test.js b/src/image/__tests__/ImagePointThread-test.js index 41250f692..6c2596d2d 100644 --- a/src/image/__tests__/ImagePointThread-test.js +++ b/src/image/__tests__/ImagePointThread-test.js @@ -36,8 +36,8 @@ describe('image/ImagePointThread', () => { threadID: 2, type: 'point', permissions: { - can_annotate: true - } + can_annotate: true, + }, }); }); @@ -56,7 +56,7 @@ describe('image/ImagePointThread', () => { thread.show(); expect(imageUtil.getBrowserCoordinatesFromLocation).toBeCalledWith( thread.location, - thread.annotatedElement + thread.annotatedElement, ); expect(util.showElement).toBeCalledWith(thread.element); }); diff --git a/src/image/__tests__/imageUtil-test.js b/src/image/__tests__/imageUtil-test.js index af8e0efeb..ea57aefb1 100644 --- a/src/image/__tests__/imageUtil-test.js +++ b/src/image/__tests__/imageUtil-test.js @@ -30,7 +30,7 @@ describe('image/imageUtil', () => { beforeEach(() => { dimensions = { height: 200, - width: 100 + width: 100, }; }); @@ -63,7 +63,7 @@ describe('image/imageUtil', () => { beforeEach(() => { dimensions = { height: 200, - width: 100 + width: 100, }; }); @@ -96,9 +96,9 @@ describe('image/imageUtil', () => { y: 30, dimensions: { x: 100, - y: 200 + y: 200, }, - page: 1 + page: 1, }; const coordinates = getBrowserCoordinatesFromLocation(location, annotatedEl); diff --git a/src/util.js b/src/util.js index d18dda3e5..32062d6de 100644 --- a/src/util.js +++ b/src/util.js @@ -11,7 +11,7 @@ import { CLASS_BOX_PREVIEW_HEADER, SELECTOR_ANNOTATION_MODE, CLASS_ANNOTATION_POINT_MARKER, - CLASS_ANNOTATION_POPOVER + CLASS_ANNOTATION_POPOVER, } from './constants'; const HEADER_CLIENT_NAME = 'X-Box-Client-Name'; @@ -42,7 +42,7 @@ export function replaceHeader(containerEl, replacementHeader) { // First hide all possible headers const headers = containerEl.querySelectorAll(`.${CLASS_BOX_PREVIEW_HEADER}`); - [].forEach.call(headers, (header) => { + [].forEach.call(headers, header => { header.classList.add(CLASS_HIDDEN); }); @@ -364,7 +364,7 @@ export function getDimensionScale(dimensions, fileDimensions, zoomScale, heightP if (Math.abs(width - dimensions.x) > 1 || Math.abs(height !== dimensions.y) > 1) { dimensionScale = { x: width / dimensions.x, - y: height / dimensions.y + y: height / dimensions.y, }; } } @@ -434,7 +434,7 @@ export function hasValidBoundaryCoordinates(thread) { * @return {Function} Event listener to convert to document location */ export function eventToLocationHandler(locationFunction, callback) { - return (event) => { + return event => { const evt = event || window.event; // Do nothing when the target isn't the text layer in case the text layer receives event precedence over buttons // NOTE: @jpress Currently only applicable to documents. diff --git a/src/utils/i18n.js b/src/utils/i18n.js index 6ff338ad6..ddd35c070 100644 --- a/src/utils/i18n.js +++ b/src/utils/i18n.js @@ -11,6 +11,6 @@ import boxReactUILocaleData from 'box-react-ui-locale-data'; // eslint-disable-l declare var __LANGUAGE__: string; const language = __LANGUAGE__; -const messages = Object.assign({}, annotationsLocaleData, boxReactUILocaleData); +const messages = { ...annotationsLocaleData, ...boxReactUILocaleData }; export default { language, messages, localeData }; diff --git a/stylelint.config.js b/stylelint.config.js new file mode 100644 index 000000000..81e85403d --- /dev/null +++ b/stylelint.config.js @@ -0,0 +1,8 @@ +const stylelintrc = require.resolve('@box/frontend/stylelint/stylelint.config.js'); + +module.exports = { + extends: [stylelintrc], + rules: { + 'no-descending-specificity': null, // fixme + }, +}; diff --git a/test-utils/react-intl-mocks.js b/test-utils/react-intl-mocks.js index e2b595cbd..375948770 100644 --- a/test-utils/react-intl-mocks.js +++ b/test-utils/react-intl-mocks.js @@ -14,16 +14,16 @@ FormattedMessage.displayName = 'FormattedMessage'; export const IntlProvider = () =>
    ; IntlProvider.displayName = 'IntlProvider'; -export const defineMessages = (messages) => messages; +export const defineMessages = messages => messages; export const intlShape = PropTypes.any; export const addLocaleData = () => {}; -export const injectIntl = (Component) => { - const WrapperComponent = (props) => { +export const injectIntl = Component => { + const WrapperComponent = props => { const injectedProps = { ...props, intl }; - return (); + return ; }; WrapperComponent.displayName = Component.displayName || Component.name || 'Component'; return WrapperComponent; diff --git a/yarn.lock b/yarn.lock index 681418838..b59a50085 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,22 +16,29 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.0.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" - integrity sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw== +"@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.2" - "@babel/helpers" "^7.1.2" - "@babel/parser" "^7.1.2" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.1.2" - convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" - lodash "^4.17.10" + "@babel/highlight" "^7.0.0" + +"@babel/core@>=7.2.2": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" + integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.7" + "@babel/helpers" "^7.7.4" + "@babel/parser" "^7.7.7" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" @@ -47,16 +54,15 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.1.2", "@babel/generator@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" - integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ== +"@babel/generator@^7.7.4", "@babel/generator@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" + integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== dependencies: - "@babel/types" "^7.1.3" + "@babel/types" "^7.7.4" jsesc "^2.5.1" - lodash "^4.17.10" + lodash "^4.17.13" source-map "^0.5.0" - trim-right "^1.0.1" "@babel/helper-function-name@7.0.0-beta.44": version "7.0.0-beta.44" @@ -67,14 +73,14 @@ "@babel/template" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== +"@babel/helper-function-name@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" + integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-get-function-arity" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/types" "^7.7.4" "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" @@ -83,12 +89,12 @@ dependencies: "@babel/types" "7.0.0-beta.44" -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== +"@babel/helper-get-function-arity@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" + integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.7.4" "@babel/helper-split-export-declaration@7.0.0-beta.44": version "7.0.0-beta.44" @@ -97,21 +103,21 @@ dependencies: "@babel/types" "7.0.0-beta.44" -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" - integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== +"@babel/helper-split-export-declaration@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" + integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.7.4" -"@babel/helpers@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" - integrity sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA== +"@babel/helpers@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" + integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg== dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.1.2" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" @@ -131,10 +137,25 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.2", "@babel/parser@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" - integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== +"@babel/parser@^7.7.4", "@babel/parser@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" + integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== + +"@babel/runtime-corejs3@^7.7.4": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.7.7.tgz#78fcbd472daec13abc42678bfc319e58a62235a3" + integrity sha512-kr3W3Fw8mB/CTru2M5zIRQZZgC/9zOxNSoJ/tVCzjPt3H1/p5uuGbz6WwmaQy/TLQcW31rUhUUWKY28sXFRelA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.4.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.4": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" + integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== + dependencies: + regenerator-runtime "^0.13.2" "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" @@ -146,14 +167,14 @@ babylon "7.0.0-beta.44" lodash "^4.2.0" -"@babel/template@^7.1.0", "@babel/template@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" - integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== +"@babel/template@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" + integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.1.2" - "@babel/types" "^7.1.2" + "@babel/parser" "^7.7.4" + "@babel/types" "^7.7.4" "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" @@ -171,20 +192,20 @@ invariant "^2.2.0" lodash "^4.2.0" -"@babel/traverse@^7.1.0": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" - integrity sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.3" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.3" - "@babel/types" "^7.1.3" - debug "^3.1.0" +"@babel/traverse@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" + integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.4" + "@babel/helper-function-name" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/parser" "^7.7.4" + "@babel/types" "^7.7.4" + debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.10" + lodash "^4.17.13" "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" @@ -195,148 +216,159 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" - integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA== +"@babel/types@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" + integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== dependencies: esutils "^2.0.2" - lodash "^4.17.10" + lodash "^4.17.13" to-fast-properties "^2.0.0" -"@commitlint/cli@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-7.2.1.tgz#dbb9eeb1f5015a129bb0801fbc1115eb1dcd513b" - integrity sha512-PUHWGoQOx8m6ZSpZPSHb+YISFAvW7jiWvCJOQiViKHZC8CLKu4bjyc/AwP8gBte0RsTGAu1ekiitp5Q0NcLGcA== +"@box/frontend@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@box/frontend/-/frontend-6.0.0.tgz#5ffca35f1bf49e073cf4dc9a52b76bd5afae948a" + integrity sha512-OKt4fCoW6OMlCw/oN9Qon3wAkqflaya+FvdI9ufX1rRBbNbeLT0pJqUYueJRMg8A/2qTFHZ/8RcTO/+XEKGpVA== dependencies: - "@commitlint/format" "^7.2.1" - "@commitlint/lint" "^7.2.1" - "@commitlint/load" "^7.2.1" - "@commitlint/read" "^7.1.2" + properties-parser "^0.3.1" + rimraf "^3.0.0" + +"@box/languages@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@box/languages/-/languages-1.0.0.tgz#e59b259b34b1b4c399778682732c3d0038864284" + integrity sha512-VdrUJK8tICkE4KrgN9FcRmqI+I72vPiDeRnlzX0Ua06etEzNPUa5E3tBnuZleWfZiBshhSScXfEbZdNCWkDHtQ== + +"@commitlint/cli@^8.2.0": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-8.3.4.tgz#aabcd997124bd0656ebd2a805ec9e92cfb663d78" + integrity sha512-lYL61eO5CG5Du3YTOt8eXg959awIpl/u2KL+msctbooUGTDtiknvBb1r7dbdpUYwVMWcgdKQsk9heB+FRdygfA== + dependencies: + "@commitlint/format" "^8.3.4" + "@commitlint/lint" "^8.3.4" + "@commitlint/load" "^8.3.4" + "@commitlint/read" "^8.3.4" babel-polyfill "6.26.0" - chalk "2.3.1" - get-stdin "5.0.1" - lodash.merge "4.6.1" - lodash.pick "4.4.0" + chalk "2.4.2" + get-stdin "7.0.0" + lodash "4.17.15" meow "5.0.0" - resolve-from "^4.0.0" - resolve-global "^0.1.0" + resolve-from "5.0.0" + resolve-global "1.0.0" -"@commitlint/ensure@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-7.2.0.tgz#03cfab7135f57f62b73698f441a516886a84a1f6" - integrity sha512-j2AJE4eDeLP6O/Z1CdPwEXAzcrRRoeeHLuvW8bldQ4J2nHiX9hzmSe87H87Ob8Avm+zIegsqVPGaBAtRmbODYw== +"@commitlint/config-conventional@^8.2.0": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz#fed13b3711690663b176c1f6b39c205a565618d2" + integrity sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g== 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" + conventional-changelog-conventionalcommits "4.2.1" -"@commitlint/execute-rule@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-7.1.2.tgz#b504e800c5f7c0fbfa24a261b04c549aa2726254" - integrity sha512-EP/SqX2U2L4AQHglZ2vGM1pvHJOh3sbYtHn1QhtllqEpsdmhuNpVPSGHP/r9OD2h4i90vtnWgZQoskt2MkbknA== +"@commitlint/ensure@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-8.3.4.tgz#6931677e4ca0fde71686ae3b7a367261647a341d" + integrity sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw== dependencies: - babel-runtime "6.26.0" + lodash "4.17.15" -"@commitlint/format@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-7.2.1.tgz#7d8b25002792d6481f0f8f9614736e43106749c1" - integrity sha512-1YcL+ZWB8V52oDFQBhSBJjiJOZDt4Vl06O5TkG70BMpre3EQru5KYIN16eEPqfihNw0bj8gSIWcf87Gvh3OrOw== +"@commitlint/execute-rule@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz#1b63f0713b197889d90b76f9eea1abc010d256b1" + integrity sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ== + +"@commitlint/format@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-8.3.4.tgz#7cd1f0ba5a3289c8d14d7dac29ee1fc1597fe1d9" + integrity sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw== dependencies: - babel-runtime "^6.23.0" chalk "^2.0.1" -"@commitlint/is-ignored@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-7.2.1.tgz#624b3703ca88a4b6573176439b1126b7eb3708d4" - integrity sha512-3DsEEKRnj8Bv9qImsxWcGf9BwerDnk5Vs+oK6ELzIwkndHaAZLHyATjmaz/rsc+U+DWiVjgKrrw3xvd/UsoazA== +"@commitlint/is-ignored@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-8.3.4.tgz#a78dee0dda732219fa513669480df77e92643402" + integrity sha512-9RTWJvOW2ZvOh09xRnw7wQhcSp24ekeChDPAoZV13d5cTay0qcGFFthvwHs6URstKuu6Iasoxswtq0HmTWvoAg== dependencies: - semver "5.6.0" + "@types/semver" "^6.0.1" + semver "6.3.0" -"@commitlint/lint@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-7.2.1.tgz#4511a9acada6870042ca3244417b401ad1043d46" - integrity sha512-rM7nUyNUJyuKw1MTwJG/wk4twB5YCAG2wzJMn5NqVpGD/qmLOzlZoBl0+CYmuOsbIRAA2rlEV6KZHBk9tTfAdQ== +"@commitlint/lint@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-8.3.4.tgz#fed31a63656a2d7def88e8963691ce788899216e" + integrity sha512-ws1JLs7rNAcwlfYLKh0xhs3RNMcT4dYjyG0US/JenmSCrttzfAct+7IvdkAjkj6/3jsOn6fYaV4MhE6hfdPC9A== dependencies: - "@commitlint/is-ignored" "^7.2.1" - "@commitlint/parse" "^7.1.2" - "@commitlint/rules" "^7.2.0" + "@commitlint/is-ignored" "^8.3.4" + "@commitlint/parse" "^8.3.4" + "@commitlint/rules" "^8.3.4" babel-runtime "^6.23.0" - lodash.topairs "4.3.0" + lodash "4.17.15" -"@commitlint/load@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-7.2.1.tgz#f1a49cb2ecf53e235e4f3523f75a553f5b481f5c" - integrity sha512-FnfmfhPGJqGwILVRznduBejOicNey6p/byfcyxtcBkN2+X96gDuNtqcnGcngCrzPIAgaIrQQcTQDA1/KMtW21A== +"@commitlint/load@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-8.3.4.tgz#6a0832362451b959f6aa47da8e44c2e05572b114" + integrity sha512-B4MylKvT02UE3VHC5098OHxsrgkADUy5AD4Cdkiy7oX/edWypEmvK7Wuns3B9dwluWP/iFM6daoWtpkCVZoRwQ== dependencies: - "@commitlint/execute-rule" "^7.1.2" - "@commitlint/resolve-extends" "^7.1.2" + "@commitlint/execute-rule" "^8.3.4" + "@commitlint/resolve-extends" "^8.3.4" 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" + chalk "2.4.2" + cosmiconfig "^5.2.0" + lodash "4.17.15" + resolve-from "^5.0.0" -"@commitlint/message@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-7.1.2.tgz#b8e7ed3914896f8490b5897c4f6b8923105b55fd" - integrity sha512-6FQeK5LAs1Bde6W/jULg+I/XZhj3gbqCWlS2Q11A2JbaTRpRJZzm7WdD9nK3I0+De41EOqW2t4mBnrpio3o1Zg== +"@commitlint/message@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-8.3.4.tgz#b4e50d14aa6e15a5ad0767b952a7953f3681d768" + integrity sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA== -"@commitlint/parse@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-7.1.2.tgz#d63b246cebd5a2cf326b0356421f9ec5f227a2d4" - integrity sha512-wrdLwJZL3cs89MfgPtnbbKByijUo3Wrug55aTke5k/F0XNxGaDaNJyH4QXgidgXk57r2t4NJVAKwjnY4wjfNwg== +"@commitlint/parse@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-8.3.4.tgz#d741f8b9104b35d0f4c10938165b20cbf167f81e" + integrity sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw== dependencies: conventional-changelog-angular "^1.3.3" - conventional-commits-parser "^2.1.0" + conventional-commits-parser "^3.0.0" + lodash "^4.17.11" -"@commitlint/read@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-7.1.2.tgz#6a1fcb192e54e311eee280e5070627981d8d7bf3" - integrity sha512-sarYQgfTay2Eu7onHz53EYyRw7pI5QmLE7tP5Ri9op6eu4LadjSoA/4dfc+VE7avsq21J2ewSbz+9f0uvhDxgg== +"@commitlint/read@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-8.3.4.tgz#81a34283d8cd7b2acdf57829a91761e9c7791455" + integrity sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw== dependencies: - "@commitlint/top-level" "^7.1.2" + "@commitlint/top-level" "^8.3.4" "@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.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-7.1.2.tgz#886f589f1c2ce87c42f2786696b68fac7e356978" - integrity sha512-zwbifMB9DeHP4sYQdrkx+XJh5Q1lyP/OdlErUCC34NV4Lkxw/XxXF4St3e+y1X28/SgrEc2XSOS6n/vQQfUlLA== - 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" + git-raw-commits "^2.0.0" -"@commitlint/rules@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-7.2.0.tgz#44ab5dadead1668f6a2790fbdfe70e456346866c" - integrity sha512-c15Q9H5iYE9fnncLnFnMuvPLYA/i0pve5moV0uxJJGr4GgJoBKyldd4CCDhoE80C1k8ABuqr2o2qsopzVEp3Ww== - dependencies: - "@commitlint/ensure" "^7.2.0" - "@commitlint/message" "^7.1.2" - "@commitlint/to-lines" "^7.1.2" +"@commitlint/resolve-extends@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-8.3.4.tgz#815b646efbf9bc77c44925f619336da0027d7a68" + integrity sha512-M34RLaAW1eGWgtkVtotHfPaJa+cZIARe8twKItd7RhWs7n/1W2py9GTFIiIEq95LBN1uah5vm1WQHsfLqPZYHA== + dependencies: + "@types/node" "^12.0.2" + import-fresh "^3.0.0" + lodash "4.17.15" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-8.3.4.tgz#41da7e16c6b89af268fe81c87a158c1fd2ac82b1" + integrity sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg== + dependencies: + "@commitlint/ensure" "^8.3.4" + "@commitlint/message" "^8.3.4" + "@commitlint/to-lines" "^8.3.4" babel-runtime "^6.23.0" -"@commitlint/to-lines@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-7.1.2.tgz#2277347e50eac2a8d38ab6ab2c70f01b84c5f115" - integrity sha512-Nz3qZwrIEYiN9v/ThJqXAwu4X5+hvT9H8yRPHfjc538R8WhwEfhvym7/4YznDHSvWrQgwqtNPdrb6b2OSBsHmg== +"@commitlint/to-lines@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-8.3.4.tgz#ce24963b6d86dbe51d88d5e3028ab28f38562e2e" + integrity sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA== -"@commitlint/top-level@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-7.1.2.tgz#58f78043546bce0c1bfba36291bc4a812b6426b3" - integrity sha512-YKugOAKy3hgM/ITezPp7Ns51U3xoJfuOsVnMGW4oDcHLhuQ/Qd58ROv/Hgedtk8HugKX3DdZ8XoEnRG70RDGqQ== +"@commitlint/top-level@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-8.3.4.tgz#803fc6e8f5be5efa5f3551761acfca961f1d8685" + integrity sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg== dependencies: - find-up "^2.1.0" + find-up "^4.0.0" "@cypress/listr-verbose-renderer@0.4.1": version "0.4.1" @@ -356,6 +388,19 @@ debug "^3.1.0" lodash.once "^4.1.1" +"@formatjs/intl-unified-numberformat@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.0.4.tgz#da689bfdd72e4857ee5a02cccdfd4ddf2c401ab2" + integrity sha512-B49aviNgeF6ZelLpp7yDc03IN+JYjpHBS9XYq0iFkG064kwi2CfdGI8hQBdaOXyRY6iV3kBF3UEJ83zkTyqk5Q== + dependencies: + "@formatjs/intl-utils" "^2.0.4" + unicode-12.1.0 "0.8" + +"@formatjs/intl-utils@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.0.4.tgz#936961b7eade01f6d331d31cc9fb512d1fb3981a" + integrity sha512-zd92HkqxeEprsyM3JLGr+jhhMkmY0NCYQ+Jyw/DC6qZHiFejdO19doYcH5/iMUUPEYLI2h/k7TETqAEez8Btog== + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -373,10 +418,31 @@ 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.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz#54c5a964462be3d4d78af631363c18d6fa91ac26" - integrity sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" "@octokit/rest@^15.2.6": version "15.15.0" @@ -417,11 +483,134 @@ dependencies: "@types/babel-types" "*" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/emoji-regex@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@types/emoji-regex/-/emoji-regex-8.0.0.tgz#df215c9ff818e071087fb8e7e6e74c4cb42a1303" + integrity sha512-iacbaYN9IWWrGWTwlYLVOeUtN/e4cjN9Uh6v7Yo1Qa/vJzeSQeh10L/erBBSl53BTmbnQ07vsWp8mmNHGI4WbQ== + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/json-schema@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + "@types/node@*": version "10.12.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.0.tgz#ea6dcbddbc5b584c83f06c60e82736d8fbb0c235" integrity sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ== +"@types/node@^12.0.2": + version "12.12.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.24.tgz#d4606afd8cf6c609036b854360367d1b2c78931f" + integrity sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/semver@^6.0.1": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.0.tgz#d688d574400d96c5b0114968705366f431831e1a" + integrity sha512-1OzrNb4RuAzIT7wHSsgZRlMBlNsJl+do6UblR7JMW4oB7bbR+uBEYtUh7gEc/jM84GGilh68lSOokyM/zNUlBA== + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@types/vfile-message@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-2.0.0.tgz#690e46af0fdfc1f9faae00cd049cc888957927d5" + integrity sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw== + dependencies: + vfile-message "*" + +"@types/vfile@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9" + integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw== + dependencies: + "@types/node" "*" + "@types/unist" "*" + "@types/vfile-message" "*" + +"@typescript-eslint/eslint-plugin@^2.12.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.15.0.tgz#5442c30b687ffd576ff74cfea46a6d7bfb0ee893" + integrity sha512-XRJFznI5v4K1WvIrWmjFjBAdQWaUTz4xJEdqR7+wAFsv6Q9dP3mOlE6BMNT3pdlp9eF1+bC5m5LZTmLMqffCVw== + dependencies: + "@typescript-eslint/experimental-utils" "2.15.0" + eslint-utils "^1.4.3" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.15.0", "@typescript-eslint/experimental-utils@^2.5.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.15.0.tgz#41e35313bfaef91650ddb5380846d1c78a780070" + integrity sha512-Qkxu5zndY5hqlcQkmA88gfLvqQulMpX/TN91XC7OuXsRf4XG5xLGie0sbpX97o/oeccjeZYRMipIsjKk/tjDHA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.15.0" + eslint-scope "^5.0.0" + +"@typescript-eslint/parser@^2.12.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.15.0.tgz#379a71a51b0429bc3bc55c5f8aab831bf607e411" + integrity sha512-6iSgQsqAYTaHw59t0tdjzZJluRAjswdGltzKEdLtcJOxR2UVTPHYvZRqkAVGCkaMVb6Fpa60NnuozNCvsSpA9g== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.15.0" + "@typescript-eslint/typescript-estree" "2.15.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.15.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.15.0.tgz#79ae52eed8701b164d91e968a65d85a9105e76d3" + integrity sha512-L6Pog+w3VZzXkAdyqA0VlwybF8WcwZX+mufso86CMxSdWmcizJ38lgBdpqTbc9bo92iyi0rOvmATKiwl+amjxg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash.unescape "4.0.1" + semver "^6.3.0" + tsutils "^3.17.1" + "@vxna/mini-html-webpack-template@^0.1.7": version "0.1.7" resolved "https://registry.yarnpkg.com/@vxna/mini-html-webpack-template/-/mini-html-webpack-template-0.1.7.tgz#2a8270e513ee14f395cc17c2ce22ced383c45d22" @@ -630,13 +819,6 @@ acorn-globals@^4.1.0: acorn "^6.0.1" acorn-walk "^6.0.1" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - acorn-jsx@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" @@ -644,12 +826,17 @@ acorn-jsx@^4.1.1: dependencies: acorn "^5.0.3" +acorn-jsx@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== + acorn-walk@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc" integrity sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg== -acorn@^3.0.4, acorn@^3.1.0: +acorn@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= @@ -659,7 +846,7 @@ acorn@^4.0.4, acorn@~4.0.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= -acorn@^5.0.0, acorn@^5.0.3, acorn@^5.3.0, acorn@^5.4.1, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.0, acorn@^5.6.2, acorn@^5.7.1: +acorn@^5.0.0, acorn@^5.0.3, acorn@^5.3.0, acorn@^5.4.1, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.1: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== @@ -669,6 +856,11 @@ acorn@^6.0.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.2.tgz#6a459041c320ab17592c6317abbfdf4bbaa98ca4" integrity sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg== +acorn@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" @@ -686,22 +878,25 @@ agent-base@4, agent-base@^4.1.0: dependencies: es6-promisify "^5.0.0" +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv-errors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59" integrity sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk= -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= - ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= -ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= @@ -711,7 +906,7 @@ ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3: +ajv@^6.0.1, ajv@^6.1.0: version "6.5.4" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" integrity sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg== @@ -721,6 +916,16 @@ ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.0, ajv@^6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + 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 "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -767,6 +972,13 @@ ansi-escapes@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw== +ansi-escapes@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" + integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== + dependencies: + type-fest "^0.8.1" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -782,18 +994,36 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.1.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -913,11 +1143,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= -array-find@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" - integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -951,13 +1176,18 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= -array-union@^1.0.1: +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -982,7 +1212,7 @@ array.prototype.flat@^1.2.1: es-abstract "^1.10.0" function-bind "^1.1.1" -arrify@1.0.1, arrify@^1.0.0, arrify@^1.0.1: +arrify@1.0.1, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= @@ -1087,7 +1317,7 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.0.0, async@^2.1.4, async@^2.4.1, async@^2.5.0: +async@^2.0.0, async@^2.1.4, async@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== @@ -1116,7 +1346,20 @@ autoprefixer@^6.3.1: postcss "^5.2.16" postcss-value-parser "^3.2.3" -autoprefixer@^9.0.0, autoprefixer@^9.1.3: +autoprefixer@^9.0.0, autoprefixer@^9.7.1: + version "9.7.3" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" + integrity sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q== + dependencies: + browserslist "^4.8.0" + caniuse-lite "^1.0.30001012" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.23" + postcss-value-parser "^4.0.2" + +autoprefixer@^9.1.3: version "9.2.1" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.2.1.tgz#1f2f1179ceed4711b7ab064dbd5c3f9e83d9dc62" integrity sha512-qlK4GnZk8OXLK+8kBn9ttfzu2PkhRe8kVYoWcc9HsrZEMWiBkQuRYdXyJg9cIIKxfMzhh6UbvlJ1CsstMIzxwA== @@ -1146,12 +1389,13 @@ axios@^0.18.0: follow-redirects "^1.3.0" is-buffer "^1.1.5" -axobject-query@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== +axobject-query@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.1.tgz#2a3b1271ec722d48a4cd4b3fcc20c853326a49a7" + integrity sha512-lF98xa/yvy6j3fBHAgQXIYl+J4eZadOSqsPojemUqClzNbBV38wWGpUbQbVEyf4eUF5yF7eHmGgGA2JiHyjeqw== dependencies: - ast-types-flow "0.0.7" + "@babel/runtime" "^7.7.4" + "@babel/runtime-corejs3" "^7.7.4" babel-cli@^6.26.0: version "6.26.0" @@ -1175,7 +1419,7 @@ babel-cli@^6.26.0: optionalDependencies: chokidar "^1.6.1" -babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@6.26.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -1990,7 +2234,7 @@ babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@6.26.0, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: +babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -2214,16 +2458,6 @@ boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -boolify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/boolify/-/boolify-1.0.1.tgz#b5c09e17cacd113d11b7bb3ed384cc012994d86b" - integrity sha1-tcCeF8rNET0Rt7s+04TMASmU2Gs= - -box-locales@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/box-locales/-/box-locales-0.0.1.tgz#1724959f293ae85f235b681b775d0f1a52a76b54" - integrity sha512-a9ZHTtNHOqc2mIPmymc/LZ8u2dJFbQTIShLi34oOIzeLm/esb67IsHzLWshHMbJpZjpnimNBG8vdh2cs8Sx67Q== - box-node-sdk@^1.22.0: version "1.22.0" resolved "https://registry.yarnpkg.com/box-node-sdk/-/box-node-sdk-1.22.0.tgz#6323901b5ff2dbdc9ce5cfc9781f8fbc9f89f4bc" @@ -2276,6 +2510,13 @@ braces@^2.3.0, braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -2387,6 +2628,15 @@ browserslist@^4.2.1: electron-to-chromium "^1.3.79" node-releases "^1.0.0-alpha.14" +browserslist@^4.8.0: + version "4.8.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" + integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== + dependencies: + caniuse-lite "^1.0.30001017" + electron-to-chromium "^1.3.322" + node-releases "^1.1.44" + bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -2570,13 +2820,6 @@ caller-callsite@^2.0.0: 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" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - 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" @@ -2584,16 +2827,16 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsites@^0.2.0: - version "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= +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -2602,7 +2845,7 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase-keys@^4.0.0, camelcase-keys@^4.1.0: +camelcase-keys@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= @@ -2651,6 +2894,11 @@ caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000890, caniuse-lite@^1.0.300008 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000893.tgz#284b20932bd41b93e21626975f2050cb01561986" integrity sha512-kOddHcTEef+NgN/fs0zmX2brHTNATVOWMEIhlZHCuwQRtXobjSw9pAECc44Op4bTBcavRjkLaPrGomknH7+Jvg== +caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017: + version "1.0.30001020" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" + integrity sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA== + capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" @@ -2711,25 +2959,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.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chalk@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" - integrity sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g== - dependencies: - ansi-styles "^3.2.0" - escape-string-regexp "^1.0.5" - supports-color "^5.2.0" - -chalk@2.4.2: +chalk@2.4.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2747,6 +2977,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + character-entities-html4@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" @@ -2887,11 +3125,6 @@ circular-dependency-plugin@^5.0.2: resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz#da168c0b37e7b43563fb9f912c1c007c213389ef" integrity sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA== -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -2921,6 +3154,11 @@ clean-css@^4.1.11: dependencies: source-map "~0.6.0" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + clean-webpack-plugin@^0.1.19: version "0.1.19" resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz#ceda8bb96b00fe168e9b080272960d20fdcadd6d" @@ -2935,13 +3173,20 @@ cli-cursor@^1.0.1, cli-cursor@^1.0.2: dependencies: restore-cursor "^1.0.1" -cli-cursor@^2.1.0: +cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" @@ -3020,6 +3265,13 @@ clone-regexp@^1.0.0: is-regexp "^1.0.0" is-supported-regexp-flag "^1.0.0" +clone-regexp@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" + integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== + dependencies: + is-regexp "^2.0.0" + clone-response@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -3105,12 +3357,19 @@ color-convert@^1.3.0, color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -3177,11 +3436,16 @@ commander@2.15.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== -commander@^2.11.0, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.9.0: +commander@^2.11.0, commander@^2.13.0, commander@^2.18.0, commander@^2.9.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" @@ -3197,15 +3461,6 @@ commander@~2.17.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commitlint@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/commitlint/-/commitlint-7.2.1.tgz#c1d50a26bf2324b60a0f67507b20dc0a74976a8c" - integrity sha512-P0TB+bjQleuNK6S22yelvsUJygxfIBtYQjfpuAOOYbUyw46k3hfXImR39WLofl9SPDGr3burcDo8eBgHgvzXRw== - dependencies: - "@commitlint/cli" "^7.2.1" - read-pkg "3.0.0" - resolve-pkg "1.0.0" - common-dir@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/common-dir/-/common-dir-2.0.2.tgz#cfea16f48564a0ecbb088065fad029047f469dc1" @@ -3218,7 +3473,7 @@ common-sequence@^1.0.2: resolved "https://registry.yarnpkg.com/common-sequence/-/common-sequence-1.0.2.tgz#30e07f3f8f6f7f9b3dee854f20b2d39eee086de8" integrity sha1-MOB/P49vf5s97oVPILLTnu4Ibeg= -common-tags@1.8.0, common-tags@^1.4.0, common-tags@^1.7.2: +common-tags@1.8.0, common-tags@^1.7.2: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== @@ -3281,7 +3536,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@1.6.2, concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -3291,6 +3546,11 @@ concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +confusing-browser-globals@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" + integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== + connect-history-api-fallback@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" @@ -3346,6 +3606,14 @@ conventional-changelog-angular@^1.3.3, conventional-changelog-angular@^1.6.6: compare-func "^1.3.1" q "^1.5.1" +conventional-changelog-angular@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" + integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + conventional-changelog-atom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.0.tgz#cd6453469cfb8fc345af3391b92990251c95558b" @@ -3353,16 +3621,23 @@ conventional-changelog-atom@^2.0.0: dependencies: q "^1.5.1" -conventional-changelog-cli@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-2.0.5.tgz#37c2477ea43522a5f63e52ad977d8c9e1f863211" - integrity sha512-StqCVo10g194UhyLIhg+M/tTVu6YjGnON/IiQ9Ty/h+dgi9obYAkknwpmmgGJMQ3P3vNRljuZBupz0N2tpdxXg== +conventional-changelog-atom@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.3.tgz#3bd14280aa09fe3ec49a0e8fe97b5002db02aad4" + integrity sha512-szZe2ut97qNO6vCCMkm1I/tWu6ol4Rr8a9Lx0y/VlpDnpY0PNp+oGpFgU55lplhx+I3Lro9Iv4/gRj0knfgjzg== + dependencies: + q "^1.5.1" + +conventional-changelog-cli@^2.0.28: + version "2.0.31" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-2.0.31.tgz#3345581170fbb540416946e460fef519a64aef43" + integrity sha512-nMINylKAamBLM3OmD7/44d9TPZ3V58IDTXoGC/QtXxve+1Sj37BQTzIEW3TNaviZ2ZV/b5Dqg0eSk4DNP5fBdA== dependencies: add-stream "^1.0.0" - conventional-changelog "^2.0.3" - lodash "^4.2.1" - meow "^4.0.0" - tempfile "^1.1.1" + conventional-changelog "^3.1.18" + lodash "^4.17.15" + meow "^5.0.0" + tempfile "^3.0.0" conventional-changelog-codemirror@^2.0.0: version "2.0.0" @@ -3371,6 +3646,31 @@ conventional-changelog-codemirror@^2.0.0: dependencies: q "^1.5.1" +conventional-changelog-codemirror@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.3.tgz#ebc088154684f8f5171446b8d546ba6b460d46f2" + integrity sha512-t2afackdgFV2yBdHhWPqrKbpaQeVnz2hSJKdWqjasPo5EpIB6TBL0er3cOP1mnGQmuzk9JSvimNSuqjWGDtU5Q== + dependencies: + q "^1.5.1" + +conventional-changelog-conventionalcommits@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz#d6cb2e2c5d7bfca044a08b9dba84b4082e1a1bd9" + integrity sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q== + dependencies: + compare-func "^1.3.1" + lodash "^4.2.1" + q "^1.5.1" + +conventional-changelog-conventionalcommits@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.3.tgz#22855b32d57d0328951c1c2dc01b172a5f24ea37" + integrity sha512-atGa+R4vvEhb8N/8v3IoW59gCBJeeFiX6uIbPu876ENAmkMwsenyn0R21kdDHJFLQdy6zW4J6b4xN8KI3b9oww== + dependencies: + compare-func "^1.3.1" + lodash "^4.17.15" + q "^1.5.1" + conventional-changelog-core@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.1.0.tgz#96a81bb3301b4b2a3dc2851cc54c5fb674ac1942" @@ -3390,6 +3690,26 @@ conventional-changelog-core@^3.1.0: read-pkg-up "^1.0.1" through2 "^2.0.0" +conventional-changelog-core@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.1.4.tgz#39be27fca6ef20a0f998d7a3a1e97cfa8a055cb6" + integrity sha512-LO58ZbEpp1Ul+y/vOI8rJRsWkovsYkCFbOCVgi6UnVfU8WC0F8K8VQQwaBZWWUpb6JvEiN4GBR5baRP2txZ+Vg== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^4.0.11" + conventional-commits-parser "^3.0.8" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^3.0.1" + lodash "^4.17.15" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + conventional-changelog-ember@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.1.tgz#5a5595b9ed50a6daca4bd3508a47ffe4a1a7152f" @@ -3397,6 +3717,13 @@ conventional-changelog-ember@^2.0.1: dependencies: q "^1.5.1" +conventional-changelog-ember@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.4.tgz#c29b78e4af7825cbecb6c3fd6086ca5c09471ac1" + integrity sha512-q1u73sO9uCnxN4TSw8xu6MRU8Y1h9kpwtcdJuNRwu/LSKI1IE/iuNSH5eQ6aLlQ3HTyrIpTfUuVybW4W0F17rA== + dependencies: + q "^1.5.1" + conventional-changelog-eslint@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.0.tgz#cc5376cb29a622c1ade197e155bf054640c05cd3" @@ -3404,6 +3731,13 @@ conventional-changelog-eslint@^3.0.0: dependencies: q "^1.5.1" +conventional-changelog-eslint@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.4.tgz#8f4736a23e0cd97e890e76fccc287db2f205f2ff" + integrity sha512-CPwTUENzhLGl3auunrJxiIEWncAGaby7gOFCdj2gslIuOFJ0KPJVOUhRz4Da/I53sdo/7UncUJkiLg94jEsjxg== + dependencies: + q "^1.5.1" + conventional-changelog-express@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.0.tgz#d3d020118fbfce21a75e025ec097101e355a2361" @@ -3411,6 +3745,13 @@ conventional-changelog-express@^2.0.0: dependencies: q "^1.5.1" +conventional-changelog-express@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz#fea2231d99a5381b4e6badb0c1c40a41fcacb755" + integrity sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw== + dependencies: + q "^1.5.1" + conventional-changelog-jquery@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" @@ -3418,6 +3759,13 @@ conventional-changelog-jquery@^0.1.0: dependencies: q "^1.4.1" +conventional-changelog-jquery@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.6.tgz#460236ad8fb1d29ff932a14fe4e3a45379b63c5e" + integrity sha512-gHAABCXUNA/HjnZEm+vxAfFPJkgtrZvCDIlCKfdPVXtCIo/Q0lN5VKpx8aR5p8KdVRQFF3OuTlvv5kv6iPuRqA== + dependencies: + q "^1.5.1" + conventional-changelog-jscs@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" @@ -3433,11 +3781,24 @@ conventional-changelog-jshint@^2.0.0: compare-func "^1.3.1" q "^1.5.1" +conventional-changelog-jshint@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.3.tgz#ef6e2caf2ee6ffdfda78fcdf7ce87cf6c512d728" + integrity sha512-Pc2PnMPcez634ckzr4EOWviwRSpZcURaK7bjyD9oK6N5fsC/a+3G7LW5m/JpcHPhA9ZxsfIbm7uqZ3ZDGsQ/sw== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + conventional-changelog-preset-loader@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.1.tgz#d134734e0cc1b91b88b30586c5991f31442029f1" integrity sha512-HiSfhXNzAzG9klIqJaA97MMiNBR4js+53g4Px0k7tgKeCNVXmrDrm+CY+nIqcmG5NVngEPf8rAr7iji1TWW7zg== +conventional-changelog-preset-loader@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz#580fa8ab02cef22c24294d25e52d7ccd247a9a6a" + integrity sha512-/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ== + conventional-changelog-writer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.0.tgz#3ed983c8ef6a3aa51fe44e82c9c75e86f1b5aa42" @@ -3454,7 +3815,23 @@ conventional-changelog-writer@^4.0.0: split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^2.0.0, conventional-changelog@^2.0.3: +conventional-changelog-writer@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz#9f56d2122d20c96eb48baae0bf1deffaed1edba4" + integrity sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw== + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^2.0.2" + dateformat "^3.0.0" + handlebars "^4.4.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^5.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^3.0.0" + +conventional-changelog@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-2.0.3.tgz#779cff582c0091d2b24574003eaa82ef5ddf653d" integrity sha512-4bcII9cJHSKb2qi9e8qGF6aJHLf/AB0dokhyR+X6QILTMl77s4l163vK+reXhajvfOYbbHQvsrWybr5+PKZwNA== @@ -3471,6 +3848,23 @@ conventional-changelog@^2.0.0, conventional-changelog@^2.0.3: conventional-changelog-jshint "^2.0.0" conventional-changelog-preset-loader "^2.0.1" +conventional-changelog@^3.1.18: + version "3.1.18" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.18.tgz#7da0a5ab34a604b920b8bf71c6cf5d952f0e805e" + integrity sha512-aN6a3rjgV8qwAJj3sC/Lme2kvswWO7fFSGQc32gREcwIOsaiqBaO6f2p0NomFaPDnTqZ+mMZFLL3hlzvEnZ0mQ== + dependencies: + conventional-changelog-angular "^5.0.6" + conventional-changelog-atom "^2.0.3" + conventional-changelog-codemirror "^2.0.3" + conventional-changelog-conventionalcommits "^4.2.3" + conventional-changelog-core "^4.1.4" + conventional-changelog-ember "^2.0.4" + conventional-changelog-eslint "^3.0.4" + conventional-changelog-express "^2.0.1" + conventional-changelog-jquery "^3.0.6" + conventional-changelog-jshint "^2.0.3" + conventional-changelog-preset-loader "^2.3.0" + conventional-commits-filter@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.0.tgz#a0ce1d1ff7a1dd7fab36bee8e8256d348d135651" @@ -3479,18 +3873,13 @@ conventional-commits-filter@^2.0.0: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.0: - version "2.1.7" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" - integrity sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ== +conventional-commits-filter@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" + integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.0" - lodash "^4.2.1" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - trim-off-newlines "^1.0.0" + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" conventional-commits-parser@^3.0.0: version "3.0.0" @@ -3505,6 +3894,19 @@ conventional-commits-parser@^3.0.0: through2 "^2.0.0" trim-off-newlines "^1.0.0" +conventional-commits-parser@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" + integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^5.0.0" + split2 "^2.0.0" + through2 "^3.0.0" + trim-off-newlines "^1.0.0" + conventional-github-releaser@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/conventional-github-releaser/-/conventional-github-releaser-3.1.2.tgz#c98ac86efb3caa0db0a2f7f039cc65d42ef535af" @@ -3523,13 +3925,20 @@ conventional-github-releaser@^3.1.2: semver-regex "^2.0.0" through2 "^2.0.0" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -3571,6 +3980,11 @@ copy-webpack-plugin@^4.5.2: p-limit "^1.0.0" serialize-javascript "^1.4.0" +core-js-pure@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.2.tgz#81f08059134d1c7318838024e1b8e866bcb1ddb3" + integrity sha512-PRasaCPjjCB65au2dMBPtxuIR6LM8MVNdbIbN57KxcDV1FAYQWlF0pqje/HC2sM6nm/s9KqSTkMTU75pozaghA== + core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -3591,24 +4005,26 @@ cosmiconfig@^4.0.0: parse-json "^4.0.0" require-from-string "^2.0.1" -cosmiconfig@^5.0.0, cosmiconfig@^5.0.2: - version "5.0.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" - integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ== +cosmiconfig@^5.0.0, cosmiconfig@^5.2.0, cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: + import-fresh "^2.0.0" is-directory "^0.3.1" - js-yaml "^3.9.0" + js-yaml "^3.13.1" parse-json "^4.0.0" -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== +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.0" - parse-json "^4.0.0" + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" crc32-stream@^2.0.0: version "2.0.0" @@ -3656,7 +4072,7 @@ 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" -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 "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= @@ -3684,6 +4100,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypt@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" @@ -3813,11 +4238,6 @@ cssesc@^0.1.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= -cssesc@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-1.0.1.tgz#ef7bd8d0229ed6a3a7051ff7771265fe7330e0a8" - integrity sha512-S2hzrpWvE6G/rW7i7IxJfWBYn27QWfOIncUW++8Rbo1VB5zsJDSVPcnI+Q8z7rhxT6/yZeLOCja4cZnghJrNGA== - cssnano-cli@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/cssnano-cli/-/cssnano-cli-1.0.5.tgz#98c619b327d90acacb42302bc0c84f592e2801f5" @@ -4005,7 +4425,14 @@ debug@^3.1.0, debug@^3.2.5: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.0.1: +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== @@ -4098,7 +4525,7 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-properties@^1.1.2: +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -4132,19 +4559,6 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - del@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" @@ -4157,6 +4571,20 @@ del@^3.0.0: pify "^3.0.0" rimraf "^2.2.8" +del@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" + integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== + dependencies: + globby "^10.0.1" + graceful-fs "^4.2.2" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.1" + p-map "^3.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -4242,16 +4670,25 @@ dir-glob@^2.0.0: arrify "^1.0.1" path-type "^3.0.0" +dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= -dlv@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.2.tgz#270f6737b30d25b6657a7e962c784403f85137e5" - integrity sha512-xxD4VSH67GbRvSGUrckvha94RD7hjgOH7rqGxiytLpkaeMvixOHFZTGFK6EkIm3T761OVHT8ABHmGkq9gXgu6Q== - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -4287,6 +4724,13 @@ doctrine@^2.0.0, doctrine@^2.1.0: dependencies: esutils "^2.0.2" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + doctypes@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" @@ -4310,6 +4754,11 @@ domelementtype@1, domelementtype@^1.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI= +domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" @@ -4421,6 +4870,11 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.47, electron-to-chromium@ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.79.tgz#774718f06284a4bf8f578ac67e74508fe659f13a" integrity sha512-LQdY3j4PxuUl6xfxiFruTSlCniTrTrzAd8/HfsLEMi0PUpaQ0Iy+Pr4N4VllDYjs0Hyu2lkTbvzqlG+PX9NsNw== +electron-to-chromium@^1.3.322: + version "1.3.329" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.329.tgz#ff3644fb216bdccc33b2063c36f679deb5316cde" + integrity sha512-CoyYGbkQLwmOpaWRUZgeSNnEPH5fE5R8T7dhQIWV/rlIt+Kx6NFppQJ2oHELmzw8ZGabOBY5CrjGjyA+74QVoQ== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -4444,10 +4898,15 @@ elliptic@^6.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= -emoji-regex@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" - integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== +emoji-regex@^7.0.1, emoji-regex@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^2.0.0: version "2.1.0" @@ -4475,15 +4934,6 @@ enhanced-resolve@^4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -4573,6 +5023,23 @@ es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, is-callable "^1.1.3" is-regex "^1.0.4" +es-abstract@^1.17.0-next.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" + integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + es-abstract@^1.4.3: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" @@ -4594,6 +5061,15 @@ es-to-primitive@^1.1.1, es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es6-object-assign@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" @@ -4633,32 +5109,32 @@ escodegen@^1.10.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" - integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw== +eslint-config-airbnb-base@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz#8a7bcb9643d13c55df4dd7444f138bf4efa61e17" + integrity sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA== dependencies: - eslint-restricted-globals "^0.1.1" + confusing-browser-globals "^1.0.7" 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.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" - integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw== +eslint-config-airbnb@^18.0.1: + version "18.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz#a3a74cc29b46413b6096965025381df8fb908559" + integrity sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ== dependencies: - eslint-config-airbnb-base "^13.1.0" + eslint-config-airbnb-base "^14.0.0" object.assign "^4.1.0" - object.entries "^1.0.4" + object.entries "^1.1.0" -eslint-config-prettier@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.1.0.tgz#2c26d2cdcfa3a05f0642cd7e6e4ef3316cdabfa2" - integrity sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w== +eslint-config-prettier@^6.7.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.9.0.tgz#430d24822e82f7deb1e22a435bfa3999fae4ad64" + integrity sha512-k4E14HBtcLv0uqThaI6I/n1LEqROp8XaPu6SO9Z32u5NlGRC07Enu1Bh2KEFw4FNHbekH8yzbIU9kUGxbiGmCA== dependencies: get-stdin "^6.0.0" -eslint-import-resolver-node@^0.3.1: +eslint-import-resolver-node@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== @@ -4666,96 +5142,123 @@ eslint-import-resolver-node@^0.3.1: debug "^2.6.9" resolve "^1.5.0" -eslint-import-resolver-webpack@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.10.1.tgz#4cbceed2c0c43e488a74775c30861e58e00fb290" - integrity sha512-RN49nnyQpBCP3TqVhct+duJjH8kaVg08fFevWvA+4Cr1xeN7OFQRse4wMvzBto9/4VmOJWvqPfdmNTEG3jc8SQ== +eslint-module-utils@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c" + integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw== dependencies: - array-find "^1.0.0" - debug "^2.6.8" - enhanced-resolve "~0.9.0" - find-root "^1.1.0" - has "^1.0.1" - interpret "^1.0.0" - lodash "^4.17.4" - node-libs-browser "^1.0.0 || ^2.0.0" - resolve "^1.4.0" - semver "^5.3.0" + debug "^2.6.9" + pkg-dir "^2.0.0" -eslint-module-utils@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" - integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y= +eslint-plugin-babel@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.0.tgz#2e7f251ccc249326da760c1a4c948a91c32d0023" + integrity sha512-HPuNzSPE75O+SnxHIafbW5QB45r2w78fxqwK3HmjqIUoPfPzVrq6rD+CINU3yzoDSzEhUkX07VUphbF73Lth/w== dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" + eslint-rule-composer "^0.3.0" -eslint-plugin-babel@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.2.1.tgz#95cccad9a70908ab1d21276e7e33cc9701a18293" - integrity sha512-2bYHrP9TOT3Bq2Ay12xo2FZg76dMZesZMcRzoHZiC4v+Q4CMUA/F0G3hGYseOpwXaaGqxaPXoJyqAyIa3eBF1Q== +eslint-plugin-cypress@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.8.1.tgz#981a0f3658b40de430bcf05cabc96b396487c91f" + integrity sha512-jDpcP+MmjmqQO/x3bwIXgp4cl7Q66RYS5/IsuOQP4Qo2sEqE3DI8tTxBQ1EhnV5qEDd2Z2TYHR+5vYI6oCN4uw== dependencies: - eslint-rule-composer "^0.3.0" + globals "^11.12.0" -eslint-plugin-cypress@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.2.1.tgz#17295d8ef76984fe05886c7c5830ba216c1f9717" - integrity sha512-WkH81MEALKhnpeRo/wWHBHR883LdkS8aFzbGAGFxiwRwik2IKBZxb/JrxbiA6+SZskXGcmdEi6rwL7xmiqo9MA== +eslint-plugin-eslint-plugin@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.2.0.tgz#6cac90a8085f658e892b155dda130deac54cfa51" + integrity sha512-X5+NT9a2GuwWyb3sHJdEEe6aD/30Fhi3/9XCmYHe/OSnWKUhmKOxFTfFM1AXZfJXjAoX7811bnoLI3fZr5AX5Q== + +eslint-plugin-flowtype@^4.5.2: + version "4.5.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.5.3.tgz#21322e62c206cb4440d32ed3ba8eabe14e6d0fdf" + integrity sha512-9PBGkk3dQ2TnP04Zrm8ziVHyNIYzd24PEY12I5DXC/R35+3if0C1/PqTQW94v3okKWoBh2/7EysMEX9AimONjQ== dependencies: - globals "^11.0.1" + lodash "^4.17.15" -eslint-plugin-flowtype@^2.46.1: - version "2.50.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz#61379d6dce1d010370acd6681740fd913d68175f" - integrity sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ== +eslint-plugin-formatjs@^1.5.4: + version "1.5.9" + resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-1.5.9.tgz#39dc021962e0aadca6b00cc6a80d535798edfa6e" + integrity sha512-FbJ3zoiRqh01lexdX3zhdz8PKXFsBvzeWGVg9C3Vo+oqVnSDGSAVLNRs0daL6obmfBT5pS7dGs/2mFk1ZcI4/A== dependencies: - lodash "^4.17.10" + "@types/emoji-regex" "^8.0.0" + emoji-regex "^8.0.0" + intl-messageformat-parser "^3.6.2" -eslint-plugin-import@^2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" - integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== +eslint-plugin-import@^2.19.1: + version "2.19.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448" + integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw== dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" 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.1" + 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.12.0" -eslint-plugin-jsx-a11y@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" - integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw== +eslint-plugin-jest@^23.1.1: + version "23.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.3.0.tgz#b1443d0c46d6a0de9ef3de78176dd6688c7d5326" + integrity sha512-GE6CR4ESJeu6Huw7vfZfaXHmX2R2kCFvf2X9OMcOxfP158yLKgLWz7PqLYTwRDACi84IhpmRxO8lK7GGwG05UQ== dependencies: + "@typescript-eslint/experimental-utils" "^2.5.0" + +eslint-plugin-jsx-a11y@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" + integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== + 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-lodash@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-lodash/-/eslint-plugin-lodash-6.0.0.tgz#70fa487ab632e62627ecf01ad3e85c228e3ab9d3" + integrity sha512-iuxToisjIYAJdxWtW8OamFyc3yAsGCjU5WokvuBfTc/k5XdWOp9fAmzw+aFjj520/QXspCc8//xJpqkhYUj4qw== + dependencies: + lodash "^4.17.15" + +eslint-plugin-prettier@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba" + integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" + integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== -eslint-plugin-react@^7.11.1: - version "7.11.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" - integrity sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw== +eslint-plugin-react@^7.17.0: + version "7.17.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.17.0.tgz#a31b3e134b76046abe3cd278e7482bd35a1d12d7" + integrity sha512-ODB7yg6lxhBVMeiH1c7E95FLD4E/TwmFjltiU+ethv7KPdCwgiFuOZg9zNRHyufStTDLl/dEFqI2Q1VPmCd78A== dependencies: array-includes "^3.0.3" doctrine "^2.1.0" + eslint-plugin-eslint-plugin "^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 "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" - integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= + jsx-ast-utils "^2.2.3" + object.entries "^1.1.0" + object.fromentries "^2.0.1" + object.values "^1.1.0" + prop-types "^15.7.2" + resolve "^1.13.1" eslint-rule-composer@^0.3.0: version "0.3.0" @@ -4770,14 +5273,6 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" - integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" @@ -4786,119 +5281,82 @@ eslint-scope@^4.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^4.0.0, eslint@^4.5.0: - version "4.19.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" - integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^1.0.1" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^5.4.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.7.0.tgz#55c326d6fb2ad45fcbd0ce17c3846f025d1d819c" - integrity sha512-zYCeFQahsxffGl87U2aJ7DPyH8CbWgxBC213Y8+TCanhUTf2gEvfq3EKpHmEcozTLyPmGe9LZdMAwC/CpJBM5A== +eslint@^6.7.2: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" + ajv "^6.10.0" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" - doctrine "^2.1.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^4.0.0" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" esquery "^1.0.1" esutils "^2.0.2" - file-entry-cache "^2.0.0" + file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" + glob-parent "^5.0.0" + globals "^12.1.0" ignore "^4.0.6" + import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.1.0" - is-resolvable "^1.1.0" - js-yaml "^3.12.0" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.5" + lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" + optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" - require-uncached "^1.0.3" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.0.2" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" -espree@^3.5.2, espree@^3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -espree@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" - integrity sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg== +espree@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" + integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== dependencies: - acorn "^5.6.0" - acorn-jsx "^4.1.1" + acorn "^7.1.0" + acorn-jsx "^5.1.0" + eslint-visitor-keys "^1.1.0" esprima@^2.1.0, esprima@^2.6.0: version "2.7.3" @@ -4915,7 +5373,7 @@ esprima@^4.0.0, esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.0, esquery@^1.0.1: +esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== @@ -5009,19 +5467,6 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" - integrity sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA== - 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@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -5035,6 +5480,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + execall@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" @@ -5042,6 +5502,13 @@ execall@^1.0.0: dependencies: clone-regexp "^1.0.0" +execall@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" + integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== + dependencies: + clone-regexp "^2.1.0" + executable@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -5170,10 +5637,10 @@ external-editor@^2.0.4: iconv-lite "^0.4.17" tmp "^0.0.33" -external-editor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -5200,16 +5667,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-text-webpack-plugin@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" - integrity sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ== - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - extract-zip@1.6.7: version "1.6.7" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" @@ -5240,24 +5697,40 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-glob@^2.0.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28" - integrity sha512-NiX+JXjnx43RzvVFwRWfPKo4U+1BrK5pJPsHQdKMlLoFHrrGktXglQhHliSihWAq+m1z6fHk3uwGHrtRbS9vLA== +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== 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-glob@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" + integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.4, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -5267,6 +5740,13 @@ fastparse@^1.1.1: resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" integrity sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg= +fastq@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + dependencies: + reusify "^1.0.0" + faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -5333,13 +5813,26 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= +figures@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" + integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" + escape-string-regexp "^1.0.5" + +file-entry-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-4.0.0.tgz#633567d15364aefe0b299e1e217735e8f3a9f6e8" + integrity sha512-AVSwsnbV8vH/UVbvgEhf3saVQXORNv0ZzSkvkhQIaia5Tia+JhGTaa/ePUSVoPHQyGayQNmYfkzFi3WZV5zcpA== + dependencies: + flat-cache "^2.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" file-type@^7.7.1: version "7.7.1" @@ -5390,6 +5883,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + finalhandler@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" @@ -5412,16 +5912,6 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" -find-parent-dir@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" - integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= - -find-root@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -5444,6 +5934,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" @@ -5452,15 +5950,19 @@ findup@^0.1.5: colors "~0.6.0-1" commander "~2.1.0" -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE= +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flatten@^1.0.2: version "1.0.2" @@ -5734,10 +6236,10 @@ get-pkg-repo@^1.0.0: parse-github-repo-url "^1.3.0" through2 "^2.0.0" -get-stdin@5.0.1, get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= +get-stdin@7.0.0, get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== get-stdin@^4.0.1: version "4.0.1" @@ -5761,6 +6263,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + 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" @@ -5793,18 +6302,7 @@ gherkin@^5.1.0: resolved "https://registry.yarnpkg.com/gherkin/-/gherkin-5.1.0.tgz#684bbb03add24eaf7bdf544f58033eb28fb3c6d5" integrity sha1-aEu7A63STq9731RPWAM+so+zxtU= -git-raw-commits@^1.3.0: - version "1.3.6" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" - integrity sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg== - dependencies: - dargs "^4.0.1" - lodash.template "^4.0.2" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - -git-raw-commits@^2.0.0: +git-raw-commits@2.0.0, git-raw-commits@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== @@ -5831,6 +6329,14 @@ git-semver-tags@^2.0.0: meow "^4.0.0" semver "^5.5.0" +git-semver-tags@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-3.0.1.tgz#9cb9e4974437de1f71f32da3bfe74f4d35afb1b9" + integrity sha512-Hzd1MOHXouITfCasrpVJbRDg9uvW7LfABk3GQmXYZByerBDrfrEMP9HXpNT7RxAbieiocP6u+xq20DkvjwxnCA== + dependencies: + meow "^5.0.0" + semver "^6.0.0" + gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -5868,6 +6374,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.0.0, glob-parent@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -5913,19 +6426,19 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - integrity sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo= +glob@^7.1.3, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.2" + minimatch "^3.0.4" 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.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= @@ -5946,6 +6459,13 @@ global-modules@1.0.0, global-modules@^1.0.0: is-windows "^1.0.1" resolve-dir "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" @@ -5957,27 +6477,50 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: version "11.8.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" integrity sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA== +globals@^11.12.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" + integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== + dependencies: + type-fest "^0.8.1" + globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" globby@^6.1.0: version "6.1.0" @@ -6002,18 +6545,19 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -globby@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" - integrity sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw== - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - fast-glob "^2.0.2" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" +globby@^9.0.0, globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" globjoin@^0.1.4: version "0.1.4" @@ -6036,10 +6580,10 @@ glogg@^1.0.1: dependencies: sparkles "^1.0.0" -gonzales-pe@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz#41091703625433285e0aee3aa47829fc1fbeb6f2" - integrity sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw== +gonzales-pe@^4.2.3, gonzales-pe@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.4.tgz#356ae36a312c46fe0f1026dd6cb539039f8500d2" + integrity sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ== dependencies: minimist "1.1.x" @@ -6091,6 +6635,11 @@ graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= +graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + grapheme-splitter@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -6142,6 +6691,17 @@ handlebars@^4.0.2, handlebars@^4.0.3: optionalDependencies: uglify-js "^3.1.4" +handlebars@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.6.0.tgz#33af6c3eda930d7a924f5d8f1c6d8edc3180512e" + integrity sha512-i1ZUP7Qp2JdkMaFon2a+b0m5geE8Z4ZTLaGkgrObkEd+OkUKyRbRWw4KxuFCoHfdETSY1yf9/574eVoNSiK7pw== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -6177,6 +6737,11 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" @@ -6187,6 +6752,11 @@ has-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -6339,7 +6909,24 @@ html-tags@^2.0.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= -htmlparser2@^3.9.1, htmlparser2@^3.9.2: +html-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + +htmlparser2@^3.10.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^3.9.1: version "3.9.2" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg= @@ -6440,21 +7027,22 @@ https-proxy-agent@^2.2.0: agent-base "^4.1.0" debug "^3.1.0" -husky@^1.1.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" - integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== +husky@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0" + integrity sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ== dependencies: - cosmiconfig "^5.0.7" + chalk "^2.4.2" + ci-info "^2.0.0" + cosmiconfig "^5.2.1" 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" + get-stdin "^7.0.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.2.0" + read-pkg "^5.2.0" run-node "^1.0.0" - slash "^2.0.0" + slash "^3.0.0" hyphenate-style-name@^1.0.2: version "1.0.2" @@ -6504,16 +7092,21 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.2.7, ignore@^3.3.3, ignore@^3.3.5: +ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^4.0.0, ignore@^4.0.6: +ignore@^4.0.3, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + immutable@^3.7.4: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" @@ -6534,6 +7127,14 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" +import-fresh@^3.0.0, import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -6546,6 +7147,11 @@ import-lazy@^3.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" @@ -6579,11 +7185,16 @@ indent-string@^2.1.0: dependencies: repeating "^2.0.0" -indent-string@^3.0.0, indent-string@^3.1.0, indent-string@^3.2.0: +indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -6612,12 +7223,12 @@ inherits@2.0.1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= -ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@3.3.0, inquirer@^3.0.6, inquirer@~3.3.0: +inquirer@3.3.0, inquirer@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== @@ -6656,23 +7267,23 @@ inquirer@^0.11.0: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" - integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg== +inquirer@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.3.tgz#f9b4cd2dff58b9f73e8d43759436ace15bed4567" + integrity sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw== dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" + ansi-escapes "^4.2.1" + chalk "^2.4.2" + cli-cursor "^3.1.0" cli-width "^2.0.0" - external-editor "^3.0.0" - figures "^2.0.0" - lodash "^4.17.10" - mute-stream "0.0.7" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" run-async "^2.2.0" - rxjs "^6.1.0" - string-width "^2.1.0" - strip-ansi "^4.0.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^5.1.0" through "^2.3.6" internal-ip@1.2.0: @@ -6690,7 +7301,7 @@ internal-ip@^3.0.1: default-gateway "^2.6.0" ipaddr.js "^1.5.2" -interpret@^1.0.0, interpret@^1.1.0: +interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= @@ -6705,6 +7316,13 @@ intl-messageformat-parser@1.4.0, intl-messageformat-parser@^1.2.0: resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU= +intl-messageformat-parser@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-3.6.2.tgz#03138f6f11ea499268cc63384b7a752d20de44a2" + integrity sha512-+uQVyN+Ip71s9IzbKEZi3HDFhXKcjJhK1JnbaFNMrOh4YqNAuEoRhcqPP/e80vyTm6atNF424y7ga9K9dseG/g== + dependencies: + "@formatjs/intl-unified-numberformat" "^3.0.4" + intl-messageformat@^2.0.0, intl-messageformat@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc" @@ -6823,6 +7441,11 @@ is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" @@ -6835,6 +7458,11 @@ is-callable@^1.1.3, is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + is-ci@1.2.1, is-ci@^1.0.10: version "1.2.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" @@ -6842,13 +7470,6 @@ is-ci@1.2.1, is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -6957,6 +7578,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-generator-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" @@ -6983,6 +7609,13 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + is-hexadecimal@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835" @@ -7025,6 +7658,11 @@ is-number@^4.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -7047,6 +7685,11 @@ is-path-cwd@^1.0.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + is-path-in-cwd@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" @@ -7061,6 +7704,11 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + is-plain-obj@^1.0.0, is-plain-obj@^1.1, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -7095,15 +7743,22 @@ is-regex@^1.0.3, is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= -is-resolvable@^1.0.0, is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== +is-regexp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" + integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" @@ -7120,6 +7775,11 @@ is-stream@^1.0.0, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-string@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" @@ -7149,14 +7809,14 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-text-path@^1.0.0: +is-text-path@^1.0.0, is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= dependencies: text-extensions "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -7591,7 +8251,7 @@ jest-util@^23.4.0: slash "^1.0.0" source-map "^0.6.0" -jest-validate@^23.5.0, jest-validate@^23.6.0: +jest-validate@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== @@ -7654,18 +8314,18 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.1: - version "3.12.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" - integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== +js-yaml@^3.13.1, js-yaml@^3.9.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.13.0, js-yaml@^3.9.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== +js-yaml@^3.7.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -7782,6 +8442,13 @@ json5@^0.5.0, json5@^0.5.1: resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= +json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + jsonfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" @@ -7886,12 +8553,13 @@ jstransformer@1.0.0: is-promise "^2.0.0" promise "^7.0.1" -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= +jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== dependencies: array-includes "^3.0.3" + object.assign "^4.1.0" jwa@^1.1.5: version "1.1.6" @@ -7951,10 +8619,15 @@ kleur@^2.0.1: resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== -known-css-properties@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.8.0.tgz#2f62aaab90ece0c788d0c49e08c1e5d9b689238d" - integrity sha512-pku5zscbIr9YsA6lFU1nhFGSAXsdJtEQ2WilCL40d0YCoDofBlNohMUq32wyt7tpiiaZ09GKyLZFrB1ijx6+WA== +known-css-properties@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" + integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== + +known-css-properties@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.17.0.tgz#1c535f530ee8e9e3e27bb6a718285780e1d07326" + integrity sha512-Vi3nxDGMm/z+lAaCjvAR1u+7fiv+sG6gU/iYDj5QOF8h76ytK9EW/EKfF0NeTyiGBi8Jy6Hklty/vxISrLox3w== last-call-webpack-plugin@^3.0.0: version "3.0.0" @@ -8005,6 +8678,11 @@ leven@^2.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -8013,33 +8691,30 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lint-staged@^7.2.2: - version "7.3.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.3.0.tgz#90ff33e5ca61ed3dbac35b6f6502dbefdc0db58d" - integrity sha512-AXk40M9DAiPi7f4tdJggwuKIViUplYtVj1os1MVEteW7qOkU50EOehayCfO9TsoGK24o/EsWb41yrEgfJDDjCw== - dependencies: - chalk "^2.3.1" - commander "^2.14.1" - cosmiconfig "^5.0.2" - debug "^3.1.0" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lint-staged@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.5.0.tgz#290ec605252af646d9b74d73a0fa118362b05a33" + integrity sha512-nawMob9cb/G1J98nb8v3VC/E8rcX1rryUYXVZ69aT9kde6YWX+uvNOEHY5yf2gcWcTJGiD0kqXmCnS3oD75GIA== + dependencies: + chalk "^2.4.2" + commander "^2.20.0" + cosmiconfig "^5.2.1" + debug "^4.1.1" dedent "^0.7.0" - execa "^0.9.0" - find-parent-dir "^0.3.0" - is-glob "^4.0.0" - is-windows "^1.0.2" - jest-validate "^23.5.0" - listr "^0.14.1" - lodash "^4.17.5" - log-symbols "^2.2.0" - micromatch "^3.1.8" - npm-which "^3.0.1" - p-map "^1.1.1" - path-is-inside "^1.0.2" - pify "^3.0.0" - please-upgrade-node "^3.0.2" - staged-git-files "1.1.1" - string-argv "^0.0.2" - stringify-object "^3.2.2" + del "^5.0.0" + execa "^2.0.3" + listr "^0.14.3" + log-symbols "^3.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.1.1" + string-argv "^0.3.0" + stringify-object "^3.3.0" listenercount@~1.0.1: version "1.0.1" @@ -8070,10 +8745,10 @@ 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.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" - integrity sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc= +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" @@ -8081,7 +8756,7 @@ 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: @@ -8094,6 +8769,16 @@ listr-verbose-renderer@^0.4.0: date-fns "^1.27.2" figures "^1.7.0" +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + listr@0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" @@ -8116,20 +8801,20 @@ listr@0.12.0: stream-to-observable "^0.1.0" strip-ansi "^3.0.1" -listr@^0.14.1: - version "0.14.2" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.2.tgz#cbe44b021100a15376addfc2d79349ee430bfe14" - integrity sha512-vmaNJ1KlGuGWShHI35X/F8r9xxS0VTHh9GejVXwSN20fG5xpq3Jh4bJbnumoT6q5EDM/8/YP1z3YMtQbFmhuXw== +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== dependencies: "@samverschueren/stream-to-observable" "^0.3.0" is-observable "^1.1.0" is-promise "^2.1.0" is-stream "^1.1.0" listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.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" @@ -8192,6 +8877,13 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -8202,7 +8894,7 @@ lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= -lodash.camelcase@4.3.0, lodash.camelcase@^4.3.0: +lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= @@ -8247,6 +8939,11 @@ lodash.isinteger@^4.0.4: resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" @@ -8262,56 +8959,31 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= -lodash.kebabcase@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.merge@4.6.1, lodash.merge@^4.0.2, lodash.merge@^4.6.0: +lodash.merge@^4.0.2: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ== -lodash.mergewith@4.6.1, lodash.mergewith@^4.6.0: +lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== -lodash.omit@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= - lodash.once@^4.0.0, lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash.pick@4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.snakecase@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40= - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.startcase@4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= - lodash.tail@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" @@ -8332,11 +9004,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" -lodash.topairs@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.topairs/-/lodash.topairs-4.3.0.tgz#3b6deaa37d60fb116713c46c5f17ea190ec48d64" - integrity sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ= - lodash.unescape@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" @@ -8347,16 +9014,16 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash.upperfirst@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= - lodash@4.17.11, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + lodash@^3.3.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -8376,6 +9043,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + log-update@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" @@ -8384,13 +9058,14 @@ log-update@^1.0.2: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" -loglevel-colored-level-prefix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" - integrity sha1-akAhj9x64V/HbD0PPmdsRlOIYD4= +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= dependencies: - chalk "^1.1.3" - loglevel "^1.4.1" + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" loglevel@^1.4.1: version "1.6.1" @@ -8407,7 +9082,7 @@ longest@^1.0.1: resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: +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.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -8467,13 +9142,6 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-plural@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" - integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== - optionalDependencies: - minimist "^1.2.0" - makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -8538,10 +9206,10 @@ math-random@^1.0.1: resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w= -mathml-tag-names@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz#490b70e062ee24636536e3d9481e333733d00f2c" - integrity sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg== +mathml-tag-names@^2.0.1, mathml-tag-names@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz#6dff66c99d55ecf739ca53c492e626f1d12a33cc" + integrity sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw== md5.js@^1.3.4: version "1.3.5" @@ -8589,11 +9257,6 @@ mem@^4.0.0: mimic-fn "^1.0.0" p-is-promise "^1.1.0" -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= - memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -8672,32 +9335,21 @@ merge-stream@^1.0.1: dependencies: readable-stream "^2.0.1" -merge2@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" - integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== merge@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" integrity sha1-dTHjnUlJwoGma4xabgJl6LBYlNo= -messageformat-parser@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-1.1.0.tgz#13ba2250a76bbde8e0fca0dbb3475f95c594a90a" - integrity sha512-Hwem6G3MsKDLS1FtBRGIs8T50P1Q00r3srS6QJePCFbad9fq0nYxwf3rnU2BreApRGhmpKMV7oZI06Sy1c9TPA== - -messageformat@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-1.1.1.tgz#ceaa2e6c86929d4807058275a7372b1bd963bdf6" - integrity sha512-Q0uXcDtF5pEZsVSyhzDOGgZZK6ykN79VY9CwU3Nv0gsqx62BjdJW0MT+63UkHQ4exe3HE33ZlxR2/YwoJarRTg== - dependencies: - glob "~7.0.6" - make-plural "^4.1.1" - messageformat-parser "^1.1.0" - nopt "~3.0.6" - reserved-words "^0.1.2" - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -8741,6 +9393,14 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -8781,6 +9441,11 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -9006,6 +9671,11 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + nan@^2.10.0, nan@^2.9.2: version "2.11.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" @@ -9063,6 +9733,11 @@ neo-async@^2.5.0: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + nested-error-stacks@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz#d2cc9fc5235ddb371fc44d506234339c8e4b0a4b" @@ -9118,7 +9793,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -"node-libs-browser@^1.0.0 || ^2.0.0", node-libs-browser@^2.0.0: +node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== @@ -9180,6 +9855,13 @@ node-releases@^1.0.0-alpha.14: dependencies: semver "^5.3.0" +node-releases@^1.1.44: + version "1.1.45" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" + integrity sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg== + dependencies: + semver "^6.3.0" + node-sass@^4.9.3: version "4.9.4" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.4.tgz#349bd7f1c89422ffe7e1e4b60f2055a69fbc5512" @@ -9213,7 +9895,7 @@ nomnom@~1.6.2: colors "0.5.x" underscore "~1.4.4" -"nopt@2 || 3", nopt@~3.0.6: +"nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= @@ -9238,7 +9920,7 @@ normalize-package-data@^2.3.0, normalize-package-data@^2.3.4, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -9255,6 +9937,11 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" @@ -9302,13 +9989,6 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-path@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" - integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw== - dependencies: - which "^1.2.10" - npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" @@ -9331,14 +10011,12 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-which@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" - integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo= +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== dependencies: - commander "^2.9.0" - npm-path "^2.0.2" - which "^1.2.10" + path-key "^3.0.0" "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" @@ -9396,6 +10074,11 @@ object-inspect@^1.6.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" @@ -9406,6 +10089,11 @@ object-keys@^1.0.11, object-keys@^1.0.12: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -9433,6 +10121,26 @@ object.entries@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.entries@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.fromentries@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" @@ -9466,6 +10174,16 @@ object.values@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + obuf@^1.0.0, obuf@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -9502,6 +10220,18 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + opener@^1.4.3: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" @@ -9537,7 +10267,7 @@ optimize-css-assets-webpack-plugin@^4.0.2: cssnano "^3.10.0" last-call-webpack-plugin "^3.0.0" -optionator@^0.8.1, optionator@^0.8.2: +optionator@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= @@ -9549,6 +10279,18 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + ora@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" @@ -9663,6 +10405,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" @@ -9682,6 +10429,13 @@ p-limit@^2.0.0: dependencies: p-try "^2.0.0" +p-limit@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + 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" @@ -9696,11 +10450,30 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" @@ -9739,6 +10512,13 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" @@ -9801,6 +10581,16 @@ 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.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + 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-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -9850,12 +10640,17 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -9865,6 +10660,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -9903,6 +10703,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" @@ -9929,6 +10734,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.0.5: + version "2.2.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" + integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== + pidtree@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" @@ -9944,10 +10754,10 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.0.tgz#db04c982b632fd0df9090d14aaf1c8413cadb695" - integrity sha512-zrSP/KDf9DH3K3VePONoCstgPiYJy9z0SCatZuTpOc7YdnWIqwkWdXOuwlr4uDc7em8QZRsFWsT/685x5InjYg== +pify@^4.0.0, pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pikaday@^1.8.0: version "1.8.0" @@ -9966,13 +10776,6 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -9987,17 +10790,26 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== dependencies: semver-compare "^1.0.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" pn@^1.1.0: version "1.1.0" @@ -10087,28 +10899,26 @@ postcss-filter-plugins@^2.0.0: dependencies: postcss "^5.0.4" -postcss-html@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.34.0.tgz#9bfd637ad8c3d3a43625b5ef844dc804b3370868" - integrity sha512-BIW982Kbf9/RikInNhNS3/GA6x/qY/+jhVS9KumqXZtU9ss8Yq15HhPJ6mnaXcU5bFq2ULxpOv96mHPAErpGMQ== +postcss-html@^0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" + integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== dependencies: - htmlparser2 "^3.9.2" + htmlparser2 "^3.10.0" -postcss-jsx@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.34.0.tgz#5a122af914f911fab4a9b8fcf3adc73c2dfe1bdd" - integrity sha512-UJISlEGWH/LeMYudAwq9GeqfyPW9AeRq87GHOlbquxOIakKr0Aqu6l9Cx0Fg20f3A9bKJcX1NGX4/xzIs7PlZQ== +postcss-jsx@^0.36.0, postcss-jsx@^0.36.3: + version "0.36.3" + resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.3.tgz#c91113eae2935a1c94f00353b788ece9acae3f46" + integrity sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA== dependencies: - "@babel/core" "^7.0.0" - optionalDependencies: - postcss-styled ">=0.34.0" + "@babel/core" ">=7.2.2" -postcss-less@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-2.0.0.tgz#5d190b8e057ca446d60fe2e2587ad791c9029fb8" - integrity sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ== +postcss-less@^3.1.0, postcss-less@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" + integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== dependencies: - postcss "^5.2.16" + postcss "^7.0.14" postcss-load-config@^2.0.0: version "2.0.0" @@ -10128,12 +10938,12 @@ postcss-loader@^3.0.0: postcss-load-config "^2.0.0" schema-utils "^1.0.0" -postcss-markdown@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.34.0.tgz#7a043e6eee3ab846a4cefe3ab43d141038e2da79" - integrity sha512-cKPggF9OMOKPoqDm5YpYszCqMsImFh78FK6P8p6IsEKZB6IkUJYKz0/QgadYy4jLb60jcFIHJ6v6jsMH7/ZQrA== +postcss-markdown@^0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz#7f22849ae0e3db18820b7b0d5e7833f13a447560" + integrity sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ== dependencies: - remark "^9.0.0" + remark "^10.0.1" unist-util-find-all-after "^1.0.2" postcss-media-query-parser@^0.2.3: @@ -10290,36 +11100,44 @@ postcss-reduce-transforms@^1.0.3: postcss "^5.0.8" postcss-value-parser "^3.0.1" -postcss-reporter@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.0.tgz#44c873129d8c029a430b6d2186210d79c8de88b8" - integrity sha512-5xQXm1UPWuFObjbtyQzWvQaupru8yFcFi4HUlm6OPo1o2bUszYASuqRJ7bVArb3svGCdbYtqdMBKrqR1Aoy+tw== +postcss-reporter@^6.0.0, postcss-reporter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f" + integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw== dependencies: - chalk "^2.0.1" - lodash "^4.17.4" - log-symbols "^2.0.0" - postcss "^7.0.2" + chalk "^2.4.1" + lodash "^4.17.11" + log-symbols "^2.2.0" + postcss "^7.0.7" postcss-resolve-nested-selector@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= -postcss-safe-parser@^4.0.0: +postcss-safe-parser@^4.0.0, postcss-safe-parser@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== dependencies: postcss "^7.0.0" -postcss-sass@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.3.tgz#bec188ac285d21ac8feba194c2f327fdda31e671" - integrity sha512-uoRhfwZJHDRI8p2KQniTx4UwzYwKgQUhmFNJ7aysL3+tgFUfmv5TPX8UPnlE5gfrq6KHUUwPJ/nISFtzwxr7iQ== +postcss-sass@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz#6d3e39f101a53d2efa091f953493116d32beb68c" + integrity sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A== dependencies: gonzales-pe "^4.2.3" postcss "^7.0.1" +postcss-sass@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.2.tgz#7d1f8ddf6960d329de28fb3ff43c9c42013646bc" + integrity sha512-hcRgnd91OQ6Ot9R90PE/khUDCJHG8Uxxd3F7Y0+9VHjBiJgNv7sK5FxyHMCBtoLmmkzVbSj3M3OlqUfLJpq0CQ== + dependencies: + gonzales-pe "^4.2.4" + postcss "^7.0.21" + postcss-scss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" @@ -10345,27 +11163,21 @@ postcss-selector-parser@^3.1.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-4.0.0.tgz#50c6570f40579036d8e63f23e6c0626fe5743527" - integrity sha512-5h+MvEjnzu1qy6MabjuoPatsGAjjDV9B24e7Cktjl+ClNtjVjmvAXjOFQr1u7RlWULKNGYaYVE4s+DIIQ4bOGA== - dependencies: - cssesc "^1.0.1" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-sorting@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-sorting/-/postcss-sorting-4.0.0.tgz#abfdf41ff8f7710f66f5dc7e78a3a3cce3983c21" - integrity sha512-rN1USjy86i8rpr98PLVA0sYU4iZ+D1kU5vW/kKy6sZJTOm0O1HRD1JrX9KFyCtzU35XB9u3sMtLUoslKssIEoQ== +postcss-sorting@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-sorting/-/postcss-sorting-4.1.0.tgz#a107f0bf3852977fa64e4442bc340c88d5aacdb3" + integrity sha512-r4T2oQd1giURJdHQ/RMb72dKZCuLOdWx2B/XhXN1Y1ZdnwXsKH896Qz6vD4tFy9xSjpKNYhlZoJmWyhH/7JUQw== dependencies: lodash "^4.17.4" postcss "^7.0.0" -postcss-styled@>=0.34.0, postcss-styled@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-styled/-/postcss-styled-0.34.0.tgz#07d47bcb13707289782aa058605fd9feaf84391d" - integrity sha512-Uaeetr/xOiQWGJgzPFOr32/Bwykpfh9TVE26OpmwDb8eEN205TS/gqkt9ri+C6otQzQKXqbMfeZNbKYi7QpeNA== +postcss-sorting@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-sorting/-/postcss-sorting-5.0.1.tgz#10d5d0059eea8334dacc820c0121864035bc3f11" + integrity sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA== + dependencies: + lodash "^4.17.14" + postcss "^7.0.17" postcss-svgo@^2.1.1: version "2.1.6" @@ -10377,10 +11189,10 @@ postcss-svgo@^2.1.1: postcss-value-parser "^3.2.3" svgo "^0.7.0" -postcss-syntax@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.34.0.tgz#4a85c022f1cdecea72102775c91af1e7f506d83a" - integrity sha512-L36NZwq2UK743US+vl1CRMdBRZCBmFYfThP9n9jCFhX1Wfk6BqnRSgt0Fy8q44IwxPee/GCzlo7T1c1JIeUDlQ== +postcss-syntax@^0.36.2: + version "0.36.2" + resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" + integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== postcss-unique-selectors@^2.0.2: version "2.0.2" @@ -10396,6 +11208,11 @@ postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== +postcss-value-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + postcss-zindex@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" @@ -10424,7 +11241,7 @@ postcss@^6.0.1, postcss@^6.0.23: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5: +postcss@^7.0.0, postcss@^7.0.2, postcss@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.5.tgz#70e6443e36a6d520b0fd4e7593fcca3635ee9f55" integrity sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ== @@ -10433,6 +11250,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5: source-map "^0.6.1" supports-color "^5.5.0" +postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.21, postcss@^7.0.23, postcss@^7.0.7: + version "7.0.26" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" + integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -10453,55 +11279,19 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier-eslint-cli@^4.4.2: - version "4.7.1" - resolved "https://registry.yarnpkg.com/prettier-eslint-cli/-/prettier-eslint-cli-4.7.1.tgz#3d103c494baa4e80b99ad53e2b9db7620101859f" - integrity sha512-hQbsGaEVz97oBBcKdsJ46khv0kOGkMyWrXzcFOXW6X8UuetZ/j0yDJkNJgUTVc6PVFbbzBXk+qgd5vos9qzXPQ== +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: - arrify "^1.0.1" - babel-runtime "^6.23.0" - boolify "^1.0.0" - camelcase-keys "^4.1.0" - chalk "2.3.0" - common-tags "^1.4.0" - eslint "^4.5.0" - find-up "^2.1.0" - get-stdin "^5.0.1" - glob "^7.1.1" - ignore "^3.2.7" - indent-string "^3.1.0" - lodash.memoize "^4.1.2" - loglevel-colored-level-prefix "^1.0.0" - messageformat "^1.0.2" - prettier-eslint "^8.5.0" - rxjs "^5.3.0" - yargs "10.0.3" + fast-diff "^1.1.2" -prettier-eslint@^8.5.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-8.8.2.tgz#fcb29a48ab4524e234680797fe70e9d136ccaf0b" - integrity sha512-2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA== - dependencies: - babel-runtime "^6.26.0" - common-tags "^1.4.0" - dlv "^1.1.0" - eslint "^4.0.0" - indent-string "^3.2.0" - lodash.merge "^4.6.0" - loglevel-colored-level-prefix "^1.0.0" - prettier "^1.7.0" - pretty-format "^23.0.1" - require-relative "^0.8.7" - typescript "^2.5.1" - typescript-eslint-parser "^16.0.0" - vue-eslint-parser "^2.0.2" - -prettier@^1.14.2, prettier@^1.7.0: - version "1.14.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" - integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== - -pretty-format@^23.0.1, pretty-format@^23.6.0: +prettier@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +pretty-format@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== @@ -10575,6 +11365,15 @@ prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, loose-envify "^1.3.1" object-assign "^4.1.1" +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + properties-parser@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/properties-parser/-/properties-parser-0.3.1.tgz#1316e9539ffbfd93845e369b211022abd478771a" @@ -11023,6 +11822,11 @@ react-is@^16.5.2: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz#e2a7b7c3f5d48062eb769fcb123505eb928722e3" integrity sha512-hSl7E6l25GTjNEZATqZIuWOgSnpXb3kD0DVCujmg46K5zLxsbiKaaT6VO9slkSBDPZfYs30lwfJwbOFOnoEnKQ== +react-is@^16.8.1: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" + integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== + react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" @@ -11164,15 +11968,6 @@ read-pkg-up@^3.0.0: find-up "^2.0.0" read-pkg "^3.0.0" -read-pkg@3.0.0, read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - read-pkg@^1.0.0, read-pkg@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -11191,14 +11986,24 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.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= +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: + load-json-file "^4.0.0" normalize-package-data "^2.3.2" - parse-json "^4.0.0" - pify "^3.0.0" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@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@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6: version "2.3.6" @@ -11213,6 +12018,15 @@ read-pkg@^4.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" +"readable-stream@2 || 3", readable-stream@^3.1.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" @@ -11322,6 +12136,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -11346,16 +12165,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" - integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== - regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -11410,10 +12229,31 @@ regjsparser@^0.3.0: dependencies: jsesc "~0.5.0" -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== +remark-parse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" + integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.1.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + +remark-parse@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz#c99131052809da482108413f87b0ee7f52180a3a" + integrity sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg== dependencies: collapse-white-space "^1.0.2" is-alphabetical "^1.0.0" @@ -11451,6 +12291,35 @@ remark-stringify@^5.0.0: unherit "^1.0.4" xtend "^4.0.1" +remark-stringify@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz#16ac229d4d1593249018663c7bddf28aafc4e088" + integrity sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg== + dependencies: + ccount "^1.0.0" + is-alphanumeric "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + longest-streak "^2.0.1" + markdown-escapes "^1.0.0" + markdown-table "^1.1.0" + mdast-util-compact "^1.0.0" + parse-entities "^1.0.2" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + stringify-entities "^1.0.1" + unherit "^1.0.4" + xtend "^4.0.1" + +remark@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz#3058076dc41781bf505d8978c291485fe47667df" + integrity sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ== + dependencies: + remark-parse "^6.0.0" + remark-stringify "^6.0.0" + unified "^7.0.0" + remark@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" @@ -11552,19 +12421,6 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requireg@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/requireg/-/requireg-0.1.8.tgz#75c1d495294fa5ddfd51e4fcca4965c44f1ed8b1" @@ -11579,11 +12435,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reserved-words@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" - integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= - resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -11599,39 +12450,27 @@ resolve-dir@^1.0.0: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@4.0.0, resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= -resolve-global@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-0.1.0.tgz#8fb02cfd5b7db20118e886311f15af95bd15fbd9" - integrity sha1-j7As/Vt9sgEY6IYxHxWvlb0V+9k= - dependencies: - global-dirs "^0.1.0" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-pkg@1.0.0: +resolve-global@1.0.0, resolve-global@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-1.0.0.tgz#e19a15e78aca2e124461dc92b2e3943ef93494d9" - integrity sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk= + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== dependencies: - resolve-from "^2.0.0" + global-dirs "^0.1.1" resolve-url@^0.2.1: version "0.2.1" @@ -11643,7 +12482,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0: +resolve@^1.1.6, resolve@^1.3.2, resolve@^1.5.0: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== @@ -11657,6 +12496,13 @@ resolve@^1.10.0: dependencies: path-parse "^1.0.6" +resolve@^1.12.0, resolve@^1.13.1: + version "1.14.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" + integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ== + dependencies: + path-parse "^1.0.6" + resolve@~1.7.1: version "1.7.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" @@ -11687,6 +12533,14 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -11697,6 +12551,11 @@ retry@^0.10.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= +reusify@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rgb2hex@^0.1.9: version "0.1.9" resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.1.9.tgz#5d3e0e14b0177b568e6f0d5b43e34fbfdb670346" @@ -11716,6 +12575,20 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2. dependencies: glob "^7.0.5" +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" + integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -11756,6 +12629,11 @@ run-node@^1.0.0: resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -11785,17 +12663,17 @@ rx@^4.1.0: resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= -rxjs@^5.0.0-beta.11, rxjs@^5.3.0: +rxjs@^5.0.0-beta.11: version "5.5.12" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== dependencies: symbol-observable "1.0.1" -rxjs@^6.1.0: - version "6.3.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" - integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== +rxjs@^6.3.3, rxjs@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.0" @@ -11804,6 +12682,11 @@ safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -11866,13 +12749,6 @@ schedule@^0.5.0: dependencies: object-assign "^4.1.1" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8= - dependencies: - ajv "^5.0.0" - schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" @@ -11932,12 +12808,12 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== +semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@5.6.0, semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: +semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== @@ -12053,11 +12929,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shell-quote@1.6.1, shell-quote@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" @@ -12093,6 +12981,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" @@ -12105,6 +12998,15 @@ slice-ansi@1.0.0: dependencies: is-fullwidth-code-point "^2.0.0" +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -12353,11 +13255,6 @@ stack-utils@^1.0.1: resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" integrity sha1-1PM6tU6OOHeLDKXP07OvsS22hiA= -staged-git-files@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b" - integrity sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A== - state-toggle@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz#c3cb0974f40a6a0f8e905b96789eb41afa1cde3a" @@ -12435,10 +13332,10 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-argv@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" - integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= +string-argv@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== string-length@^2.0.0: version "2.0.0" @@ -12465,6 +13362,24 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.codepointat@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" @@ -12488,6 +13403,22 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + string_decoder@^1.0.0, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -12495,6 +13426,13 @@ string_decoder@^1.0.0, string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -12510,7 +13448,7 @@ stringify-entities@^1.0.1: is-alphanumerical "^1.0.0" is-hexadecimal "^1.0.0" -stringify-object@^3.2.0, stringify-object@^3.2.2: +stringify-object@^3.2.0, stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== @@ -12533,6 +13471,20 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -12550,6 +13502,11 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -12562,7 +13519,12 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -12588,42 +13550,102 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= -stylelint-config-recommended@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-2.1.0.tgz#f526d5c771c6811186d9eaedbed02195fee30858" - integrity sha512-ajMbivOD7JxdsnlS5945KYhvt7L/HwN6YeYF2BH6kE4UCLJR0YvXMf+2j7nQpJyYLZx9uZzU5G1ZOSBiWAc6yA== +stylelint-config-rational-order@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/stylelint-config-rational-order/-/stylelint-config-rational-order-0.1.2.tgz#4e98e390783d437f0ec41fb73bc41992e78d02a0" + integrity sha512-Qo7ZQaihCwTqijfZg4sbdQQHtugOX/B1/fYh018EiDZHW+lkqH9uHOnsDwDPGZrYJuB6CoyI7MZh2ecw2dOkew== + dependencies: + stylelint "^9.10.1" + stylelint-order "^2.2.1" + +stylelint-config-recommended@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz#e0e547434016c5539fe2650afd58049a2fd1d657" + integrity sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ== -stylelint-config-standard@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-18.2.0.tgz#6283149aba7f64f18731aef8f0abfb35cf619e06" - integrity sha512-07x0TaSIzvXlbOioUU4ORkCIM07kyIuojkbSVCyFWNVgXMXYHfhnQSCkqu+oHWJf3YADAnPGWzdJ53NxkoJ7RA== +stylelint-config-standard@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-19.0.0.tgz#66f0cf13f33b8a9e34965881493b38fc1313693a" + integrity sha512-VvcODsL1PryzpYteWZo2YaA5vU/pWfjqBpOvmeA8iB2MteZ/ZhI1O4hnrWMidsS4vmEJpKtjdhLdfGJmmZm6Cg== dependencies: - stylelint-config-recommended "^2.1.0" + stylelint-config-recommended "^3.0.0" -stylelint-order@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-1.0.0.tgz#089fc3d5cdf7e7d4ac1882f65b60b25db750413c" - integrity sha512-2IVM8GzeKIDQDTETNdmgX99ywGrb7OqFWkniCw7QLqS/xONPGMLY/xAQnvGcUS3oBSo8znsoshsWVBqPz2Kv4Q== +stylelint-order@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-2.2.1.tgz#cd2d4a0d81d91c705f1d275a58487e5ad5aa5828" + integrity sha512-019KBV9j8qp1MfBjJuotse6MgaZqGVtXMc91GU9MsS9Feb+jYUvUU3Z8XiClqPdqJZQ0ryXQJGg3U3PcEjXwfg== dependencies: lodash "^4.17.10" postcss "^7.0.2" - postcss-sorting "^4.0.0" + postcss-sorting "^4.1.0" -stylelint-scss@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.3.1.tgz#5061bca7cc586eb05972caa31b5e627fa3296235" - integrity sha512-jPyxkFQh9nk4DIs8lUKCRjlkKSsaqMUQwwZ10Y0fvWB50Lk0QnW6nezhmeYtRR7wZJq8iNTYeYOTyU8chRSoBQ== +stylelint-order@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-3.1.1.tgz#ba9ea6844d1482f97f31204e7c9605c7b792c294" + integrity sha512-4gP/r8j/6JGZ/LL41b2sYtQqfwZl4VSqTp7WeIwI67v/OXNQ08dnn64BGXNwAUSgb2+YIvIOxQaMzqMyQMzoyQ== dependencies: - lodash "^4.17.10" + lodash "^4.17.15" + postcss "^7.0.17" + postcss-sorting "^5.0.1" + +stylelint@^12.0.0: + version "12.0.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-12.0.1.tgz#5b1f3bf7333320acce322b49852c8b85e94ce7e4" + integrity sha512-1mn39pqZiC/e8KUPoRMc1WMM83Upb2ILaSGxkCvKxALHutEOs2txcPQocJiXdO4Zx4FY4prGqjlkwrbthAxqig== + dependencies: + autoprefixer "^9.7.1" + balanced-match "^1.0.0" + chalk "^3.0.0" + cosmiconfig "^6.0.0" + debug "^4.1.1" + execall "^2.0.0" + file-entry-cache "^5.0.1" + get-stdin "^7.0.0" + global-modules "^2.0.0" + globby "^9.2.0" + globjoin "^0.1.4" + html-tags "^3.1.0" + ignore "^5.1.4" + import-lazy "^4.0.0" + imurmurhash "^0.1.4" + known-css-properties "^0.17.0" + leven "^3.1.0" + lodash "^4.17.15" + log-symbols "^3.0.0" + mathml-tag-names "^2.1.1" + meow "^5.0.0" + micromatch "^4.0.2" + normalize-selector "^0.2.0" + postcss "^7.0.21" + postcss-html "^0.36.0" + postcss-jsx "^0.36.3" + postcss-less "^3.1.4" + postcss-markdown "^0.36.0" postcss-media-query-parser "^0.2.3" + postcss-reporter "^6.0.1" postcss-resolve-nested-selector "^0.1.1" - postcss-selector-parser "^4.0.0" - postcss-value-parser "^3.3.0" + postcss-safe-parser "^4.0.1" + postcss-sass "^0.4.2" + postcss-scss "^2.0.0" + postcss-selector-parser "^3.1.0" + postcss-syntax "^0.36.2" + postcss-value-parser "^4.0.2" + resolve-from "^5.0.0" + slash "^3.0.0" + specificity "^0.4.1" + string-width "^4.2.0" + strip-ansi "^6.0.0" + style-search "^0.1.0" + sugarss "^2.0.0" + svg-tags "^1.0.0" + table "^5.4.6" + v8-compile-cache "^2.1.0" + write-file-atomic "^3.0.1" -stylelint@^9.5.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.6.0.tgz#f0b366f33b6ccf3e5096d60722ed27b6470b41d8" - integrity sha512-Q0UcbFPRiC+3FejNyIBAWbMuKwZNAC0kvZtGQbjwA9LMKDod6xMlBsiIigQxmE3ywpmTeFj3mkG5Jj36EfC7XA== +stylelint@^9.10.1: + version "9.10.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.10.1.tgz#5f0ee3701461dff1d68284e1386efe8f0677a75d" + integrity sha512-9UiHxZhOAHEgeQ7oLGwrwoDR8vclBKlSX7r4fH0iuu0SfPwFaLkb1c7Q2j1cqg9P7IDXeAV2TvQML/fRQzGBBQ== dependencies: autoprefixer "^9.0.0" balanced-match "^1.0.0" @@ -12631,42 +13653,43 @@ stylelint@^9.5.0: cosmiconfig "^5.0.0" debug "^4.0.0" execall "^1.0.0" - file-entry-cache "^2.0.0" + file-entry-cache "^4.0.0" get-stdin "^6.0.0" - globby "^8.0.0" + global-modules "^2.0.0" + globby "^9.0.0" globjoin "^0.1.4" html-tags "^2.0.0" - ignore "^4.0.0" + ignore "^5.0.4" import-lazy "^3.1.0" imurmurhash "^0.1.4" - known-css-properties "^0.8.0" + known-css-properties "^0.11.0" leven "^2.1.0" lodash "^4.17.4" log-symbols "^2.0.0" mathml-tag-names "^2.0.1" meow "^5.0.0" - micromatch "^2.3.11" + micromatch "^3.1.10" normalize-selector "^0.2.0" pify "^4.0.0" - postcss "^7.0.0" - postcss-html "^0.34.0" - postcss-jsx "^0.34.0" - postcss-less "^2.0.0" - postcss-markdown "^0.34.0" + postcss "^7.0.13" + postcss-html "^0.36.0" + postcss-jsx "^0.36.0" + postcss-less "^3.1.0" + postcss-markdown "^0.36.0" postcss-media-query-parser "^0.2.3" postcss-reporter "^6.0.0" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^4.0.0" - postcss-sass "^0.3.0" + postcss-sass "^0.3.5" postcss-scss "^2.0.0" postcss-selector-parser "^3.1.0" - postcss-styled "^0.34.0" - postcss-syntax "^0.34.0" + postcss-syntax "^0.36.2" postcss-value-parser "^3.3.0" resolve-from "^4.0.0" signal-exit "^3.0.2" + slash "^2.0.0" specificity "^0.4.1" - string-width "^2.1.0" + string-width "^3.0.0" style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" @@ -12693,7 +13716,7 @@ supports-color@5.4.0: dependencies: has-flag "^3.0.0" -supports-color@5.5.0, supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@5.5.0, supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -12712,12 +13735,19 @@ supports-color@^3.1.2, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: - has-flag "^2.0.0" + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" supports-color@~5.0.0: version "5.0.1" @@ -12764,18 +13794,6 @@ tabbable@^3.1.1: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-3.1.1.tgz#db7512f28a9a1ed16e4275bd190131be9d5ad8e9" integrity sha512-583MHIOwictf7+zbxqO/L5fBqMN6Li4SJ1XTKQA9WzHRA7c2BB+D+Ny7Y6kGqU2u+rHK59+oRzrBvMU53aZz+A== -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - table@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" @@ -12788,20 +13806,15 @@ table@^4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" -table@^5.0.0, table@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/table/-/table-5.1.0.tgz#69a54644f6f01ad1628f8178715b408dc6bf11f7" - integrity sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg== +table@^5.0.0, table@^5.2.3, table@^5.4.6: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - ajv "^6.5.3" - lodash "^4.17.10" - slice-ansi "1.0.0" - string-width "^2.1.1" - -tapable@^0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" tapable@^1.0.0, tapable@^1.1.0: version "1.1.0" @@ -12843,13 +13856,18 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" -tempfile@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" - integrity sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I= +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempfile@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-3.0.0.tgz#5376a3492de7c54150d0cc0612c3f00e2cdaf76c" + integrity sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw== dependencies: - os-tmpdir "^1.0.0" - uuid "^2.0.1" + temp-dir "^2.0.0" + uuid "^3.3.2" test-exclude@^4.2.1: version "4.2.3" @@ -12872,7 +13890,7 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -12895,6 +13913,13 @@ through2@^2.0.0, through2@^2.0.2: readable-stream "^2.1.5" xtend "~4.0.1" +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -12977,6 +14002,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -13066,11 +14098,23 @@ tryer@^1.0.0: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +tslib@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -13100,6 +14144,16 @@ type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" @@ -13108,23 +14162,22 @@ type-is@~1.6.16: media-typer "0.3.0" mime-types "~2.1.18" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript-eslint-parser@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-16.0.1.tgz#b40681c7043b222b9772748b700a000b241c031b" - integrity sha512-IKawLTu4A2xN3aN/cPLxvZ0bhxZHILGDKTZWvWNJ3sLNhJ3PjfMEDQmR2VMpdRPrmWOadgWXRwjLBzSA8AGsaQ== - dependencies: - lodash.unescape "4.0.1" - semver "5.5.0" - -typescript@^2.5.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" - integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== +typescript@^3.7.3: + version "3.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.4.tgz#1743a5ec5fef6a1fa9f3e4708e33c81c73876c19" + integrity sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw== uglify-es@3.3.4, uglify-es@^3.3.4: version "3.3.4" @@ -13198,6 +14251,11 @@ unherit@^1.0.4: inherits "^2.0.1" xtend "^4.0.1" +unicode-12.1.0@0.8: + version "0.8.0" + resolved "https://registry.yarnpkg.com/unicode-12.1.0/-/unicode-12.1.0-0.8.0.tgz#260f6dd899eefd42a8eae550bcbb62654c90c79d" + integrity sha512-OhxidkE3tKlMAouqWtdYtDP2RHVIo1lNdjEruNdVxLrACcbw79TaOcupYKxz6F7ldC1nx8CDygzN5kGmXAU60Q== + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -13233,6 +14291,20 @@ unified@^6.0.0: vfile "^2.0.0" x-is-string "^0.1.0" +unified@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" + integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== + dependencies: + "@types/unist" "^2.0.0" + "@types/vfile" "^3.0.0" + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^3.0.0" + x-is-string "^0.1.0" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -13291,6 +14363,13 @@ unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== +unist-util-stringify-position@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz#5a3866e7138d55974b640ec69a94bc19e0f3fa12" + integrity sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA== + dependencies: + "@types/unist" "^2.0.2" + unist-util-visit-parents@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz#63fffc8929027bee04bfef7d2cce474f71cb6217" @@ -13417,7 +14496,7 @@ user-home@^1.1.1: resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= -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= @@ -13449,11 +14528,6 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= - uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" @@ -13464,6 +14538,11 @@ v8-compile-cache@^2.0.2: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== +v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + v8flags@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" @@ -13503,6 +14582,14 @@ vfile-location@^2.0.0: resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.3.tgz#083ba80e50968e8d420be49dd1ea9a992131df77" integrity sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A== +vfile-message@*: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.2.tgz#75ba05090ec758fa8420f2c11ce049bcddd8cf3e" + integrity sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.0.1.tgz#51a2ccd8a6b97a7980bb34efb9ebde9632e93677" @@ -13520,6 +14607,16 @@ vfile@^2.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" + integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== + dependencies: + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + vlq@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" @@ -13542,18 +14639,6 @@ void-elements@^2.0.1: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -vue-eslint-parser@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" - integrity sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw== - dependencies: - debug "^3.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - lodash "^4.17.4" - w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" @@ -13792,7 +14877,7 @@ webpack-merge@^4.1.3: dependencies: lodash "^4.17.5" -webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0: +webpack-sources@^1.1.0, webpack-sources@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== @@ -13903,13 +14988,20 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1, which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: +which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -13942,6 +15034,11 @@ with@^5.0.0: acorn "^3.1.0" acorn-globals "^3.0.0" +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" @@ -13972,6 +15069,14 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -13986,15 +15091,25 @@ write-file-atomic@^2.1.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write-file-atomic@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b" + integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write-file-stdout@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/write-file-stdout/-/write-file-stdout-0.0.2.tgz#c252d7c7c5b1b402897630e3453c7bfe690d9ca1" integrity sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE= -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" @@ -14063,6 +15178,13 @@ yallist@^3.0.0, yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= +yaml@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" + integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== + dependencies: + "@babel/runtime" "^7.6.3" + yargs-parser@^10.0.0, yargs-parser@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" @@ -14092,13 +15214,6 @@ yargs-parser@^5.0.0: dependencies: camelcase "^3.0.0" -yargs-parser@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" - integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -14106,24 +15221,6 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@10.0.3: - version "10.0.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae" - integrity sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw== - dependencies: - cliui "^3.2.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^8.0.0" - yargs@12.0.2, yargs@^12.0.2: version "12.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"