diff --git a/.eslintrc.yml b/.eslintrc.yml index 8e667de7c..b6829dd81 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -10,6 +10,10 @@ globals: extends: - 'eslint:recommended' + - prettier + +plugins: + - import parserOptions: ecmaVersion: 2018 @@ -17,276 +21,9 @@ parserOptions: ecmaFeatures: modules: true -# # http://eslint.org/docs/rules/ rules: -# # Possible Errors -# no-await-in-loop: off -# no-cond-assign: error -# no-console: off -# no-constant-condition: error no-control-regex: off -# no-debugger: error -# no-dupe-args: error -# no-dupe-keys: error -# no-duplicate-case: error -# no-empty-character-class: error no-empty: warn -# no-ex-assign: error -# no-extra-boolean-cast: error -# no-extra-parens: off -# no-extra-semi: error -# no-func-assign: error -# no-inner-declarations: -# - error -# - functions -# no-invalid-regexp: error -# no-irregular-whitespace: error -# no-negated-in-lhs: error -# no-obj-calls: error -# no-prototype-builtins: off -# no-regex-spaces: error -# no-sparse-arrays: error -# no-template-curly-in-string: off -# no-unexpected-multiline: error -# no-unreachable: error -# no-unsafe-finally: off -# no-unsafe-negation: off -# use-isnan: error -# valid-jsdoc: off -# valid-typeof: error - -# # Best Practices -# accessor-pairs: error -# array-callback-return: off -# block-scoped-var: off -# class-methods-use-this: off -# complexity: -# - error -# - 6 -# consistent-return: off -# curly: off -# default-case: off -# dot-location: off -# dot-notation: off -# eqeqeq: error -# guard-for-in: error -# no-alert: error -# no-caller: error -# no-case-declarations: error -# no-div-regex: error -# no-else-return: off no-empty-function: warn -# no-empty-pattern: error -# no-eq-null: error -# no-eval: error -# no-extend-native: error -# no-extra-bind: error -# no-extra-label: off -# no-fallthrough: error -# no-floating-decimal: off -# no-global-assign: off -# no-implicit-coercion: off -# no-implied-eval: error -# no-invalid-this: off -# no-iterator: error -# no-labels: -# - error -# - allowLoop: true -# allowSwitch: true -# no-lone-blocks: error -# no-loop-func: error -# no-magic-number: off -# no-multi-spaces: off -# no-multi-str: off -# no-native-reassign: error -# no-new-func: error -# no-new-wrappers: error -# no-new: error -# no-octal-escape: error -# no-octal: error -# no-param-reassign: off -# no-proto: error -# no-redeclare: error -# no-restricted-properties: off -# no-return-assign: error -# no-return-await: off -# no-script-url: error -# no-self-assign: off -# no-self-compare: error -# no-sequences: off -# no-throw-literal: off -# no-unmodified-loop-condition: off -# no-unused-expressions: error -# no-unused-labels: off -# no-useless-call: error -# no-useless-concat: error no-useless-escape: off -# no-useless-return: off -# no-void: error -# no-warning-comments: off -# no-with: error -# prefer-promise-reject-errors: off -# radix: error -# require-await: off -# vars-on-top: off -# wrap-iife: error -# yoda: off - -# # Strict -# strict: off - -# # Variables -# init-declarations: off -# no-catch-shadow: error -# no-delete-var: error -# no-label-var: error -# no-restricted-globals: off -# no-shadow-restricted-names: error -# no-shadow: off -# no-undef-init: error -# no-undef: off -# no-undefined: off -# no-unused-vars: -# - warn -# - -# vars: local -# no-use-before-define: off - -# # Node.js and CommonJS -# callback-return: error -# global-require: error -# handle-callback-err: error -# no-mixed-requires: off -# no-new-require: off -# no-path-concat: error -# no-process-env: off -# no-process-exit: error -# no-restricted-modules: off -# no-sync: off - -# # Stylistic Issues -# array-bracket-spacing: off -# block-spacing: off -# brace-style: off -# camelcase: off -# capitalized-comments: off -# comma-dangle: -# - error -# - never -# comma-spacing: off -# comma-style: off -# computed-property-spacing: off -# consistent-this: off -# eol-last: off -# func-call-spacing: off -# func-name-matching: off -# func-names: off -# func-style: off -# id-length: off -# id-match: off -# indent: off -# jsx-quotes: off -# key-spacing: off -# keyword-spacing: off -# line-comment-position: off -# linebreak-style: -# - error -# - unix -# lines-around-comment: off -# lines-around-directive: off -# max-depth: off -# max-len: off -# max-nested-callbacks: off -# max-params: off -# max-statements-per-line: off -# max-statements: -# - error -# - 30 -# multiline-ternary: off -# new-cap: off -# new-parens: off -# newline-after-var: off -# newline-before-return: off -# newline-per-chained-call: off -# no-array-constructor: off -# no-bitwise: off -# no-continue: off -# no-inline-comments: off -# no-lonely-if: off -# no-mixed-operators: off -# no-mixed-spaces-and-tabs: off -# no-multi-assign: off -# no-multiple-empty-lines: off -# no-negated-condition: off -# no-nested-ternary: off -# no-new-object: off -# no-plusplus: off -# no-restricted-syntax: off -# no-spaced-func: off -# no-tabs: off -# no-ternary: off -# no-trailing-spaces: off -# no-underscore-dangle: off -# no-unneeded-ternary: off -# object-curly-newline: off -# object-curly-spacing: off -# object-property-newline: off -# one-var-declaration-per-line: off -# one-var: off -# operator-assignment: off -# operator-linebreak: off -# padded-blocks: off -# quote-props: off -# quotes: -# - error -# - single -# require-jsdoc: off -# semi-spacing: off -# semi: -# - error -# - always -# sort-keys: off -# sort-vars: off -# space-before-blocks: off -# space-before-function-paren: off -# space-in-parens: off -# space-infix-ops: off -# space-unary-ops: off -# spaced-comment: off -# template-tag-spacing: off -# unicode-bom: off -# wrap-regex: off - -# # ECMAScript 6 -# arrow-body-style: off -# arrow-parens: off -# arrow-spacing: off -# constructor-super: off -# generator-star-spacing: off -# no-class-assign: off -# no-confusing-arrow: off -# no-const-assign: off -# no-dupe-class-members: off -# no-duplicate-imports: off -# no-new-symbol: off -# no-restricted-imports: off -# no-this-before-super: off -# no-useless-computed-key: off -# no-useless-constructor: off -# no-useless-rename: off -# no-var: off -# object-shorthand: off -# prefer-arrow-callback: off -# prefer-const: off -# prefer-destructuring: off -# prefer-numeric-literals: off -# prefer-rest-params: off -# prefer-reflect: off -# prefer-spread: off -# prefer-template: off -# require-yield: off -# rest-spread-spacing: off -# sort-imports: off -# symbol-description: off -# template-curly-spacing: off -# yield-star-spacing: off + import/order: error diff --git a/app/docker/views/containers/create/createContainerController.js b/app/docker/views/containers/create/createContainerController.js index 95de9547f..81d19a070 100644 --- a/app/docker/views/containers/create/createContainerController.js +++ b/app/docker/views/containers/create/createContainerController.js @@ -1,8 +1,8 @@ import _ from 'lodash-es'; +import { PorImageRegistryModel } from 'Docker/models/porImageRegistry'; import { ContainerCapabilities, ContainerCapability } from '../../../models/containerCapabilities'; import { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel'; import { ContainerDetailsViewModel } from '../../../models/container'; -import { PorImageRegistryModel } from 'Docker/models/porImageRegistry'; angular.module('portainer.docker').controller('CreateContainerController', [ '$q', diff --git a/app/docker/views/services/create/createServiceController.js b/app/docker/views/services/create/createServiceController.js index 212519bd5..173dcfeda 100644 --- a/app/docker/views/services/create/createServiceController.js +++ b/app/docker/views/services/create/createServiceController.js @@ -1,6 +1,6 @@ import _ from 'lodash-es'; -import { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel'; import { PorImageRegistryModel } from 'Docker/models/porImageRegistry'; +import { AccessControlFormData } from '../../../../portainer/components/accessControlForm/porAccessControlFormModel'; require('./includes/update-restart.html'); require('./includes/secret.html'); diff --git a/app/extensions/registry-management/views/configure/configureRegistryController.js b/app/extensions/registry-management/views/configure/configureRegistryController.js index b4240e5a2..588f26876 100644 --- a/app/extensions/registry-management/views/configure/configureRegistryController.js +++ b/app/extensions/registry-management/views/configure/configureRegistryController.js @@ -1,5 +1,5 @@ -import { RegistryManagementConfigurationDefaultModel } from '../../../../portainer/models/registry'; import { RegistryTypes } from 'Extensions/registry-management/models/registryTypes'; +import { RegistryManagementConfigurationDefaultModel } from '../../../../portainer/models/registry'; angular.module('portainer.extensions.registrymanagement').controller('ConfigureRegistryController', [ '$scope', diff --git a/app/portainer/components/accessControlPanel/porAccessControlPanelController.js b/app/portainer/components/accessControlPanel/porAccessControlPanelController.js index 8800a6aed..97497a7fc 100644 --- a/app/portainer/components/accessControlPanel/porAccessControlPanelController.js +++ b/app/portainer/components/accessControlPanel/porAccessControlPanelController.js @@ -1,7 +1,7 @@ import _ from 'lodash-es'; -import { AccessControlPanelData } from './porAccessControlPanelModel'; import { ResourceControlOwnership as RCO } from 'Portainer/models/resourceControl/resourceControlOwnership'; import { ResourceControlTypeString as RCTS, ResourceControlTypeInt as RCTI } from 'Portainer/models/resourceControl/resourceControlTypes'; +import { AccessControlPanelData } from './porAccessControlPanelModel'; angular.module('portainer.app').controller('porAccessControlPanelController', [ '$q', diff --git a/app/portainer/services/api/registryService.js b/app/portainer/services/api/registryService.js index bc0315dcc..375b6ee4f 100644 --- a/app/portainer/services/api/registryService.js +++ b/app/portainer/services/api/registryService.js @@ -1,7 +1,7 @@ import _ from 'lodash-es'; -import { RegistryViewModel, RegistryCreateRequest } from '../../models/registry'; import { PorImageRegistryModel } from 'Docker/models/porImageRegistry'; import { RegistryTypes } from 'Extensions/registry-management/models/registryTypes'; +import { RegistryViewModel, RegistryCreateRequest } from '../../models/registry'; angular.module('portainer.app').factory('RegistryService', [ '$q', diff --git a/app/portainer/views/registries/create/createRegistryController.js b/app/portainer/views/registries/create/createRegistryController.js index da09c6db4..50cdb265b 100644 --- a/app/portainer/views/registries/create/createRegistryController.js +++ b/app/portainer/views/registries/create/createRegistryController.js @@ -1,5 +1,5 @@ -import { RegistryDefaultModel } from '../../../models/registry'; import { RegistryTypes } from 'Extensions/registry-management/models/registryTypes'; +import { RegistryDefaultModel } from '../../../models/registry'; angular.module('portainer.app').controller('CreateRegistryController', [ '$scope', diff --git a/gruntfile.js b/gruntfile.js index 79426a54b..069440c4f 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -1,8 +1,8 @@ +var os = require('os'); +var loadGruntTasks = require('load-grunt-tasks'); const webpackDevConfig = require('./webpack/webpack.develop'); const webpackProdConfig = require('./webpack/webpack.production'); -var loadGruntTasks = require('load-grunt-tasks'); -var os = require('os'); var arch = os.arch(); if (arch === 'x64') arch = 'amd64'; diff --git a/package.json b/package.json index 05f0d897c..1b5ba2b59 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,9 @@ "css-loader": "^1.0.0", "cssnano": "^3.10.0", "eslint": "5.16.0", + "eslint-config-prettier": "^6.10.1", "eslint-loader": "^2.1.2", + "eslint-plugin-import": "^2.20.2", "file-loader": "^1.1.11", "grunt": "~0.4.0", "grunt-cli": "^1.2.0", diff --git a/webpack/webpack.common.js b/webpack/webpack.common.js index 55fcfc1ea..9fb30a6b3 100644 --- a/webpack/webpack.common.js +++ b/webpack/webpack.common.js @@ -1,5 +1,4 @@ const path = require('path'); -const pkg = require('../package.json'); const { ProvidePlugin, IgnorePlugin, DefinePlugin } = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const WebpackBuildNotifierPlugin = require('webpack-build-notifier'); @@ -7,7 +6,7 @@ const CleanTerminalPlugin = require('clean-terminal-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const LodashModuleReplacementPlugin = require('lodash-webpack-plugin'); -const npmPackage = require('../package.json'); +const pkg = require('../package.json'); const projectRoot = path.resolve(__dirname, '..'); module.exports = { @@ -60,8 +59,8 @@ module.exports = { new HtmlWebpackPlugin({ template: './app/index.html', templateParameters: { - name: npmPackage.name, - author: npmPackage.author, + name: pkg.name, + author: pkg.author, }, manifest: './assets/ico/manifest.json', }), diff --git a/yarn.lock b/yarn.lock index d9091e7ad..e079d1da7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1377,6 +1377,15 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== +array-includes@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + array-slice@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" @@ -1399,6 +1408,14 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flat@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -2789,6 +2806,11 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.3, content-disposition@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -3202,7 +3224,7 @@ dateformat@^2.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= -debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3486,6 +3508,14 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + doctrine@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -3744,7 +3774,7 @@ errorhandler@~1.4.2: accepts "~1.3.0" escape-html "~1.0.3" -es-abstract@^1.16.3, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: +es-abstract@^1.16.3, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: version "1.17.5" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== @@ -3893,6 +3923,21 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-config-prettier@^6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a" + integrity sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ== + dependencies: + get-stdin "^6.0.0" + +eslint-import-resolver-node@^0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + eslint-loader@^2.1.2: version "2.2.1" resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" @@ -3904,6 +3949,32 @@ eslint-loader@^2.1.2: object-hash "^1.1.4" rimraf "^2.6.1" +eslint-module-utils@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.20.2: + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + 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.12.0" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -4600,6 +4671,13 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4875,6 +4953,11 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -6974,6 +7057,16 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + loader-fs-cache@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" @@ -7015,6 +7108,14 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -8382,6 +8483,13 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^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" @@ -8389,6 +8497,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: 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" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -8446,6 +8561,11 @@ p-timeout@^2.0.1: dependencies: p-finally "^1.0.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -8638,6 +8758,13 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.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" @@ -8722,6 +8849,13 @@ pkg-dir@^1.0.0: 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" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -9391,6 +9525,14 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -9400,6 +9542,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -9739,7 +9890,7 @@ resolve@0.5.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.5.1.tgz#15e4a222c4236bcd4cf85454412c2d0fb6524576" integrity sha1-FeSiIsQja81M+FRUQSwtD7ZSRXY= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==