From fa4d51360b01e71e1361b24195aeb364ed61e516 Mon Sep 17 00:00:00 2001 From: muerwre Date: Fri, 9 Aug 2019 12:23:07 +0700 Subject: [PATCH] eslint fix --- .eslintrc.js | 27 +- .prettierrc => .prettierrrrrrc | 2 +- .vscode/settings.json | 20 + package-lock.json | 518 ++++-------------- package.json | 27 +- .../containers/BlurWrapper/index.tsx | 4 +- src/components/containers/Card/index.tsx | 15 +- src/components/containers/CellGrid/index.tsx | 21 +- src/components/containers/Grid/index.tsx | 18 +- src/components/containers/Group/index.tsx | 2 +- src/components/containers/Padder/index.tsx | 19 +- src/components/containers/Panel/index.tsx | 11 +- src/components/containers/Scroll/index.tsx | 6 +- src/components/containers/TagField/index.tsx | 4 +- src/components/editors/EditorPanel/index.tsx | 4 +- .../editors/EditorUploadButton/index.tsx | 21 + .../styles.scss | 0 src/components/editors/ImageEditor/index.tsx | 53 +- src/components/editors/ImageGrid/index.tsx | 77 +-- .../editors/ImageUploadButton/index.tsx | 21 - src/components/flow/Cell/index.tsx | 21 +- src/components/flow/HeroPlaceholder/index.tsx | 4 +- src/components/flow/TestGrid/index.tsx | 2 +- src/components/input/ArcProgress/index.tsx | 2 +- src/components/input/Button/index.tsx | 65 ++- src/components/input/Icon/index.tsx | 12 +- src/components/input/Info/index.tsx | 9 +- src/components/input/InputText/index.tsx | 9 +- src/components/input/TextInput/index.tsx | 16 +- src/components/main/GodRays/index.tsx | 26 +- src/components/main/Header/index.tsx | 58 +- src/components/main/SidePane/index.tsx | 12 +- src/components/node/Comment/index.tsx | 27 +- src/components/node/MenuButton/index.tsx | 11 +- src/components/node/NodeNoComments/index.tsx | 12 +- src/components/node/NodePanel/index.tsx | 22 +- src/components/node/NodeRelated/index.tsx | 6 +- src/components/node/Tag/index.tsx | 5 +- src/components/node/Tags/index.tsx | 8 +- .../ParagraphPlaceholder/index.tsx | 4 +- src/components/upload/ImageUpload/index.tsx | 22 +- src/containers/App.tsx | 36 +- src/containers/dialogs/EditorDialog/index.tsx | 24 +- src/containers/dialogs/LoginDialog/index.tsx | 14 +- src/containers/dialogs/Modal/index.tsx | 4 +- src/containers/dialogs/ScrollDialog/index.tsx | 8 +- .../examples/EditorExample/index.tsx | 38 +- .../examples/ImageExample/index.tsx | 36 +- src/containers/flow/FlowLayout/index.tsx | 2 +- src/containers/main/MainLayout/index.tsx | 21 +- src/containers/node/NodeLayout/index.tsx | 2 +- src/redux/auth/actions.ts | 6 +- src/redux/auth/api.ts | 11 +- src/redux/auth/constants.ts | 16 +- src/redux/auth/handlers.ts | 6 +- src/redux/auth/reducer.ts | 8 +- src/redux/auth/sagas.ts | 18 +- src/redux/auth/selectors.ts | 2 +- src/redux/auth/transforms.ts | 6 +- src/redux/modal/selectors.ts | 2 +- src/redux/node/constants.ts | 4 +- src/redux/node/handlers.ts | 2 +- src/redux/node/reducer.ts | 10 +- src/redux/node/sagas.ts | 2 +- src/redux/node/selectors.ts | 6 +- src/redux/store.ts | 43 +- src/redux/types.ts | 8 +- src/redux/uploads/actions.ts | 16 +- src/redux/uploads/constants.ts | 6 +- src/redux/uploads/handlers.ts | 26 +- src/redux/uploads/mocks.ts | 10 +- src/redux/uploads/reducer.ts | 8 +- src/redux/uploads/sagas.ts | 10 +- src/redux/uploads/selectors.ts | 2 +- src/sprites/Sprites.tsx | 35 +- src/utils/api/index.ts | 13 +- src/utils/dom.ts | 1 - src/utils/fn.ts | 2 +- src/utils/hooks.ts | 18 +- src/utils/reducer.ts | 4 +- src/utils/uploader.ts | 4 +- 81 files changed, 741 insertions(+), 972 deletions(-) rename .prettierrc => .prettierrrrrrc (55%) create mode 100644 .vscode/settings.json create mode 100644 src/components/editors/EditorUploadButton/index.tsx rename src/components/editors/{ImageUploadButton => EditorUploadButton}/styles.scss (100%) delete mode 100644 src/components/editors/ImageUploadButton/index.tsx diff --git a/.eslintrc.js b/.eslintrc.js index b7cdffce..874f3dae 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,26 +1,27 @@ module.exports = { - extends: ['airbnb', 'airbnb-base', 'plugin:@typescript-eslint/recommended', 'prettier'], + extends: ['airbnb', 'airbnb-base', 'prettier/@typescript-eslint', 'plugin:@typescript-eslint/recommended'], // "parser": "babel-eslint", parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { - jsx: true + jsx: true, }, - project: './tsconfig.json' + project: './tsconfig.json', }, - plugins: ['@typescript-eslint', 'react', 'jsx-a11y', 'import', 'react-hooks', 'prettier'], + plugins: ['@typescript-eslint', 'react', 'jsx-a11y', 'import', 'react-hooks'], settings: { 'import/resolver': { // node: { // extensions: ['.js', '.jsx', '.ts', '.tsx'], // }, - typescript: {} - } + typescript: {}, + }, }, rules: { indent: ['error', 2], '@typescript-eslint/explicit-function-return-type': 0, - '@typescript-eslint/indent': ['error', 2], + '@typescript-eslint/indent': ['warn', 2], + "indent": "off", 'comma-dangle': 0, 'no-restricted-syntax': 1, 'react/prop-types': 0, @@ -44,16 +45,16 @@ module.exports = { 'react-hooks/rules-of-hooks': 'error', 'react-hooks/exhaustive-deps': 'warn', 'no-nested-ternary': 1, - 'arrow-parens': 0, 'import/prefer-default-export': 0, - 'no-return-await': 0, - 'prefer-promise-reject-errors': 0, - 'import/order': 0 + 'max-line-length': [true, 100], + // 'max-len': 100, + // 'max-len': { "code": 100 }, + 'max-len': ["warn", { "code": 100 }] }, globals: { document: false, window: false, HTMLInputElement: false, - HTMLDivElement: false - } + HTMLDivElement: false, + }, }; diff --git a/.prettierrc b/.prettierrrrrrc similarity index 55% rename from .prettierrc rename to .prettierrrrrrc index 3f584f60..5ac85e27 100644 --- a/.prettierrc +++ b/.prettierrrrrrc @@ -1,4 +1,4 @@ { - "printWidth": 120, + "printWidth": 100, "singleQuote": true } diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..d7177d71 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "eslint.enable": true, + "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], + "editor.rulers": [100], + "prettier.eslintIntegration": true, + "editor.formatOnSave": true, + "editor.formatOnSaveTimeout": 750, + "[javascript]": { + "editor.formatOnSave": true, + "editor.formatOnSaveTimeout": 750, + }, + "[typescript]": { + "editor.formatOnSave": true, + "editor.formatOnSaveTimeout": 750, + }, + "[typescriptreact]": { + "editor.formatOnSave": true, + "editor.formatOnSaveTimeout": 750, + }, +} diff --git a/package-lock.json b/package-lock.json index 37232e50..fd4aae2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2659,8 +2659,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "@types/node": { "version": "11.11.1", @@ -2969,8 +2968,7 @@ "acorn": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz", - "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==", - "dev": true + "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==" }, "acorn-dynamic-import": { "version": "4.0.0", @@ -2981,8 +2979,7 @@ "acorn-jsx": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==" }, "add-px-to-style": { "version": "1.0.0", @@ -3014,7 +3011,6 @@ "version": "6.10.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -3048,8 +3044,7 @@ "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, "ansi-html": { "version": "0.0.7", @@ -3120,7 +3115,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, "requires": { "ast-types-flow": "0.0.7", "commander": "^2.11.0" @@ -3153,8 +3147,7 @@ "array-find": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=" }, "array-find-index": { "version": "1.0.2", @@ -3171,7 +3164,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "dev": true, "requires": { "define-properties": "^1.1.2", "es-abstract": "^1.7.0" @@ -3212,7 +3204,6 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -3223,7 +3214,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, "requires": { "util": "0.10.3" }, @@ -3231,14 +3221,12 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, "requires": { "inherits": "2.0.1" } @@ -3259,14 +3247,12 @@ "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" }, "async": { "version": "1.5.2", @@ -3431,7 +3417,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, "requires": { "ast-types-flow": "0.0.7" } @@ -4539,8 +4524,7 @@ "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "batch": { "version": "0.6.1", @@ -4591,8 +4575,7 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "body-parser": { "version": "1.18.3", @@ -4695,14 +4678,12 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -4716,7 +4697,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -4727,7 +4707,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -4738,8 +4717,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -4747,7 +4725,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" @@ -4757,7 +4734,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, "requires": { "bn.js": "^4.1.1", "browserify-rsa": "^4.0.0", @@ -4772,7 +4748,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, "requires": { "pako": "~1.0.5" } @@ -4792,7 +4767,6 @@ "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -4802,8 +4776,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -4822,8 +4795,7 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "builtin-modules": { "version": "1.1.1", @@ -4833,8 +4805,7 @@ "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "bytes": { "version": "3.0.0", @@ -4908,8 +4879,7 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camel-case": { "version": "3.0.0", @@ -5004,8 +4974,7 @@ "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "chokidar": { "version": "2.1.2", @@ -5046,7 +5015,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -5122,7 +5090,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { "restore-cursor": "^2.0.0" } @@ -5130,8 +5097,7 @@ "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { "version": "4.1.0", @@ -5274,8 +5240,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.2.1", @@ -5412,8 +5377,7 @@ "confusing-browser-globals": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz", - "integrity": "sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ==", - "dev": true + "integrity": "sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ==" }, "connect-history-api-fallback": { "version": "1.6.0", @@ -5434,7 +5398,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, "requires": { "date-now": "^0.1.4" } @@ -5447,14 +5410,12 @@ "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" }, "content-disposition": { "version": "0.5.2", @@ -5561,7 +5522,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" @@ -5571,7 +5531,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -5584,7 +5543,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -5598,7 +5556,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -5611,7 +5568,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -6525,8 +6481,7 @@ "damerau-levenshtein": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", - "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==", - "dev": true + "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==" }, "dashdash": { "version": "1.14.1", @@ -6544,14 +6499,12 @@ "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -6576,14 +6529,12 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", - "dev": true + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" }, "default-gateway": { "version": "4.2.0", @@ -6599,7 +6550,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, "requires": { "foreach": "^2.0.5", "object-keys": "^1.0.8" @@ -6671,7 +6621,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -6717,7 +6666,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -6766,7 +6714,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "requires": { "esutils": "^2.0.2" } @@ -6816,8 +6763,7 @@ "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "domelementtype": { "version": "1.3.1", @@ -6934,7 +6880,6 @@ "version": "6.4.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -6948,8 +6893,7 @@ "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "emojis-list": { "version": "2.1.0", @@ -7016,7 +6960,6 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", - "dev": true, "requires": { "es-to-primitive": "^1.1.1", "function-bind": "^1.1.1", @@ -7029,7 +6972,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, "requires": { "is-callable": "^1.1.1", "is-date-object": "^1.0.1", @@ -7083,7 +7025,6 @@ "version": "5.16.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.9.1", @@ -7127,7 +7068,6 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, "requires": { "@babel/highlight": "^7.0.0" } @@ -7136,7 +7076,6 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", - "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", @@ -7146,14 +7085,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -7162,7 +7099,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -7173,7 +7109,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -7182,7 +7117,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -7191,20 +7125,17 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "import-fresh": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7213,14 +7144,12 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -7229,20 +7158,17 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7251,7 +7177,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -7262,7 +7187,6 @@ "version": "17.1.1", "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz", "integrity": "sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg==", - "dev": true, "requires": { "eslint-config-airbnb-base": "^13.2.0", "object.assign": "^4.1.0", @@ -7273,7 +7197,6 @@ "version": "13.2.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz", "integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==", - "dev": true, "requires": { "confusing-browser-globals": "^1.0.5", "object.assign": "^4.1.0", @@ -7284,7 +7207,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz", "integrity": "sha512-vDrcCFE3+2ixNT5H83g28bO/uYAwibJxerXPj+E7op4qzBCsAV36QfvdAyVOoNxKAH2Os/e01T/2x++V0LPukA==", - "dev": true, "requires": { "get-stdin": "^6.0.0" }, @@ -7292,8 +7214,7 @@ "get-stdin": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" } } }, @@ -7301,7 +7222,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-import-resolver-babel-module/-/eslint-import-resolver-babel-module-4.0.0.tgz", "integrity": "sha512-aPj0+pG0H3HCaMD9eRDYEzPdMyKrLE2oNhAzTXd2w86ZBe3s7drSrrPwVTfzO1CBp13FGk8S84oRmZHZvSo0mA==", - "dev": true, "requires": { "pkg-up": "^2.0.0", "resolve": "^1.4.0" @@ -7311,7 +7231,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "dev": true, "requires": { "debug": "^2.6.9", "resolve": "^1.5.0" @@ -7321,7 +7240,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-1.1.1.tgz", "integrity": "sha512-jqSfumQ+H5y3FUJ6NjRkbOQSUOlbBucGTN3ELymOtcDBbPjVdm/luvJuCfCaIXGh8sEF26ma1qVdtDgl9ndhUg==", - "dev": true, "requires": { "debug": "^4.0.1", "resolve": "^1.4.0", @@ -7332,7 +7250,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -7340,8 +7257,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -7349,7 +7265,6 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.9.0.tgz", "integrity": "sha1-IxzhV4rVEk2leZ8Cm9M9KBN2I+M=", - "dev": true, "requires": { "array-find": "^1.0.0", "debug": "^2.6.8", @@ -7368,7 +7283,6 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.2.0", @@ -7378,14 +7292,12 @@ "memory-fs": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=" }, "tapable": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=" } } }, @@ -7393,7 +7305,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", - "dev": true, "requires": { "loader-fs-cache": "^1.0.0", "loader-utils": "^1.0.2", @@ -7406,7 +7317,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", - "dev": true, "requires": { "debug": "^2.6.8", "pkg-dir": "^2.0.0" @@ -7416,7 +7326,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -7425,7 +7334,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, "requires": { "find-up": "^2.1.0" } @@ -7436,7 +7344,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/eslint-plugin-babel/-/eslint-plugin-babel-5.3.0.tgz", "integrity": "sha512-HPuNzSPE75O+SnxHIafbW5QB45r2w78fxqwK3HmjqIUoPfPzVrq6rD+CINU3yzoDSzEhUkX07VUphbF73Lth/w==", - "dev": true, "requires": { "eslint-rule-composer": "^0.3.0" } @@ -7445,7 +7352,6 @@ "version": "2.18.2", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", - "dev": true, "requires": { "array-includes": "^3.0.3", "contains-path": "^0.1.0", @@ -7464,7 +7370,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, "requires": { "esutils": "^2.0.2", "isarray": "^1.0.0" @@ -7474,7 +7379,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -7482,20 +7386,17 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "resolve": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -7506,7 +7407,6 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", - "dev": true, "requires": { "@babel/runtime": "^7.4.5", "aria-query": "^3.0.0", @@ -7523,7 +7423,6 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz", "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.2" } @@ -7532,7 +7431,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -7540,8 +7438,7 @@ "regenerator-runtime": { "version": "0.13.3", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" } } }, @@ -7549,7 +7446,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz", "integrity": "sha512-XWX2yVuwVNLOUhQijAkXz+rMPPoCr7WFiAl8ig6I7Xn+pPVhDhzg4DxHpmbeb0iqjO9UronEA3Tb09ChnFVHHA==", - "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" } @@ -7558,7 +7454,6 @@ "version": "7.14.3", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", - "dev": true, "requires": { "array-includes": "^3.0.3", "doctrine": "^2.1.0", @@ -7575,7 +7470,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, "requires": { "esutils": "^2.0.2" } @@ -7584,7 +7478,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -7593,7 +7486,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -7601,14 +7493,12 @@ "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -7619,7 +7509,6 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -7627,15 +7516,14 @@ } }, "eslint-plugin-react-hooks": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.6.1.tgz", - "integrity": "sha512-wHhmGJyVuijnYIJXZJHDUF2WM+rJYTjulUTqF9k61d3BTk8etydz+M4dXUVH7M76ZRS85rqBTCx0Es/lLsrjnA==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" }, "eslint-rule-composer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==" }, "eslint-scope": { "version": "3.7.1", @@ -7664,7 +7552,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, "requires": { "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", @@ -7681,7 +7568,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, "requires": { "estraverse": "^4.0.0" } @@ -7733,8 +7619,7 @@ "events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==" }, "eventsource": { "version": "1.0.7", @@ -7749,7 +7634,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -7929,7 +7813,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7940,7 +7823,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -8020,14 +7902,12 @@ "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-diff": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -8078,7 +7958,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } @@ -8087,7 +7966,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, "requires": { "flat-cache": "^2.0.1" } @@ -8144,7 +8022,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, "requires": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", @@ -8154,8 +8031,7 @@ "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { "version": "1.1.2", @@ -8193,7 +8069,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", @@ -8204,7 +8079,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8218,7 +8092,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -8228,8 +8101,7 @@ "flatted": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==" }, "flatten": { "version": "1.0.2", @@ -8281,8 +8153,7 @@ "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "forever-agent": { "version": "0.6.1", @@ -9140,7 +9011,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, "requires": { "function-bind": "^1.0.2" } @@ -9161,8 +9031,7 @@ "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" }, "has-unicode": { "version": "2.0.1", @@ -9205,7 +9074,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -9215,7 +9083,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -9249,7 +9116,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -9471,8 +9337,7 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "hyphenate-style-name": { "version": "1.0.3", @@ -9562,8 +9427,7 @@ "ieee754": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" }, "iferr": { "version": "0.1.5", @@ -9574,8 +9438,7 @@ "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "image-size": { "version": "0.5.5", @@ -9696,8 +9559,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "in-publish": { "version": "2.0.0", @@ -9721,8 +9583,7 @@ "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" }, "inflight": { "version": "1.0.6", @@ -9757,7 +9618,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "dev": true, "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -9777,14 +9637,12 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -9793,7 +9651,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -9803,14 +9660,12 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -9819,7 +9674,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -9847,8 +9701,7 @@ "interpret": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" }, "invariant": { "version": "2.2.4", @@ -9895,7 +9748,6 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", - "dev": true, "requires": { "is-relative": "^0.2.1", "is-windows": "^0.2.0" @@ -9904,8 +9756,7 @@ "is-windows": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", - "dev": true + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" } } }, @@ -9965,8 +9816,7 @@ "is-callable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", - "dev": true + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" }, "is-color-stop": { "version": "1.1.0", @@ -10005,8 +9855,7 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, "is-descriptor": { "version": "0.1.6", @@ -10133,14 +9982,12 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, "requires": { "has": "^1.0.1" } @@ -10149,7 +9996,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", - "dev": true, "requires": { "is-unc-path": "^0.1.1" } @@ -10177,8 +10023,7 @@ "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" }, "is-typedarray": { "version": "1.0.0", @@ -10189,7 +10034,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", - "dev": true, "requires": { "unc-path-regex": "^0.1.0" } @@ -10292,8 +10136,7 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify": { "version": "1.0.1", @@ -10307,8 +10150,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "json-stringify-safe": { "version": "5.0.1", @@ -10348,7 +10190,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", - "dev": true, "requires": { "array-includes": "^3.0.3", "object.assign": "^4.1.0" @@ -10629,7 +10470,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -10647,7 +10487,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -10659,7 +10498,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", - "dev": true, "requires": { "find-cache-dir": "^0.1.1", "mkdirp": "0.5.1" @@ -10705,7 +10543,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -10714,8 +10551,7 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -10748,8 +10584,7 @@ "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.isequal": { "version": "4.5.0", @@ -10948,7 +10783,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -10958,8 +10792,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -11106,7 +10939,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -11134,8 +10966,7 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "min-document": { "version": "2.19.0", @@ -11202,14 +11033,12 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { "version": "3.0.4", @@ -11325,8 +11154,7 @@ "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { "version": "2.10.0", @@ -11355,8 +11183,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "negotiator": { "version": "0.6.1", @@ -11378,8 +11205,7 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "no-case": { "version": "2.3.2", @@ -11544,7 +11370,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", - "dev": true, "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -11873,14 +11698,12 @@ "object-hash": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" }, "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, "object-path": { "version": "0.11.4", @@ -11901,7 +11724,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -11913,7 +11735,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", - "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.12.0", @@ -11925,7 +11746,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -11934,7 +11754,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", @@ -11948,7 +11767,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -11959,7 +11777,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -11967,14 +11784,12 @@ "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, "requires": { "has-symbols": "^1.0.0" } @@ -11982,8 +11797,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" } } }, @@ -11991,7 +11805,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", - "dev": true, "requires": { "define-properties": "^1.1.2", "es-abstract": "^1.11.0", @@ -12022,7 +11835,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.12.0", @@ -12034,7 +11846,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -12043,7 +11854,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", @@ -12057,7 +11867,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -12068,7 +11877,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -12076,14 +11884,12 @@ "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, "requires": { "has-symbols": "^1.0.0" } @@ -12091,8 +11897,7 @@ "object-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", - "dev": true + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" } } }, @@ -12129,7 +11934,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -12228,7 +12032,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.4", @@ -12250,8 +12053,7 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "os-homedir": { "version": "1.0.2", @@ -12331,7 +12133,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, "requires": { "p-try": "^1.0.0" } @@ -12340,7 +12141,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -12354,8 +12154,7 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "packery": { "version": "github:eiriklv/packery#8e812a0a16575ef923f5e72efcea85aadc6fea67", @@ -12370,8 +12169,7 @@ "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" }, "parallel-transform": { "version": "1.1.0", @@ -12397,7 +12195,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } @@ -12406,7 +12203,6 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", @@ -12466,8 +12262,7 @@ "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, "path-dirname": { "version": "1.0.2", @@ -12491,14 +12286,12 @@ "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.5", @@ -12517,7 +12310,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, "requires": { "pify": "^2.0.0" } @@ -12526,7 +12318,6 @@ "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -12562,7 +12353,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, "requires": { "find-up": "^1.0.0" } @@ -12571,7 +12361,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, "requires": { "find-up": "^2.1.0" }, @@ -12580,7 +12369,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -13658,8 +13446,7 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", @@ -13677,7 +13464,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, "requires": { "fast-diff": "^1.1.2" } @@ -13701,8 +13487,7 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, "process-nextick-args": { "version": "2.0.0", @@ -13712,8 +13497,7 @@ "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise": { "version": "7.3.1", @@ -13768,7 +13552,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -13781,8 +13564,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -13831,14 +13613,12 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, "querystringify": { "version": "2.1.0", @@ -13883,7 +13663,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -13892,7 +13671,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -14311,7 +14089,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, "requires": { "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", @@ -14322,7 +14099,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" @@ -14332,7 +14108,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -14525,8 +14300,7 @@ "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" }, "regexpu-core": { "version": "2.0.0", @@ -14821,8 +14595,7 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "resolve-pathname": { "version": "2.2.0", @@ -14931,7 +14704,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -14991,7 +14763,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -15001,7 +14772,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, "requires": { "is-promise": "^2.1.0" } @@ -15019,7 +14789,6 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -15422,7 +15191,6 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -15454,7 +15222,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -15462,8 +15229,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", @@ -15497,7 +15263,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", @@ -15508,7 +15273,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -15902,7 +15666,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -15922,7 +15685,6 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -15992,8 +15754,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-eof": { "version": "1.0.0", @@ -16012,8 +15773,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { "version": "0.21.0", @@ -16135,7 +15895,6 @@ "version": "5.4.5", "resolved": "https://registry.npmjs.org/table/-/table-5.4.5.tgz", "integrity": "sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA==", - "dev": true, "requires": { "ajv": "^6.10.2", "lodash": "^4.17.14", @@ -16146,20 +15905,17 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -16170,7 +15926,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -16475,8 +16230,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "throttle-debounce": { "version": "2.1.0", @@ -16486,8 +16240,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.5", @@ -16509,7 +16262,6 @@ "version": "2.0.10", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, "requires": { "setimmediate": "^1.0.4" } @@ -16524,7 +16276,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -16532,8 +16283,7 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, "to-camel-case": { "version": "1.0.0", @@ -16678,7 +16428,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.8.0.tgz", "integrity": "sha512-zZEYFo4sjORK8W58ENkRn9s+HmQFkkwydDG7My5s/fnfr2YYCaiyXe/HBUcIgU8epEKOXwiahOO+KZYjiXlWyQ==", - "dev": true, "requires": { "@types/json5": "^0.0.29", "deepmerge": "^2.0.1", @@ -16691,7 +16440,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, "requires": { "minimist": "^1.2.0" } @@ -16699,8 +16447,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, @@ -16915,8 +16662,7 @@ "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, "tunnel-agent": { "version": "0.6.0", @@ -16936,7 +16682,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "~1.1.2" } @@ -16971,39 +16716,6 @@ "typescript-logic": "^0.0.0" } }, - "typescript-eslint-parser": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/typescript-eslint-parser/-/typescript-eslint-parser-22.0.0.tgz", - "integrity": "sha512-pD8D7oTeRwWvFVxK3PaY6FYAiZsuRXFkIc2+1xkwCT3NduySgCgjeAkR5/dnIWecOiFVcEHf4ypXurF02Q6Z3Q==", - "dev": true, - "requires": { - "eslint-scope": "^4.0.0", - "eslint-visitor-keys": "^1.0.0", - "typescript-estree": "18.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } - } - }, - "typescript-estree": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/typescript-estree/-/typescript-estree-18.0.0.tgz", - "integrity": "sha512-HxTWrzFyYOPWA91Ij7xL9mNUVpGTKLH2KiaBn28CMbYgX2zgWdJqU9hO7Are+pAPAqY91NxAYoaAyDDZ3rLj2A==", - "dev": true, - "requires": { - "lodash.unescape": "4.0.1", - "semver": "5.5.0" - } - }, "typescript-logic": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", @@ -17118,8 +16830,7 @@ "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -17309,7 +17020,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -17318,8 +17028,7 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, @@ -17343,7 +17052,6 @@ "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, "requires": { "inherits": "2.0.3" } @@ -17431,7 +17139,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, "requires": { "indexof": "0.0.1" } @@ -18080,8 +17787,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "worker-farm": { "version": "1.6.0", @@ -18130,7 +17836,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, "requires": { "mkdirp": "^0.5.1" } @@ -18144,8 +17849,7 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { "version": "3.2.1", diff --git a/package.json b/package.json index ffd525c8..cab7262f 100644 --- a/package.json +++ b/package.json @@ -27,18 +27,6 @@ "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "css-loader": "^0.28.11", - "eslint": "^5.16.0", - "eslint-config-airbnb": "^17.1.1", - "eslint-config-prettier": "^6.0.0", - "eslint-import-resolver-babel-module": "^4.0.0", - "eslint-import-resolver-typescript": "^1.1.1", - "eslint-import-resolver-webpack": "^0.9.0", - "eslint-loader": "^2.2.1", - "eslint-plugin-babel": "^5.3.0", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-prettier": "^3.1.0", - "eslint-plugin-react": "^7.14.3", "file-loader": "^1.1.11", "html-webpack-plugin": "^3.2.0", "identity-obj-proxy": "^3.0.0", @@ -51,7 +39,6 @@ "style-loader": "^0.21.0", "ts-node": "^8.0.1", "typescript": "^3.2.4", - "typescript-eslint-parser": "^22.0.0", "uglifyjs-webpack-plugin": "^1.3.0", "webpack": "^4.6.0", "webpack-cli": "^3.2.3", @@ -74,7 +61,19 @@ "date-fns": "^2.0.0-alpha.27", "dotenv": "^8.0.0", "dotenv-webpack": "^1.7.0", - "eslint-plugin-react-hooks": "^1.6.1", + "eslint": "^5.16.0", + "eslint-config-airbnb": "^17.1.1", + "eslint-config-prettier": "^6.0.0", + "eslint-import-resolver-babel-module": "^4.0.0", + "eslint-import-resolver-typescript": "^1.1.1", + "eslint-import-resolver-webpack": "^0.9.0", + "eslint-loader": "^2.2.1", + "eslint-plugin-babel": "^5.3.0", + "eslint-plugin-import": "^2.18.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-prettier": "^3.1.0", + "eslint-plugin-react": "^7.14.3", + "eslint-plugin-react-hooks": "^1.7.0", "history": "^4.7.2", "http-errors": "~1.6.2", "less": "^3.8.1", diff --git a/src/components/containers/BlurWrapper/index.tsx b/src/components/containers/BlurWrapper/index.tsx index 41f63213..0ece8769 100644 --- a/src/components/containers/BlurWrapper/index.tsx +++ b/src/components/containers/BlurWrapper/index.tsx @@ -1,5 +1,5 @@ -import React, { AllHTMLAttributes, FC } from "react"; -import * as styles from "./styles.scss"; +import React, { AllHTMLAttributes, FC } from 'react'; +import * as styles from './styles.scss'; type IProps = AllHTMLAttributes & { is_blurred: boolean }; diff --git a/src/components/containers/Card/index.tsx b/src/components/containers/Card/index.tsx index 7a1e5905..fdf4d17f 100644 --- a/src/components/containers/Card/index.tsx +++ b/src/components/containers/Card/index.tsx @@ -1,7 +1,8 @@ import React, { FC } from 'react'; -import classNames = require("classnames"); import * as styles from './styles.scss'; +import classNames = require('classnames'); + type IProps = React.HTMLAttributes & { seamless?: boolean; } @@ -12,12 +13,12 @@ const Card: FC = ({ seamless, ...props }) => ( -
- {children} -
+
+ {children} +
); export { Card }; diff --git a/src/components/containers/CellGrid/index.tsx b/src/components/containers/CellGrid/index.tsx index b8204b70..bce8b6bb 100644 --- a/src/components/containers/CellGrid/index.tsx +++ b/src/components/containers/CellGrid/index.tsx @@ -1,6 +1,9 @@ -import React, { FC, HTMLAttributes, ReactChild, ReactChildren } from 'react'; +import React, { + FC, HTMLAttributes, ReactChild, ReactChildren +} from 'react'; import * as styles from './styles.scss'; -import classNames = require("classnames"); + +import classNames = require('classnames'); type IProps = HTMLAttributes & { children: any; @@ -13,13 +16,13 @@ const CellGrid: FC = ({ className, ...props }) => ( -
- {children} -
+
+ {children} +
); export { CellGrid }; diff --git a/src/components/containers/Grid/index.tsx b/src/components/containers/Grid/index.tsx index a7f6d9a9..830e404d 100644 --- a/src/components/containers/Grid/index.tsx +++ b/src/components/containers/Grid/index.tsx @@ -1,6 +1,6 @@ -import React, { FC } from "react"; -import classNames from "classnames"; -import * as styles from "./styles.scss"; +import React, { FC } from 'react'; +import classNames from 'classnames'; +import * as styles from './styles.scss'; type IProps = React.HTMLAttributes & { horizontal?: boolean; @@ -15,14 +15,14 @@ type IProps = React.HTMLAttributes & { const Grid: FC = ({ children, - className = "", + className = '', horizontal = false, vertical = false, square = false, - size = "auto", + size = 'auto', style = {}, - columns = "auto", - rows = "auto", + columns = 'auto', + rows = 'auto', gap = 10, stretchy, ...props @@ -37,10 +37,10 @@ const Grid: FC = ({ style={{ ...style, gridTemplateColumns: square - ? `repeat(auto-fill, ${(columns !== "auto" && columns) || size})` + ? `repeat(auto-fill, ${(columns !== 'auto' && columns) || size})` : columns, gridTemplateRows: square - ? `repeat(auto-fill, ${(rows !== "auto" && rows) || size})` + ? `repeat(auto-fill, ${(rows !== 'auto' && rows) || size})` : rows, gridAutoRows: rows, gridAutoColumns: columns, diff --git a/src/components/containers/Group/index.tsx b/src/components/containers/Group/index.tsx index bd18ac2a..04576533 100644 --- a/src/components/containers/Group/index.tsx +++ b/src/components/containers/Group/index.tsx @@ -18,7 +18,7 @@ const Group: FC = ({ bottom = false, wrap = false, seamless = false, - ...props + ...props }) => (
& { +import classNames = require('classnames'); + +type IProps = React.HTMLAttributes & { padding?: number; vertical?: boolean; horizontal?: boolean; @@ -17,13 +18,13 @@ const Padder: FC = ({ horizontal, ...props }) => ( -
- {children} -
+
+ {children} +
); export { Padder }; diff --git a/src/components/containers/Panel/index.tsx b/src/components/containers/Panel/index.tsx index a64cd35a..87c919f5 100644 --- a/src/components/containers/Panel/index.tsx +++ b/src/components/containers/Panel/index.tsx @@ -1,10 +1,11 @@ import React, { FC, HTMLAttributes } from 'react'; import * as styles from './styles.scss'; -import classNames = require("classnames"); + +import classNames = require('classnames'); type IProps = HTMLAttributes & { seamless?: boolean; - stretchy?: boolean + stretchy?: boolean; } const Panel: FC = ({ @@ -14,9 +15,9 @@ const Panel: FC = ({ stretchy, ...props }) => ( -
- {children} -
+
+ {children} +
); export { Panel }; diff --git a/src/components/containers/Scroll/index.tsx b/src/components/containers/Scroll/index.tsx index fee4fb96..36be053d 100644 --- a/src/components/containers/Scroll/index.tsx +++ b/src/components/containers/Scroll/index.tsx @@ -1,7 +1,7 @@ import React, { MouseEventHandler, useEffect, useState } from 'react'; -import * as styles from './styles.scss'; import { Scrollbars } from 'tt-react-custom-scrollbars'; import classNames from 'classnames'; +import * as styles from './styles.scss'; interface IProps { children: Element | React.ReactChild; @@ -33,11 +33,11 @@ export const Scroll = ({ renderTrackVertical={data =>
} renderThumbHorizontal={data =>
} renderThumbVertical={data =>
} - renderView = {data =>
} + renderView={data =>
} hideTracksWhenNotNeeded universal ref={setRef} - { ...props } + {...props} > {children} diff --git a/src/components/containers/TagField/index.tsx b/src/components/containers/TagField/index.tsx index a5ed4620..2fbdde5d 100644 --- a/src/components/containers/TagField/index.tsx +++ b/src/components/containers/TagField/index.tsx @@ -1,10 +1,10 @@ -import React, {FC, HTMLAttributes} from 'react'; +import React, { FC, HTMLAttributes } from 'react'; import * as styles from './styles.scss'; type IProps = HTMLAttributes & {} const TagField: FC = ({ - children, + children, }) => (
{children} diff --git a/src/components/editors/EditorPanel/index.tsx b/src/components/editors/EditorPanel/index.tsx index 0ae563e2..6932ef1d 100644 --- a/src/components/editors/EditorPanel/index.tsx +++ b/src/components/editors/EditorPanel/index.tsx @@ -1,7 +1,7 @@ import React, { FC, ChangeEventHandler } from 'react'; import * as styles from './styles.scss'; import { INode } from '~/redux/types'; -import { ImageUploadButton } from '~/components/editors/ImageUploadButton'; +import { EditorUploadButton } from '~/components/editors/EditorUploadButton'; interface IProps { data: INode; @@ -11,7 +11,7 @@ interface IProps { const EditorPanel: FC = ({ onUpload }) => (
- +
); diff --git a/src/components/editors/EditorUploadButton/index.tsx b/src/components/editors/EditorUploadButton/index.tsx new file mode 100644 index 00000000..358e938e --- /dev/null +++ b/src/components/editors/EditorUploadButton/index.tsx @@ -0,0 +1,21 @@ +import React, { FC, ChangeEventHandler } from 'react'; +import * as styles from './styles.scss'; +import { Icon } from '~/components/input/Icon'; + +interface IProps { + onUpload?: ChangeEventHandler; +} + +const EditorUploadButton: FC = ({ + onUpload, +}) => ( +
+ + +
+ +
+
+); + +export { EditorUploadButton }; diff --git a/src/components/editors/ImageUploadButton/styles.scss b/src/components/editors/EditorUploadButton/styles.scss similarity index 100% rename from src/components/editors/ImageUploadButton/styles.scss rename to src/components/editors/EditorUploadButton/styles.scss diff --git a/src/components/editors/ImageEditor/index.tsx b/src/components/editors/ImageEditor/index.tsx index 454a0b8c..6ed43aa9 100644 --- a/src/components/editors/ImageEditor/index.tsx +++ b/src/components/editors/ImageEditor/index.tsx @@ -1,40 +1,55 @@ -import React, { FC, useCallback, useEffect, useState, ChangeEventHandler, DragEventHandler } from 'react'; +import React, { + FC, + useCallback, + useEffect, + useState, + ChangeEventHandler, + DragEventHandler +} from 'react'; import uuid from 'uuid4'; -import { INode, IFileWithUUID, IFile } from '~/redux/types'; -import * as UPLOAD_ACTIONS from '~/redux/uploads/actions'; import { connect } from 'react-redux'; -import { selectUploads } from '~/redux/uploads/selectors'; import assocPath from 'ramda/es/assocPath'; import append from 'ramda/es/append'; +import { INode, IFileWithUUID, IFile } from '~/redux/types'; +import * as UPLOAD_ACTIONS from '~/redux/uploads/actions'; +import { selectUploads } from '~/redux/uploads/selectors'; import { ImageGrid } from '~/components/editors/ImageGrid'; import { moveArrItem } from '~/utils/fn'; import { IUploadStatus } from '~/redux/uploads/reducer'; const mapStateToProps = selectUploads; const mapDispatchToProps = { - uploadUploadFiles: UPLOAD_ACTIONS.uploadUploadFiles, + uploadUploadFiles: UPLOAD_ACTIONS.uploadUploadFiles }; -type IProps = ReturnType & typeof mapDispatchToProps & { +type IProps = ReturnType & + typeof mapDispatchToProps & { data: INode; pending_files: IUploadStatus[]; setData: (val: INode) => void; onFileMove: (o: number, n: number) => void; onInputChange: ChangeEventHandler; onDrop: DragEventHandler; -} - -const ImageEditorUnconnected: FC = ({ data, onFileMove, onInputChange, onDrop, pending_files }) => { - return ( - - ); }; -const ImageEditor = connect(mapStateToProps, mapDispatchToProps)(ImageEditorUnconnected) +const ImageEditorUnconnected: FC = ({ + data, + onFileMove, + onInputChange, + onDrop, + pending_files +}) => ( + +); + +const ImageEditor = connect( + mapStateToProps, + mapDispatchToProps +)(ImageEditorUnconnected); export { ImageEditor }; diff --git a/src/components/editors/ImageGrid/index.tsx b/src/components/editors/ImageGrid/index.tsx index f2dd8a39..f761ac19 100644 --- a/src/components/editors/ImageGrid/index.tsx +++ b/src/components/editors/ImageGrid/index.tsx @@ -1,10 +1,11 @@ -import React, { FC, ReactChildren, useCallback, ChangeEventHandler, DragEventHandler } from 'react'; +import React, { + FC, ReactChildren, useCallback, ChangeEventHandler, DragEventHandler +} from 'react'; import { SortableContainer, SortableElement } from 'react-sortable-hoc'; import * as styles from './styles.scss'; import { ImageUpload } from '~/components/upload/ImageUpload'; import { IFile } from '~/redux/types'; import { IUploadStatus } from '~/redux/uploads/reducer'; -import { ImageUploadButton } from '~/components/editors/ImageUploadButton'; interface IProps { items: IFile[]; @@ -12,50 +13,52 @@ interface IProps { onFileMove: (o: number, n: number) => void; onUpload?: ChangeEventHandler; onDrop: DragEventHandler; -}; +} const SortableItem = SortableElement(({ children }) =>
{children}
); -const SortableList = SortableContainer(({ items, locked, onUpload, onDrop }: { items: IFile[]; locked: IUploadStatus[]; onUpload: ChangeEventHandler; onDrop: DragEventHandler }) => { - return ( +const SortableList = SortableContainer( + ({ + items, + locked, + onDrop + }: { + items: IFile[]; + locked: IUploadStatus[]; + onUpload: ChangeEventHandler; + onDrop: DragEventHandler; + }) => (
- { - items.map((file, index) => ( - - - - )) - } - { - locked.map((item, index) => ( - - - - )) - } + {items.map((file, index) => ( + + + + ))} + {locked.map((item, index) => ( + + + + ))}
- ); -}); + ) +); const ImageGrid: FC = ({ - items, - locked, - onFileMove, - onUpload, - onDrop, + items, locked, onFileMove, onUpload, onDrop }) => { const onMove = useCallback(({ oldIndex, newIndex }) => onFileMove(oldIndex, newIndex), [onFileMove]); return ( - - ) -} + + ); +}; -export { ImageGrid }; \ No newline at end of file +export { ImageGrid }; diff --git a/src/components/editors/ImageUploadButton/index.tsx b/src/components/editors/ImageUploadButton/index.tsx deleted file mode 100644 index 6c672953..00000000 --- a/src/components/editors/ImageUploadButton/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React, { FC, ChangeEventHandler } from 'react'; -import * as styles from './styles.scss'; -import { Icon } from '~/components/input/Icon'; - -interface IProps { - onUpload?: ChangeEventHandler; -}; - -const ImageUploadButton: FC = ({ - onUpload, -}) => ( -
- - -
- -
-
- ) - -export { ImageUploadButton }; \ No newline at end of file diff --git a/src/components/flow/Cell/index.tsx b/src/components/flow/Cell/index.tsx index 182e94b9..7b220ac4 100644 --- a/src/components/flow/Cell/index.tsx +++ b/src/components/flow/Cell/index.tsx @@ -1,6 +1,7 @@ import React, { FC } from 'react'; import * as styles from './styles.scss'; -import classNames = require("classnames"); + +import classNames = require('classnames'); interface IProps { height?: number; @@ -16,15 +17,15 @@ const Cell: FC = ({ title, is_hero, }) => ( -
- { title &&
{title}
} -
+
+ { title &&
{title}
} +
); export { Cell }; diff --git a/src/components/flow/HeroPlaceholder/index.tsx b/src/components/flow/HeroPlaceholder/index.tsx index 1f233721..f4e24af4 100644 --- a/src/components/flow/HeroPlaceholder/index.tsx +++ b/src/components/flow/HeroPlaceholder/index.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; + const style = require('./style.scss'); export const HeroPlaceholder = () => ( -
-
+
); diff --git a/src/components/flow/TestGrid/index.tsx b/src/components/flow/TestGrid/index.tsx index 7de2d366..459580c0 100644 --- a/src/components/flow/TestGrid/index.tsx +++ b/src/components/flow/TestGrid/index.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { Cell } from '~/components/flow/Cell'; import { range } from 'ramda'; +import { Cell } from '~/components/flow/Cell'; import * as styles from './styles.scss'; diff --git a/src/components/input/ArcProgress/index.tsx b/src/components/input/ArcProgress/index.tsx index ea515e8a..374fd3df 100644 --- a/src/components/input/ArcProgress/index.tsx +++ b/src/components/input/ArcProgress/index.tsx @@ -5,7 +5,7 @@ import { describeArc } from '~/utils/dom'; interface IProps { size: number; progress: number; -}; +} export const ArcProgress: FC = ({ size, progress }) => ( diff --git a/src/components/input/Button/index.tsx b/src/components/input/Button/index.tsx index f4b70626..8f3c748b 100644 --- a/src/components/input/Button/index.tsx +++ b/src/components/input/Button/index.tsx @@ -1,14 +1,14 @@ -import classnames from "classnames"; -import * as styles from "./styles.scss"; -import React, { ButtonHTMLAttributes, DetailedHTMLProps, FC } from "react"; -import { Icon } from "~/components/input/Icon"; -import { IIcon } from "~/redux/types"; +import classnames from 'classnames'; +import React, { ButtonHTMLAttributes, DetailedHTMLProps, FC } from 'react'; +import * as styles from './styles.scss'; +import { Icon } from '~/components/input/Icon'; +import { IIcon } from '~/redux/types'; type IButtonProps = DetailedHTMLProps< - ButtonHTMLAttributes, - HTMLButtonElement +ButtonHTMLAttributes, +HTMLButtonElement > & { - size?: "mini" | "normal" | "big" | "giant" | "micro"; + size?: 'mini' | 'normal' | 'big' | 'giant' | 'micro'; iconLeft?: IIcon; iconRight?: IIcon; seamless?: boolean; @@ -22,8 +22,8 @@ type IButtonProps = DetailedHTMLProps< }; export const Button: FC = ({ - className = "", - size = "normal", + className = '', + size = 'normal', iconLeft, iconRight, children, @@ -36,26 +36,25 @@ export const Button: FC = ({ title, stretchy, ...props -}) => - React.createElement(seamless || non_submitting ? "div" : "button", { - className: classnames(styles.button, className, styles[size], { - red, - grey, - seamless, - transparent, - disabled: props.disabled, - icon: (iconLeft || iconRight) && !title && !children, - is_loading, - stretchy - }), - children: [ - iconLeft && , - title ? ( - {title} - ) : ( - (children && {children}) || null - ), - iconRight && - ], - ...props - }); +}) => React.createElement(seamless || non_submitting ? 'div' : 'button', { + className: classnames(styles.button, className, styles[size], { + red, + grey, + seamless, + transparent, + disabled: props.disabled, + icon: (iconLeft || iconRight) && !title && !children, + is_loading, + stretchy + }), + children: [ + iconLeft && , + title ? ( + {title} + ) : ( + (children && {children}) || null + ), + iconRight && + ], + ...props +}); diff --git a/src/components/input/Icon/index.tsx b/src/components/input/Icon/index.tsx index 593490a3..86586011 100644 --- a/src/components/input/Icon/index.tsx +++ b/src/components/input/Icon/index.tsx @@ -1,18 +1,20 @@ -import React, { FC } from "react"; -import { IIcon } from "~/redux/types"; +import React, { FC } from 'react'; +import { IIcon } from '~/redux/types'; type IProps = React.SVGAttributes & { size?: number; icon: IIcon; }; -export const Icon: FC = ({ size = 20, icon, style, ...props }) => ( +export const Icon: FC = ({ + size = 20, icon, style, ...props +}) => ( diff --git a/src/components/input/Info/index.tsx b/src/components/input/Info/index.tsx index c4a6accb..7c848f31 100644 --- a/src/components/input/Info/index.tsx +++ b/src/components/input/Info/index.tsx @@ -1,12 +1,13 @@ import * as React from 'react'; -import classNames = require("classnames"); + +import classNames = require('classnames'); const style = require('./style.scss'); interface IInfoProps { - text?: string, - children?: string, - level?: string, + text?: string; + children?: string; + level?: string; } export const Info: React.FunctionComponent = ({ text, diff --git a/src/components/input/InputText/index.tsx b/src/components/input/InputText/index.tsx index 35d79b88..434df389 100644 --- a/src/components/input/InputText/index.tsx +++ b/src/components/input/InputText/index.tsx @@ -4,8 +4,8 @@ import React, { useCallback, useState, useEffect, } from 'react'; -import * as styles from '~/styles/inputs.scss'; import classNames from 'classnames'; +import * as styles from '~/styles/inputs.scss'; import { Icon } from '~/components/input/Icon'; import { IInputTextProps } from '~/redux/types'; import { LoaderCircle } from '~/components/input/LoaderCircle'; @@ -31,8 +31,8 @@ const InputText: FC = ({ [handler], ); - const onFocus = useCallback(() => setFocused(true), [focused]); - const onBlur = useCallback(() => setFocused(false), [focused]); + const onFocus = useCallback(() => setFocused(true), []); + const onBlur = useCallback(() => setFocused(false), []); useEffect(() => { if (onRef) onRef(inner_ref); @@ -50,7 +50,8 @@ const InputText: FC = ({ [styles.has_error]: !!error, [styles.has_loader]: is_loading, }, - )}> + )} + >
= ({ @@ -15,15 +15,15 @@ export const TextInput: React.FunctionComponent = ({ placeholder = '', label, onChange = () => {}, - value='', + value = '', }) => (
{ - label && -
{label}
+ label + &&
{label}
} { @@ -30,22 +30,26 @@ export class GodRays extends React.Component { return setTimeout(() => window.requestAnimationFrame(this.draw), 1000); } - const { width, height, rays, particles } = this.state; + const { + width, height, rays, particles + } = this.state; const ctx = this.canvas.getContext('2d'); - ctx.globalCompositeOperation = "luminosity"; + ctx.globalCompositeOperation = 'luminosity'; ctx.clearRect(0, 0, width, height + 100); // clear canvas ctx.save(); - rays.map(({ angle, iterator, weight, speed, pulsar, opacity }, index) => { + rays.map(({ + angle, iterator, weight, speed, pulsar, opacity + }, index) => { const gradient = ctx.createLinearGradient(0, 0, 0, height * 1.3); gradient.addColorStop(0.2, `rgba(255, 60, 40, ${opacity * 0.1})`); - gradient.addColorStop(1, `rgba(255, 60, 40, 0)`); + gradient.addColorStop(1, 'rgba(255, 60, 40, 0)'); const gradient2 = ctx.createLinearGradient(0, 0, 0, height * 1.3); gradient2.addColorStop(0.2, `rgba(255, 40, 100, ${opacity * 0.2})`); - gradient2.addColorStop(1, "rgba(255, 40, 100, 0)"); + gradient2.addColorStop(1, 'rgba(255, 40, 100, 0)'); ctx.save(); ctx.translate(width / 2, -900); @@ -106,7 +110,7 @@ export class GodRays extends React.Component { this.init(); } - render(){ + render() { const { width, height } = this.state; return ( @@ -119,7 +123,8 @@ export class GodRays extends React.Component { zIndex: -1, opacity: 1, pointerEvents: 'none', - }}> + }} + > { position: 'relative', top: -100, }} - ref={el => { this.canvas = el; }} + ref={(el) => { this.canvas = el; }} />
); } canvas: HTMLCanvasElement; + inc; -}; +} diff --git a/src/components/main/Header/index.tsx b/src/components/main/Header/index.tsx index 0c3128c2..8200056d 100644 --- a/src/components/main/Header/index.tsx +++ b/src/components/main/Header/index.tsx @@ -1,13 +1,13 @@ -import * as React from "react"; -import { Logo } from "~/components/main/Logo"; -import { connect } from "react-redux"; -import { push as historyPush } from "connected-react-router"; +import * as React from 'react'; +import { connect } from 'react-redux'; +import { push as historyPush } from 'connected-react-router'; +import { Link } from 'react-router-dom'; +import { Logo } from '~/components/main/Logo'; -import * as style from "./style.scss"; -import { Filler } from "~/components/containers/Filler"; -import { Link } from "react-router-dom"; -import {selectUser} from "~/redux/auth/selectors"; -import {Group} from "~/components/containers/Group"; +import * as style from './style.scss'; +import { Filler } from '~/components/containers/Filler'; +import { selectUser } from '~/redux/auth/selectors'; +import { Group } from '~/components/containers/Group'; const mapStateToProps = selectUser; @@ -20,31 +20,29 @@ type IProps = ReturnType & typeof mapDispatchToProps & { const HeaderUnconnected: React.FunctionComponent = ({ username, is_user -}) => { - return ( -
-
- +}) => ( +
+
+ - + -
- flow - image - editor - horizontal -
- - - - -
username
-
- +
+ flow + image + editor + horizontal
+ + + + +
username
+
+
- ); -}; +
+); const Header = connect( mapStateToProps, diff --git a/src/components/main/SidePane/index.tsx b/src/components/main/SidePane/index.tsx index 2b149df5..f936a374 100644 --- a/src/components/main/SidePane/index.tsx +++ b/src/components/main/SidePane/index.tsx @@ -1,7 +1,9 @@ -import React, { FC, LegacyRef, ReactChild, useCallback, useEffect, useState } from 'react'; -import * as styles from './styles.scss'; +import React, { + FC, LegacyRef, ReactChild, useCallback, useEffect, useState +} from 'react'; import classNames from 'classnames'; -import {Group} from "~/components/containers/Group"; +import * as styles from './styles.scss'; +import { Group } from '~/components/containers/Group'; interface IProps { } @@ -28,8 +30,8 @@ export const SidePane: FC = ({ return () => { window.removeEventListener('resize', moveThis); document.removeEventListener('DOMContentLoaded', moveThis); - } - }, []); + }; + }, [moveThis]); return (
diff --git a/src/components/node/Comment/index.tsx b/src/components/node/Comment/index.tsx index c5d695d5..6d2becf8 100644 --- a/src/components/node/Comment/index.tsx +++ b/src/components/node/Comment/index.tsx @@ -1,7 +1,8 @@ -import React, {FC, HTMLAttributes} from 'react'; -import { Card } from "~/components/containers/Card"; +import React, { FC, HTMLAttributes } from 'react'; +import { Card } from '~/components/containers/Card'; import * as styles from './styles.scss'; -import classNames = require("classnames"); + +import classNames = require('classnames'); type IProps = HTMLAttributes & { is_empty?: boolean; @@ -14,17 +15,17 @@ const Comment: FC = ({ className, ...props }) => ( - -
-
-
+ +
+
+
-
- +
+ ); export { Comment }; diff --git a/src/components/node/MenuButton/index.tsx b/src/components/node/MenuButton/index.tsx index c16f6c89..4782c741 100644 --- a/src/components/node/MenuButton/index.tsx +++ b/src/components/node/MenuButton/index.tsx @@ -1,7 +1,7 @@ -import React, {FC} from 'react'; +import React, { FC } from 'react'; import * as styles from './styles.scss'; -import { Group } from "~/components/containers/Group"; -import { Filler } from "~/components/containers/Filler"; +import { Group } from '~/components/containers/Group'; +import { Filler } from '~/components/containers/Filler'; interface IProps { title: string; @@ -19,7 +19,10 @@ const MenuButton: FC = ({ >
- + + + +
diff --git a/src/components/node/NodeNoComments/index.tsx b/src/components/node/NodeNoComments/index.tsx index 1dbaf278..8e669ab2 100644 --- a/src/components/node/NodeNoComments/index.tsx +++ b/src/components/node/NodeNoComments/index.tsx @@ -1,15 +1,15 @@ -import React, { FC } from "react"; -import { Comment } from "~/components/node/Comment"; +import React, { FC } from 'react'; +import { Comment } from '~/components/node/Comment'; import * as styles from './styles.scss'; -import {Group} from "~/components/containers/Group"; +import { Group } from '~/components/containers/Group'; interface IProps {} const NodeNoComments: FC = () => ( - - - + + + ); diff --git a/src/components/node/NodePanel/index.tsx b/src/components/node/NodePanel/index.tsx index 7c42c2a2..dd281ace 100644 --- a/src/components/node/NodePanel/index.tsx +++ b/src/components/node/NodePanel/index.tsx @@ -1,21 +1,21 @@ import React, { FC } from 'react'; import * as styles from './styles.scss'; -import { Group } from "~/components/containers/Group"; -import { Filler } from "~/components/containers/Filler"; +import { Group } from '~/components/containers/Group'; +import { Filler } from '~/components/containers/Filler'; interface IProps {} const NodePanel: FC = () => ( -
- - -
Node title
-
~author
-
-
+
+ + +
Node title
+
~author
+
+
-
-
+
+
); export { NodePanel }; diff --git a/src/components/node/NodeRelated/index.tsx b/src/components/node/NodeRelated/index.tsx index e83b82bd..eb2af602 100644 --- a/src/components/node/NodeRelated/index.tsx +++ b/src/components/node/NodeRelated/index.tsx @@ -1,7 +1,7 @@ -import React, {FC, HTMLAttributes} from 'react'; +import React, { FC, HTMLAttributes } from 'react'; import { range } from 'ramda'; import * as styles from './styles.scss'; -import {Group} from "~/components/containers/Group"; +import { Group } from '~/components/containers/Group'; type IProps = HTMLAttributes & {} @@ -16,7 +16,7 @@ const NodeRelated: FC = ({
{ - range(1,7).map(el => (
)) + range(1, 7).map(el => (
)) }
diff --git a/src/components/node/Tag/index.tsx b/src/components/node/Tag/index.tsx index 7cfbbfaa..dc4619ef 100644 --- a/src/components/node/Tag/index.tsx +++ b/src/components/node/Tag/index.tsx @@ -1,7 +1,8 @@ import React, { FC } from 'react'; import * as styles from './styles.scss'; -import classNames = require("classnames"); -import {ITag} from "~/redux/types"; +import { ITag } from '~/redux/types'; + +import classNames = require('classnames'); interface IProps { title: ITag['title']; diff --git a/src/components/node/Tags/index.tsx b/src/components/node/Tags/index.tsx index b2568615..06a7b109 100644 --- a/src/components/node/Tags/index.tsx +++ b/src/components/node/Tags/index.tsx @@ -1,7 +1,7 @@ -import React, {FC, HTMLAttributes} from 'react'; -import {TagField} from "~/components/containers/TagField"; -import {ITag} from "~/redux/types"; -import {Tag} from "~/components/node/Tag"; +import React, { FC, HTMLAttributes } from 'react'; +import { TagField } from '~/components/containers/TagField'; +import { ITag } from '~/redux/types'; +import { Tag } from '~/components/node/Tag'; type IProps = HTMLAttributes & { tags: ITag[]; diff --git a/src/components/placeholders/ParagraphPlaceholder/index.tsx b/src/components/placeholders/ParagraphPlaceholder/index.tsx index 97683a69..b2fa2474 100644 --- a/src/components/placeholders/ParagraphPlaceholder/index.tsx +++ b/src/components/placeholders/ParagraphPlaceholder/index.tsx @@ -1,7 +1,7 @@ import React, { FC } from 'react'; -import { Placeholder } from "~/components/placeholders/Placeholder"; +import { Placeholder } from '~/components/placeholders/Placeholder'; import * as styles from './styles.scss'; -import {Group} from "~/components/containers/Group"; +import { Group } from '~/components/containers/Group'; const ParagraphPlaceholder = ({ }) => ( diff --git a/src/components/upload/ImageUpload/index.tsx b/src/components/upload/ImageUpload/index.tsx index 578fa1db..d8a85a51 100644 --- a/src/components/upload/ImageUpload/index.tsx +++ b/src/components/upload/ImageUpload/index.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; -import * as styles from './styles.scss'; import classNames from 'classnames'; +import * as styles from './styles.scss'; import { ArcProgress } from '~/components/input/ArcProgress'; interface IProps { @@ -9,22 +9,20 @@ interface IProps { progress?: number; is_uploading?: boolean; -}; +} const ImageUpload: FC = ({ thumb, id, progress, is_uploading, -}) => { - return ( -
-
- {thumb &&
{id}
} - {is_uploading &&
} -
+}) => ( +
+
+ {thumb &&
{id}
} + {is_uploading &&
}
- ); -} +
+); -export { ImageUpload }; \ No newline at end of file +export { ImageUpload }; diff --git a/src/containers/App.tsx b/src/containers/App.tsx index 834ae8ca..1f65381e 100644 --- a/src/containers/App.tsx +++ b/src/containers/App.tsx @@ -1,20 +1,22 @@ -import * as React from "react"; -import { connect } from "react-redux"; -import { bindActionCreators } from "redux"; -import { hot } from "react-hot-loader"; -import { ConnectedRouter } from "connected-react-router"; -import { history } from "~/redux/store"; -import { NavLink, Switch, Route, Redirect } from "react-router-dom"; -import { FlowLayout } from "~/containers/flow/FlowLayout"; -import { MainLayout } from "~/containers/main/MainLayout"; -import { ImageExample } from "~/containers/examples/ImageExample"; -import { EditorExample } from "~/containers/examples/EditorExample"; -import { HorizontalExample } from "~/containers/examples/HorizontalExample"; -import { Sprites } from "~/sprites/Sprites"; -import { URLS } from "~/constants/urls"; -import { Modal } from "~/containers/dialogs/Modal"; -import { selectModal } from "~/redux/modal/selectors"; -import { BlurWrapper } from "~/components/containers/BlurWrapper"; +import * as React from 'react'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import { hot } from 'react-hot-loader'; +import { ConnectedRouter } from 'connected-react-router'; +import { + NavLink, Switch, Route, Redirect +} from 'react-router-dom'; +import { history } from '~/redux/store'; +import { FlowLayout } from '~/containers/flow/FlowLayout'; +import { MainLayout } from '~/containers/main/MainLayout'; +import { ImageExample } from '~/containers/examples/ImageExample'; +import { EditorExample } from '~/containers/examples/EditorExample'; +import { HorizontalExample } from '~/containers/examples/HorizontalExample'; +import { Sprites } from '~/sprites/Sprites'; +import { URLS } from '~/constants/urls'; +import { Modal } from '~/containers/dialogs/Modal'; +import { selectModal } from '~/redux/modal/selectors'; +import { BlurWrapper } from '~/components/containers/BlurWrapper'; const mapStateToProps = selectModal; const mapDispatchToProps = {}; diff --git a/src/containers/dialogs/EditorDialog/index.tsx b/src/containers/dialogs/EditorDialog/index.tsx index 1285c4f7..0edbbae3 100644 --- a/src/containers/dialogs/EditorDialog/index.tsx +++ b/src/containers/dialogs/EditorDialog/index.tsx @@ -1,4 +1,10 @@ -import React, { FC, useState, useCallback, useEffect } from 'react'; +import React, { + FC, useState, useCallback, useEffect +} from 'react'; +import { connect } from 'react-redux'; +import assocPath from 'ramda/es/assocPath'; +import append from 'ramda/es/append'; +import uuid from 'uuid4'; import { ScrollDialog } from '../ScrollDialog'; import { IDialogProps } from '~/redux/modal/constants'; import { useCloseOnEscape } from '~/utils/hooks'; @@ -7,19 +13,15 @@ import { InputText } from '~/components/input/InputText'; import { Button } from '~/components/input/Button'; import { Padder } from '~/components/containers/Padder'; import * as styles from './styles.scss'; -import { connect } from 'react-redux'; import { selectNode } from '~/redux/node/selectors'; import { ImageEditor } from '~/components/editors/ImageEditor'; import { EditorPanel } from '~/components/editors/EditorPanel'; -import assocPath from 'ramda/es/assocPath'; -import append from 'ramda/es/append'; import { moveArrItem } from '~/utils/fn'; import { IFile, IFileWithUUID } from '~/redux/types'; -import uuid from 'uuid4'; import * as UPLOAD_ACTIONS from '~/redux/uploads/actions'; import { selectUploads } from '~/redux/uploads/selectors'; -const mapStateToProps = state => { +const mapStateToProps = (state) => { const { editor } = selectNode(state); const { statuses, files } = selectUploads(state); @@ -32,7 +34,9 @@ const mapDispatchToProps = { type IProps = IDialogProps & ReturnType & typeof mapDispatchToProps & {}; -const EditorDialogUnconnected: FC = ({ onRequestClose, editor, uploadUploadFiles, files, statuses }) => { +const EditorDialogUnconnected: FC = ({ + onRequestClose, editor, uploadUploadFiles, files, statuses +}) => { const [data, setData] = useState(editor); const eventPreventer = useCallback(event => event.preventDefault(), []); const [temp, setTemp] = useState([]); @@ -68,7 +72,7 @@ const EditorDialogUnconnected: FC = ({ onRequestClose, editor, uploadUpl ); const onInputChange = useCallback( - event => { + (event) => { event.preventDefault(); if (!event.target.files || !event.target.files.length) return; @@ -109,10 +113,10 @@ const EditorDialogUnconnected: FC = ({ onRequestClose, editor, uploadUpl setTemp(temp.filter(el => el !== id)); } }); - }, [statuses, files]); + }, [statuses, files, temp, onFileAdd]); const setTitle = useCallback( - title => { + (title) => { setData({ ...data, title }); }, [setData, data] diff --git a/src/containers/dialogs/LoginDialog/index.tsx b/src/containers/dialogs/LoginDialog/index.tsx index 171307ac..0313a35b 100644 --- a/src/containers/dialogs/LoginDialog/index.tsx +++ b/src/containers/dialogs/LoginDialog/index.tsx @@ -1,4 +1,7 @@ -import React, { FC, FormEvent, useCallback, useEffect, useState } from 'react'; +import React, { + FC, FormEvent, useCallback, useEffect, useState +} from 'react'; +import { connect } from 'react-redux'; import { ScrollDialog } from '../ScrollDialog'; import { IDialogProps } from '~/redux/modal/constants'; import { useCloseOnEscape } from '~/utils/hooks'; @@ -7,9 +10,8 @@ import { InputText } from '~/components/input/InputText'; import { Button } from '~/components/input/Button'; import { Padder } from '~/components/containers/Padder'; import * as styles from './styles.scss'; -import { selectAuthLogin } from "~/redux/auth/selectors"; +import { selectAuthLogin } from '~/redux/auth/selectors'; import * as ACTIONS from '~/redux/auth/actions'; -import { connect } from "react-redux"; const mapStateToProps = selectAuthLogin; @@ -20,7 +22,9 @@ const mapDispatchToProps = { type IProps = ReturnType & typeof mapDispatchToProps & IDialogProps & {}; -const LoginDialogUnconnected: FC = ({ onRequestClose, error, userSendLoginRequest, userSetLoginError }) => { +const LoginDialogUnconnected: FC = ({ + onRequestClose, error, userSendLoginRequest, userSetLoginError +}) => { const [username, setUserName] = useState(''); const [password, setPassword] = useState(''); @@ -31,7 +35,7 @@ const LoginDialogUnconnected: FC = ({ onRequestClose, error, userSendLog useEffect(() => { if (error) userSetLoginError(null); - }, [username, password]); + }, [username, password, error, userSetLoginError]); const buttons = ( diff --git a/src/containers/dialogs/Modal/index.tsx b/src/containers/dialogs/Modal/index.tsx index 2bfc3aca..13b1a2d6 100644 --- a/src/containers/dialogs/Modal/index.tsx +++ b/src/containers/dialogs/Modal/index.tsx @@ -1,10 +1,10 @@ import React, { Attributes, FC, useCallback } from 'react'; +import { connect } from 'react-redux'; +import ReactDOM from 'react-dom'; import * as styles from './styles.scss'; import { IState } from '~/redux/store'; import * as ACTIONS from '~/redux/modal/actions'; -import { connect } from 'react-redux'; import { DIALOG_CONTENT, IDialogProps } from '~/redux/modal/constants'; -import ReactDOM from 'react-dom'; const mapStateToProps = ({ modal }: IState) => ({ ...modal }); const mapDispatchToProps = { diff --git a/src/containers/dialogs/ScrollDialog/index.tsx b/src/containers/dialogs/ScrollDialog/index.tsx index a2a72499..431865ed 100644 --- a/src/containers/dialogs/ScrollDialog/index.tsx +++ b/src/containers/dialogs/ScrollDialog/index.tsx @@ -1,4 +1,6 @@ -import React, { FC, MouseEventHandler, ReactChild, useCallback, useEffect, useState } from 'react'; +import React, { + FC, MouseEventHandler, ReactChild, useCallback, useEffect, useState +} from 'react'; // import { DialogPanel } from '~/components/panels/DialogPanel'; import classNames from 'classnames'; import { Scroll } from '~/components/containers/Scroll'; @@ -41,7 +43,7 @@ const ScrollDialog: FC = ({ useEffect(() => { window.addEventListener('resize', onResize); return () => window.removeEventListener('resize', onResize); - }, []); + }, [onResize]); const onScroll = useCallback( ({ target: { scrollTop = 0 } = {} } = {}) => { @@ -54,7 +56,7 @@ const ScrollDialog: FC = ({ [top_sticky, top_sticky_offset, show_top_sticky, setShowTopSticky] ); - useEffect(() => onScroll(), []); + useEffect(() => onScroll(), [onScroll]); useEffect(() => { if (ref && onRefCapture) onRefCapture(ref); }, [ref, onRefCapture]); diff --git a/src/containers/examples/EditorExample/index.tsx b/src/containers/examples/EditorExample/index.tsx index 79508724..b2fafa5b 100644 --- a/src/containers/examples/EditorExample/index.tsx +++ b/src/containers/examples/EditorExample/index.tsx @@ -1,17 +1,17 @@ -import React, { FC } from "react"; -import { Card } from "~/components/containers/Card"; -import * as styles from "./styles.scss"; -import { Group } from "~/components/containers/Group"; -import { CellGrid } from "~/components/containers/CellGrid"; -import { Panel } from "~/components/containers/Panel"; -import classNames from "classnames"; -import { Scroll } from "~/components/containers/Scroll"; -import { Tags } from "~/components/node/Tags"; -import { Button } from "~/components/input/Button"; -import { Filler } from "~/components/containers/Filler"; -import { InputText } from "~/components/input/InputText"; -import { Icon } from "~/components/input/Icon"; -import { Grid } from "~/components/containers/Grid"; +import React, { FC } from 'react'; +import classNames from 'classnames'; +import { Card } from '~/components/containers/Card'; +import * as styles from './styles.scss'; +import { Group } from '~/components/containers/Group'; +import { CellGrid } from '~/components/containers/CellGrid'; +import { Panel } from '~/components/containers/Panel'; +import { Scroll } from '~/components/containers/Scroll'; +import { Tags } from '~/components/node/Tags'; +import { Button } from '~/components/input/Button'; +import { Filler } from '~/components/containers/Filler'; +import { InputText } from '~/components/input/InputText'; +import { Icon } from '~/components/input/Icon'; +import { Grid } from '~/components/containers/Grid'; interface IProps {} @@ -48,11 +48,11 @@ const EditorExample: FC = () => ( diff --git a/src/containers/examples/ImageExample/index.tsx b/src/containers/examples/ImageExample/index.tsx index bbc60ccc..500f3188 100644 --- a/src/containers/examples/ImageExample/index.tsx +++ b/src/containers/examples/ImageExample/index.tsx @@ -1,16 +1,16 @@ -import React, { FC } from "react"; -import { Card } from "~/components/containers/Card"; -import * as styles from "./styles.scss"; -import { Group } from "~/components/containers/Group"; -import { Padder } from "~/components/containers/Padder"; -import range from "ramda/es/range"; -import { Comment } from "~/components/node/Comment"; -import { NodePanel } from "~/components/node/NodePanel"; -import { NodeRelated } from "~/components/node/NodeRelated"; -import { Tags } from "~/components/node/Tags"; -import { MenuButton } from "~/components/node/MenuButton"; -import { NodeNoComments } from "~/components/node/NodeNoComments"; -import { InputText } from "~/components/input/InputText"; +import React, { FC } from 'react'; +import range from 'ramda/es/range'; +import { Card } from '~/components/containers/Card'; +import * as styles from './styles.scss'; +import { Group } from '~/components/containers/Group'; +import { Padder } from '~/components/containers/Padder'; +import { Comment } from '~/components/node/Comment'; +import { NodePanel } from '~/components/node/NodePanel'; +import { NodeRelated } from '~/components/node/NodeRelated'; +import { Tags } from '~/components/node/Tags'; +import { MenuButton } from '~/components/node/MenuButton'; +import { NodeNoComments } from '~/components/node/NodeNoComments'; +import { InputText } from '~/components/input/InputText'; interface IProps {} @@ -55,11 +55,11 @@ const ImageExample: FC = () => ( diff --git a/src/containers/flow/FlowLayout/index.tsx b/src/containers/flow/FlowLayout/index.tsx index 6ddb5110..fff9250e 100644 --- a/src/containers/flow/FlowLayout/index.tsx +++ b/src/containers/flow/FlowLayout/index.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { TestGrid } from "~/components/flow/TestGrid"; +import { TestGrid } from '~/components/flow/TestGrid'; export const FlowLayout = () => (
diff --git a/src/containers/main/MainLayout/index.tsx b/src/containers/main/MainLayout/index.tsx index 35e695ef..2531f72b 100644 --- a/src/containers/main/MainLayout/index.tsx +++ b/src/containers/main/MainLayout/index.tsx @@ -1,17 +1,14 @@ import * as React from 'react'; -import { SidePane } from "~/components/main/SidePane"; +import { SidePane } from '~/components/main/SidePane'; import * as styles from './styles.scss'; -import { Header } from "~/components/main/Header"; +import { Header } from '~/components/main/Header'; -export const MainLayout = ({ children }) => { +export const MainLayout = ({ children }) => ( +
+
- return ( -
-
- -
- {children} -
+
+ {children}
- ); -}; +
+); diff --git a/src/containers/node/NodeLayout/index.tsx b/src/containers/node/NodeLayout/index.tsx index 7e4bf731..e7dda895 100644 --- a/src/containers/node/NodeLayout/index.tsx +++ b/src/containers/node/NodeLayout/index.tsx @@ -4,7 +4,7 @@ import * as styles from './styles.scss'; interface IProps {} const NodeLayout: FC = () => ( -
+
); export { NodeLayout }; diff --git a/src/redux/auth/actions.ts b/src/redux/auth/actions.ts index d816f1df..cbfea4eb 100644 --- a/src/redux/auth/actions.ts +++ b/src/redux/auth/actions.ts @@ -1,10 +1,10 @@ -import { AUTH_USER_ACTIONS } from "~/redux/auth/constants"; -import {IAuthState, IUser} from "~/redux/auth/types"; +import { AUTH_USER_ACTIONS } from '~/redux/auth/constants'; +import { IAuthState, IUser } from '~/redux/auth/types'; export const userSendLoginRequest = ({ username, password }: { - username: string, password: string + username: string; password: string; }) => ({ type: AUTH_USER_ACTIONS.SEND_LOGIN_REQUEST, username, password }); export const userSetLoginError = (error: IAuthState['login']['error']) => ({ diff --git a/src/redux/auth/api.ts b/src/redux/auth/api.ts index 7b55fbbd..bd534f0d 100644 --- a/src/redux/auth/api.ts +++ b/src/redux/auth/api.ts @@ -15,9 +15,8 @@ export const apiUserLogin = ({ }: { username: string; password: string; -}): Promise> => - api - .post(API.USER.LOGIN, { username, password }) - .then(resultMiddleware) - .catch(errorMiddleware) - .then(userLoginTransform); +}): Promise> => api + .post(API.USER.LOGIN, { username, password }) + .then(resultMiddleware) + .catch(errorMiddleware) + .then(userLoginTransform); diff --git a/src/redux/auth/constants.ts b/src/redux/auth/constants.ts index d8444efe..ad414940 100644 --- a/src/redux/auth/constants.ts +++ b/src/redux/auth/constants.ts @@ -1,4 +1,4 @@ -import {IToken, IUser} from "~/redux/auth/types"; +import { IToken, IUser } from '~/redux/auth/types'; export const AUTH_USER_ACTIONS = { SEND_LOGIN_REQUEST: 'SEND_LOGIN_REQUEST', @@ -39,11 +39,11 @@ export const EMPTY_USER: IUser = { }; export interface IApiUser { - id: number, - username: string, - email: string, - role: string, - activated: boolean, - createdAt: string, - updatedAt: string, + id: number; + username: string; + email: string; + role: string; + activated: boolean; + createdAt: string; + updatedAt: string; } diff --git a/src/redux/auth/handlers.ts b/src/redux/auth/handlers.ts index aefb6936..2044fc54 100644 --- a/src/redux/auth/handlers.ts +++ b/src/redux/auth/handlers.ts @@ -1,6 +1,6 @@ -import {AUTH_USER_ACTIONS} from "~/redux/auth/constants"; -import * as ActionCreators from "~/redux/auth/actions"; -import {IAuthState} from "~/redux/auth/types"; +import { AUTH_USER_ACTIONS } from '~/redux/auth/constants'; +import * as ActionCreators from '~/redux/auth/actions'; +import { IAuthState } from '~/redux/auth/types'; interface ActionHandler { (state: IAuthState, payload: T extends (...args: any[]) => infer R ? R : any): IAuthState; diff --git a/src/redux/auth/reducer.ts b/src/redux/auth/reducer.ts index fd7acc69..73c065b4 100644 --- a/src/redux/auth/reducer.ts +++ b/src/redux/auth/reducer.ts @@ -1,7 +1,7 @@ -import { EMPTY_USER } from "~/redux/auth/constants"; -import { createReducer } from "~/utils/reducer"; -import { IAuthState } from "~/redux/auth/types"; -import { AUTH_USER_HANDLERS } from "~/redux/auth/handlers"; +import { EMPTY_USER } from '~/redux/auth/constants'; +import { createReducer } from '~/utils/reducer'; +import { IAuthState } from '~/redux/auth/types'; +import { AUTH_USER_HANDLERS } from '~/redux/auth/handlers'; const HANDLERS = { ...AUTH_USER_HANDLERS, diff --git a/src/redux/auth/sagas.ts b/src/redux/auth/sagas.ts index e969ee89..23656fd1 100644 --- a/src/redux/auth/sagas.ts +++ b/src/redux/auth/sagas.ts @@ -1,12 +1,14 @@ -import { call, put, takeLatest, select } from 'redux-saga/effects'; +import { + call, put, takeLatest, select +} from 'redux-saga/effects'; import { SagaIterator } from 'redux-saga'; -import { AUTH_USER_ACTIONS } from "~/redux/auth/constants"; -import * as ActionCreators from '~/redux/auth/actions'; -import { authSetToken, userSetLoginError, authSetUser } from "~/redux/auth/actions"; -import { apiUserLogin } from "~/redux/auth/api"; -import { modalSetShown, modalShowDialog } from "~/redux/modal/actions"; -import { selectToken } from './selectors'; import { push } from 'connected-react-router'; +import { AUTH_USER_ACTIONS } from '~/redux/auth/constants'; +import * as ActionCreators from '~/redux/auth/actions'; +import { authSetToken, userSetLoginError, authSetUser } from '~/redux/auth/actions'; +import { apiUserLogin } from '~/redux/auth/api'; +import { modalSetShown, modalShowDialog } from '~/redux/modal/actions'; +import { selectToken } from './selectors'; import { URLS } from '~/constants/urls'; import { DIALOGS } from '../modal/constants'; import { IResultWithStatus } from '../types'; @@ -30,7 +32,7 @@ export function* reqWrapper(requestAction, props = {}): ReturnType): SagaIterator { if (!username || !password) return; - const { error, data: { token, user } }: IResultWithStatus<{ token: string, user: IUser }> = yield call(apiUserLogin, { username, password }); + const { error, data: { token, user } }: IResultWithStatus<{ token: string; user: IUser }> = yield call(apiUserLogin, { username, password }); console.log({ token, error }); diff --git a/src/redux/auth/selectors.ts b/src/redux/auth/selectors.ts index 483d874f..bd379d2b 100644 --- a/src/redux/auth/selectors.ts +++ b/src/redux/auth/selectors.ts @@ -1,4 +1,4 @@ -import { IState } from "~/redux/store"; +import { IState } from '~/redux/store'; export const selectUser = (state: IState): IState['auth']['user'] => state.auth.user; export const selectToken = (state: IState): IState['auth']['token'] => state.auth.token; diff --git a/src/redux/auth/transforms.ts b/src/redux/auth/transforms.ts index 1ee063e6..513b07fe 100644 --- a/src/redux/auth/transforms.ts +++ b/src/redux/auth/transforms.ts @@ -1,5 +1,5 @@ -import { IResultWithStatus } from "~/redux/types"; -import { HTTP_RESPONSES } from "~/utils/api"; +import { IResultWithStatus } from '~/redux/types'; +import { HTTP_RESPONSES } from '~/utils/api'; export const userLoginTransform = ({ status, data, error }: IResultWithStatus): IResultWithStatus => { switch (true) { @@ -12,4 +12,4 @@ export const userLoginTransform = ({ status, data, error }: IResultWithStatus state.modal; diff --git a/src/redux/node/constants.ts b/src/redux/node/constants.ts index 345fd4a8..9f0760a9 100644 --- a/src/redux/node/constants.ts +++ b/src/redux/node/constants.ts @@ -1,4 +1,4 @@ -import {IBlock, INode} from "../types"; +import { IBlock, INode } from '../types'; export const EMPTY_BLOCK: IBlock = { type: null, @@ -25,4 +25,4 @@ export const EMPTY_NODE: INode = { show_description: false, } }, -} +}; diff --git a/src/redux/node/handlers.ts b/src/redux/node/handlers.ts index 4601c35b..bcb6c72a 100644 --- a/src/redux/node/handlers.ts +++ b/src/redux/node/handlers.ts @@ -1,3 +1,3 @@ export const NODE_HANDLERS = { -}; \ No newline at end of file +}; diff --git a/src/redux/node/reducer.ts b/src/redux/node/reducer.ts index 5826f9c4..0b4f9e26 100644 --- a/src/redux/node/reducer.ts +++ b/src/redux/node/reducer.ts @@ -1,9 +1,9 @@ -import { createReducer } from "~/utils/reducer"; -import { INode } from "../types"; -import { EMPTY_BLOCK, EMPTY_NODE } from "./constants"; -import { NODE_HANDLERS } from "./handlers"; -import { EMPTY_FILE } from "../uploads/constants"; import uuid from 'uuid4'; +import { createReducer } from '~/utils/reducer'; +import { INode } from '../types'; +import { EMPTY_BLOCK, EMPTY_NODE } from './constants'; +import { NODE_HANDLERS } from './handlers'; +import { EMPTY_FILE } from '../uploads/constants'; export type INodeState = Readonly<{ is_loading: boolean; diff --git a/src/redux/node/sagas.ts b/src/redux/node/sagas.ts index 0d5fbe5f..e5c431c8 100644 --- a/src/redux/node/sagas.ts +++ b/src/redux/node/sagas.ts @@ -1,3 +1,3 @@ export default function* nodeSaga() { -} \ No newline at end of file +} diff --git a/src/redux/node/selectors.ts b/src/redux/node/selectors.ts index 0815f968..f5b591c0 100644 --- a/src/redux/node/selectors.ts +++ b/src/redux/node/selectors.ts @@ -1,4 +1,4 @@ -import { IState } from "../store"; -import { INodeState } from "./reducer"; +import { IState } from '../store'; +import { INodeState } from './reducer'; -export const selectNode = (state: IState): INodeState => state.node; \ No newline at end of file +export const selectNode = (state: IState): INodeState => state.node; diff --git a/src/redux/store.ts b/src/redux/store.ts index 790f3cc1..93a1a638 100644 --- a/src/redux/store.ts +++ b/src/redux/store.ts @@ -1,28 +1,30 @@ -import { createStore, applyMiddleware, combineReducers, compose, Store } from "redux"; +import { + createStore, applyMiddleware, combineReducers, compose, Store +} from 'redux'; -import { persistStore, persistReducer } from "redux-persist"; -import storage from "redux-persist/lib/storage"; -import createSagaMiddleware from "redux-saga"; -import { connectRouter, RouterState, routerMiddleware } from "connected-react-router"; -import { createBrowserHistory } from "history"; -import { PersistConfig, Persistor } from "redux-persist/es/types"; +import { persistStore, persistReducer } from 'redux-persist'; +import storage from 'redux-persist/lib/storage'; +import createSagaMiddleware from 'redux-saga'; +import { connectRouter, RouterState, routerMiddleware } from 'connected-react-router'; +import { createBrowserHistory } from 'history'; +import { PersistConfig, Persistor } from 'redux-persist/es/types'; -import authReducer from "~/redux/auth/reducer"; -import authSaga from "~/redux/auth/sagas"; +import authReducer from '~/redux/auth/reducer'; +import authSaga from '~/redux/auth/sagas'; -import nodeReducer, { INodeState } from "~/redux/node/reducer"; -import nodeSaga from "~/redux/node/sagas"; +import nodeReducer, { INodeState } from '~/redux/node/reducer'; +import nodeSaga from '~/redux/node/sagas'; -import uploadReducer, { IUploadState } from "~/redux/uploads/reducer"; -import uploadSaga from "~/redux/uploads/sagas"; +import uploadReducer, { IUploadState } from '~/redux/uploads/reducer'; +import uploadSaga from '~/redux/uploads/sagas'; -import { IAuthState } from "~/redux/auth/types"; +import { IAuthState } from '~/redux/auth/types'; -import modalReducer, { IModalState } from "~/redux/modal/reducer"; +import modalReducer, { IModalState } from '~/redux/modal/reducer'; const authPersistConfig: PersistConfig = { - key: "auth", - whitelist: ["token", "user"], + key: 'auth', + whitelist: ['token', 'user'], storage }; @@ -37,10 +39,9 @@ export interface IState { export const sagaMiddleware = createSagaMiddleware(); export const history = createBrowserHistory(); -const composeEnhancers = - typeof window === "object" && (window).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ - ? (window).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) - : compose; +const composeEnhancers = typeof window === 'object' && (window).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ + ? (window).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) + : compose; export const store = createStore( combineReducers({ diff --git a/src/redux/types.ts b/src/redux/types.ts index 4f8e250c..2a2cc24d 100644 --- a/src/redux/types.ts +++ b/src/redux/types.ts @@ -7,8 +7,8 @@ export interface ITag { } export type IInputTextProps = DetailedHTMLProps< - InputHTMLAttributes, - HTMLInputElement +InputHTMLAttributes, +HTMLInputElement > & { wrapperClassName?: string; handler?: (value: string) => void; @@ -72,7 +72,7 @@ export interface IFileWithUUID { } export interface IBlock { - type: 'image' | 'text' | 'media' | 'youtube' | 'video', + type: 'image' | 'text' | 'media' | 'youtube' | 'video'; temp_ids: UUID[]; attaches: UUID[]; } @@ -100,7 +100,7 @@ export interface INode { flow: { display: 'single' | 'double' | 'quadro'; show_description: boolean; - } + }; }; createdAt?: string; diff --git a/src/redux/uploads/actions.ts b/src/redux/uploads/actions.ts index 457f27ee..aa3e4419 100644 --- a/src/redux/uploads/actions.ts +++ b/src/redux/uploads/actions.ts @@ -1,30 +1,30 @@ -import { UPLOAD_ACTIONS } from "~/redux/uploads/constants"; -import { IFileWithUUID, UUID, IFile } from "../types"; -import { IUploadStatus } from "./reducer"; +import { UPLOAD_ACTIONS } from '~/redux/uploads/constants'; +import { IFileWithUUID, UUID, IFile } from '../types'; +import { IUploadStatus } from './reducer'; export const uploadUploadFiles = (files: IFileWithUUID[]) => ({ files, - type: UPLOAD_ACTIONS.UPLOAD_FILES, + type: UPLOAD_ACTIONS.UPLOAD_FILES }); export const uploadAddStatus = (temp_id: UUID, status?: Partial) => ({ temp_id, status, - type: UPLOAD_ACTIONS.ADD_STATUS, + type: UPLOAD_ACTIONS.ADD_STATUS }); export const uploadAddFile = (file: IFile) => ({ file, - type: UPLOAD_ACTIONS.ADD_FILE, + type: UPLOAD_ACTIONS.ADD_FILE }); export const uploadSetStatus = (temp_id: UUID, status?: Partial) => ({ temp_id, status, - type: UPLOAD_ACTIONS.SET_STATUS, + type: UPLOAD_ACTIONS.SET_STATUS }); export const uploadDropStatus = (temp_id: UUID) => ({ temp_id, - type: UPLOAD_ACTIONS.DROP_STATUS, + type: UPLOAD_ACTIONS.DROP_STATUS }); diff --git a/src/redux/uploads/constants.ts b/src/redux/uploads/constants.ts index 1d7bd25d..6cdc17e0 100644 --- a/src/redux/uploads/constants.ts +++ b/src/redux/uploads/constants.ts @@ -1,5 +1,5 @@ -import { IFile } from "~/redux/types"; -import { IUploadState, IUploadStatus } from "./reducer"; +import { IFile } from '~/redux/types'; +import { IUploadState, IUploadStatus } from './reducer'; const prefix = 'UPLOAD.'; @@ -38,4 +38,4 @@ export const EMPTY_UPLOAD_STATUS: IUploadStatus = { thumbnail_url: null, type: null, temp_id: null, -} \ No newline at end of file +}; diff --git a/src/redux/uploads/handlers.ts b/src/redux/uploads/handlers.ts index f3df0a23..3aae7028 100644 --- a/src/redux/uploads/handlers.ts +++ b/src/redux/uploads/handlers.ts @@ -2,7 +2,9 @@ import assocPath from 'ramda/es/assocPath'; import omit from 'ramda/es/omit'; import { UPLOAD_ACTIONS, EMPTY_UPLOAD_STATUS } from './constants'; -import { uploadAddStatus, uploadDropStatus, uploadSetStatus, uploadAddFile } from './actions'; +import { + uploadAddStatus, uploadDropStatus, uploadSetStatus, uploadAddFile +} from './actions'; import { IUploadState } from './reducer'; const addStatus = ( @@ -17,33 +19,25 @@ const addStatus = ( const dropStatus = ( state: IUploadState, { temp_id }: ReturnType -): IUploadState => assocPath( - ['statuses'], - omit([temp_id], state.statuses), - state, -); +): IUploadState => assocPath(['statuses'], omit([temp_id], state.statuses), state); const setStatus = ( state: IUploadState, { temp_id, status }: ReturnType ): IUploadState => assocPath( ['statuses'], - { ...state.statuses, [temp_id]: { ...(state.statuses[temp_id] || EMPTY_UPLOAD_STATUS), ...status } }, + { + ...state.statuses, + [temp_id]: { ...(state.statuses[temp_id] || EMPTY_UPLOAD_STATUS), ...status } + }, state ); -const addFile = ( - state: IUploadState, - { file }: ReturnType -): IUploadState => assocPath( - ['files'], - { ...state.files, [file.id]: file }, - state -); +const addFile = (state: IUploadState, { file }: ReturnType): IUploadState => assocPath(['files'], { ...state.files, [file.id]: file }, state); export const UPLOAD_HANDLERS = { [UPLOAD_ACTIONS.ADD_STATUS]: addStatus, [UPLOAD_ACTIONS.DROP_STATUS]: dropStatus, [UPLOAD_ACTIONS.SET_STATUS]: setStatus, - [UPLOAD_ACTIONS.ADD_FILE]: addFile, + [UPLOAD_ACTIONS.ADD_FILE]: addFile }; diff --git a/src/redux/uploads/mocks.ts b/src/redux/uploads/mocks.ts index dc3e6bf8..e8ccc9e9 100644 --- a/src/redux/uploads/mocks.ts +++ b/src/redux/uploads/mocks.ts @@ -1,9 +1,9 @@ -import { IResultWithStatus, IFile, UUID } from "../types"; -import { HTTP_RESPONSES } from "~/utils/api"; -import { EMPTY_FILE } from "./constants"; import uuid from 'uuid4'; +import { IResultWithStatus, IFile, UUID } from '../types'; +import { HTTP_RESPONSES } from '~/utils/api'; +import { EMPTY_FILE } from './constants'; -export const uploadMock = ({ temp_id, file }: { temp_id: UUID, file: File }): Promise> => ( +export const uploadMock = ({ temp_id, file }: { temp_id: UUID; file: File }): Promise> => ( Promise.resolve({ status: HTTP_RESPONSES.CREATED, data: { @@ -12,4 +12,4 @@ export const uploadMock = ({ temp_id, file }: { temp_id: UUID, file: File }): Pr temp_id, }, error: null, - })); \ No newline at end of file + })); diff --git a/src/redux/uploads/reducer.ts b/src/redux/uploads/reducer.ts index dfb03bb2..43f3f205 100644 --- a/src/redux/uploads/reducer.ts +++ b/src/redux/uploads/reducer.ts @@ -1,6 +1,6 @@ -import { createReducer } from "~/utils/reducer"; -import { IFile, UUID } from "~/redux/types"; -import { UPLOAD_HANDLERS } from "./handlers"; +import { createReducer } from '~/utils/reducer'; +import { IFile, UUID } from '~/redux/types'; +import { UPLOAD_HANDLERS } from './handlers'; export interface IUploadStatus { is_uploading: boolean; @@ -24,4 +24,4 @@ const INITIAL_STATE = { statuses: {}, }; -export default createReducer(INITIAL_STATE, UPLOAD_HANDLERS); \ No newline at end of file +export default createReducer(INITIAL_STATE, UPLOAD_HANDLERS); diff --git a/src/redux/uploads/sagas.ts b/src/redux/uploads/sagas.ts index 23cd607e..9e00b94c 100644 --- a/src/redux/uploads/sagas.ts +++ b/src/redux/uploads/sagas.ts @@ -1,11 +1,15 @@ -import { takeEvery, all, spawn, call, put, take, fork, race } from 'redux-saga/effects'; +import { + takeEvery, all, spawn, call, put, take, fork, race +} from 'redux-saga/effects'; import { UPLOAD_ACTIONS } from '~/redux/uploads/constants'; -import { uploadUploadFiles, uploadSetStatus, uploadAddStatus, uploadDropStatus, uploadAddFile } from './actions'; +import { + uploadUploadFiles, uploadSetStatus, uploadAddStatus, uploadDropStatus, uploadAddFile +} from './actions'; import { reqWrapper } from '../auth/sagas'; import { createUploader, uploadGetThumb, fakeUploader } from '~/utils/uploader'; import { HTTP_RESPONSES } from '~/utils/api'; import { VALIDATORS } from '~/utils/validators'; -import { UUID, IFileWithUUID, IResultWithStatus, IFile } from '../types'; +import { UUID, IFileWithUUID, IFile } from '../types'; function* uploadCall({ temp_id, onProgress, file }) { return yield call(reqWrapper, fakeUploader, { file: { url: 'some', error: 'cant do this boss' }, onProgress, mustSucceed: true }); diff --git a/src/redux/uploads/selectors.ts b/src/redux/uploads/selectors.ts index 6981b5d7..80e4c5e2 100644 --- a/src/redux/uploads/selectors.ts +++ b/src/redux/uploads/selectors.ts @@ -2,4 +2,4 @@ import { IState } from '~/redux/store'; import { IUploadState } from '~/redux/uploads/reducer'; export const selectUploads = ({ uploads }: IState): IUploadState => uploads; -export const selectUploadStatuses = ({ uploads: { statuses } }: IState): IUploadState['statuses'] => statuses; \ No newline at end of file +export const selectUploadStatuses = ({ uploads: { statuses } }: IState): IUploadState['statuses'] => statuses; diff --git a/src/sprites/Sprites.tsx b/src/sprites/Sprites.tsx index 522df2e1..f9b17ccf 100644 --- a/src/sprites/Sprites.tsx +++ b/src/sprites/Sprites.tsx @@ -1,42 +1,43 @@ -import React, {FC} from 'react'; +import React, { FC } from 'react'; const Sprites: FC<{}> = () => ( - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - + + ); diff --git a/src/utils/api/index.ts b/src/utils/api/index.ts index 051b8457..004d576c 100644 --- a/src/utils/api/index.ts +++ b/src/utils/api/index.ts @@ -1,10 +1,10 @@ import axios, { AxiosRequestConfig } from 'axios'; +import { push } from 'connected-react-router'; import { API } from '~/constants/api'; import { store } from '~/redux/store'; -import { push } from 'connected-react-router'; import { IResultWithStatus } from '~/redux/types'; -export const authMiddleware = r => { +export const authMiddleware = (r) => { store.dispatch(push('/login')); return r; }; @@ -23,18 +23,15 @@ export const HTTP_RESPONSES = { TOO_MANY_REQUESTS: 429, }; -export const resultMiddleware = ({ +export const resultMiddleware = (<)T extends {}>({ status, data, }: { status: number; data: T; -}): { status: number; data: T } => { - return data && { status, data }; -}; +}): { status: number; data: T } => data && { status, data }; -export const errorMiddleware = (debug): IResultWithStatus => - debug && debug.response +export const errorMiddleware = (debug): IResultWithStatus => debug && debug.response ? debug.response : { status: HTTP_RESPONSES.CONNECTION_REFUSED, diff --git a/src/utils/dom.ts b/src/utils/dom.ts index 2845603a..c1524398 100644 --- a/src/utils/dom.ts +++ b/src/utils/dom.ts @@ -26,7 +26,6 @@ export const describeArc = ( startAngle: number = 0, endAngle: number = 360, ): string => { - const start = polarToCartesian(x, y, radius, endAngle); const end = polarToCartesian(x, y, radius, startAngle); diff --git a/src/utils/fn.ts b/src/utils/fn.ts index f84257b9..e043404f 100644 --- a/src/utils/fn.ts +++ b/src/utils/fn.ts @@ -3,4 +3,4 @@ import insert from 'ramda/es/insert'; import nth from 'ramda/es/nth'; import remove from 'ramda/es/remove'; -export const moveArrItem = curry((at, to, list) => insert(to, nth(at, list), remove(at, 1, list))) \ No newline at end of file +export const moveArrItem = curry((at, to, list) => insert(to, nth(at, list), remove(at, 1, list))); diff --git a/src/utils/hooks.ts b/src/utils/hooks.ts index 3f698660..54119c0b 100644 --- a/src/utils/hooks.ts +++ b/src/utils/hooks.ts @@ -1,17 +1,19 @@ -import { useCallback, useEffect, useRef, useState } from 'react'; +import { + useCallback, useEffect, useRef, useState +} from 'react'; + export const useCloseOnEscape = (onRequestClose: () => void, ignore_inputs = false) => { const onEscape = useCallback( - event => { + (event) => { if (event.key !== 'Escape') return; if ( - ignore_inputs && - (event.target.tagName === 'INPUT' || event.target.tagName === 'TEXTAREA') - ) - return; + ignore_inputs + && (event.target.tagName === 'INPUT' || event.target.tagName === 'TEXTAREA') + ) return; onRequestClose(); }, - [onRequestClose], + [ignore_inputs, onRequestClose], ); useEffect(() => { @@ -30,5 +32,5 @@ export const useDelayedReady = (setReady: (val: boolean) => void, delay: number return () => { if (timer) clearTimeout(timer); }; - }, []); + }, [delay, setReady]); }; diff --git a/src/utils/reducer.ts b/src/utils/reducer.ts index 59ce597f..dcf15bcc 100644 --- a/src/utils/reducer.ts +++ b/src/utils/reducer.ts @@ -14,6 +14,6 @@ type Handlers> = { export const createReducer = ( initialState, handlers, -) => (state = initialState, action) => handlers.hasOwnProperty(action.type) +) => (state = initialState, action) => (handlers.hasOwnProperty(action.type) ? handlers[action.type](state, action) - : state; + : state); diff --git a/src/utils/uploader.ts b/src/utils/uploader.ts index 24f556fd..4d8d20cf 100644 --- a/src/utils/uploader.ts +++ b/src/utils/uploader.ts @@ -13,7 +13,7 @@ export function createUploader( ): [(args: T) => (args: T & { onProgress: (current: number, total: number) => void }) => any, EventChannel] { let emit; - const chan = eventChannel(emitter => { + const chan = eventChannel((emitter) => { emit = emitter; return () => null; }); @@ -27,7 +27,7 @@ export function createUploader( return [wrappedCallback, chan]; } -export const uploadGetThumb = async file => { +export const uploadGetThumb = async (file) => { if (!file.type || !VALIDATORS.IS_IMAGE_MIME(file.type)) return ''; return await new Promise((resolve, reject) => {