From 5cd5f9246f6248a61d51ad1e77fa1265738dabc5 Mon Sep 17 00:00:00 2001 From: Jenya Khort Date: Fri, 19 Jun 2020 10:59:20 +0700 Subject: [PATCH 001/740] Initial commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..2904aaae4 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# EkoMessagingSDKUIKitWeb +"Ready to go" UI components integrated with Eko Web Messaging SDK. From 6a5ee87048a65d326295f60203bbfafdb492fa3f Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 26 Jun 2020 09:33:10 +0700 Subject: [PATCH 002/740] react rollup storybook styled-components setup --- .gitignore | 5 + README.md | 45 +- jest.config.js | 16 + jest.setup.ts | 1 + package-lock.json | 16983 ++++++++++++++++++ package.json | 52 + rollup.config.js | 29 + src/TestComponent/TestComponent.stories.tsx | 10 + src/TestComponent/TestComponent.test.tsx | 34 + src/TestComponent/TestComponent.tsx | 31 + src/TestComponent/TestComponent.types.ts | 3 + src/index.ts | 3 + tsconfig.json | 23 + util/create-component.js | 34 + util/templates/component.js | 15 + util/templates/component.stories.js | 15 + util/templates/component.test.js | 31 + util/templates/component.types.js | 8 + util/templates/index.js | 6 + 19 files changed, 17343 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 jest.config.js create mode 100644 jest.setup.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 rollup.config.js create mode 100644 src/TestComponent/TestComponent.stories.tsx create mode 100644 src/TestComponent/TestComponent.test.tsx create mode 100644 src/TestComponent/TestComponent.tsx create mode 100644 src/TestComponent/TestComponent.types.ts create mode 100644 src/index.ts create mode 100644 tsconfig.json create mode 100644 util/create-component.js create mode 100644 util/templates/component.js create mode 100644 util/templates/component.stories.js create mode 100644 util/templates/component.test.js create mode 100644 util/templates/component.types.js create mode 100644 util/templates/index.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..6e603d36e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +build/ +storybook-static/ + +.DS_Store diff --git a/README.md b/README.md index 2904aaae4..1bfc4dfe6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,45 @@ # EkoMessagingSDKUIKitWeb -"Ready to go" UI components integrated with Eko Web Messaging SDK. + +## Development + +### Testing + +``` +npm run test +``` + +### Building + +``` +npm run build +``` + +### Storybook + +To run a live-reload Storybook server on your local machine: + +``` +npm run storybook +``` + +To export your Storybook as static files: + +``` +npm run storybook:export +``` + +### Generating New Components + +``` +npm run generate YourComponentName +``` + +Add the component to `index.ts` exports if you want the library to export the component. + +## Publishing + +``` +npm publish +``` + +The `"prepublishOnly": "npm run build"` script in `package.json` will execute before publish occurs, ensuring the `build/` directory and the compiled component library exist. diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 000000000..ccd649ca2 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + roots: ["src"], + setupFilesAfterEnv: ["./jest.setup.ts"], + moduleFileExtensions: ["ts", "tsx", "js"], + testPathIgnorePatterns: ["node_modules/"], + transform: { + "^.+\\.tsx?$": "ts-jest" + }, + testMatch: ["**/*.test.(ts|tsx)"], + moduleNameMapper: { + // Mocks out all these file formats when tests are run. + "\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": + "identity-obj-proxy", + "\\.(css|less|scss|sass)$": "identity-obj-proxy" + } +}; diff --git a/jest.setup.ts b/jest.setup.ts new file mode 100644 index 000000000..d0de870dc --- /dev/null +++ b/jest.setup.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom"; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..edd4447fb --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16983 @@ +{ + "name": "eko-ui-kit", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.3" + } + }, + "@babel/compat-data": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz", + "integrity": "sha512-BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz", + "integrity": "sha512-5YqWxYE3pyhIi84L84YcwjeEgS+fa7ZjK6IBVGTjDVfm64njkR2lfDhVR5OudLk8x2GK59YoSyVv+L/03k1q9w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helpers": "^7.10.1", + "@babel/parser": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz", + "integrity": "sha512-drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz", + "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.3.tgz", + "integrity": "sha512-lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.3", + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.3.tgz", + "integrity": "sha512-vkxmuFvmovtqTZknyMGj9+uQAZzz5Z9mrbnkJnPkaYGfKTaSsYcjQdXP0lgrWLVh8wU6bCjOmXOpx+kqUi+S5Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz", + "integrity": "sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-module-imports": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", + "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.1", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz", + "integrity": "sha512-iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-member-expression-to-functions": "^7.10.3", + "@babel/helper-optimise-call-expression": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", + "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-regex": "^7.10.1", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz", + "integrity": "sha512-bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.3", + "@babel/types": "^7.10.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz", + "integrity": "sha512-0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-function-name": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz", + "integrity": "sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz", + "integrity": "sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz", + "integrity": "sha512-9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz", + "integrity": "sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz", + "integrity": "sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==", + "dev": true, + "requires": { + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz", + "integrity": "sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz", + "integrity": "sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", + "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz", + "integrity": "sha512-sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-wrap-function": "^7.10.1", + "@babel/template": "^7.10.3", + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", + "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz", + "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helpers": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", + "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/highlight": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.3", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", + "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz", + "integrity": "sha512-WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-remap-async-to-generator": "^7.10.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz", + "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", + "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-decorators": "^7.8.3" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz", + "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", + "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz", + "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz", + "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-numeric-separator": "^7.10.1" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz", + "integrity": "sha512-ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz", + "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz", + "integrity": "sha512-yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz", + "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", + "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", + "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.1.tgz", + "integrity": "sha512-a9OAbQhKOwSle1Vr0NJu/ISg1sPfdEkfRKWpgPuzhnWWzForou2gIeUIIwjAMHRekhhpJ7eulZlYs0H14Cbi+g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz", + "integrity": "sha512-b3pWVncLBYoPP60UOTc7NMlbtsHQ6ITim78KQejNHK6WJ2mzV5kCcg4mIWpasAfJEgwVTibwo2e+FU7UEIKQUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz", + "integrity": "sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz", + "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz", + "integrity": "sha512-X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz", + "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz", + "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz", + "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", + "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz", + "integrity": "sha512-irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-define-map": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-optimise-call-expression": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz", + "integrity": "sha512-GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", + "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", + "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz", + "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz", + "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.1.tgz", + "integrity": "sha512-i4o0YwiJBIsIx7/liVCZ3Q2WkWr1/Yu39PksBOnh/khW2SwIFsGa5Ze+MSon5KbDfrEHP9NeyefAgvUSXzaEkw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-flow": "^7.10.1" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz", + "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz", + "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz", + "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz", + "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz", + "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz", + "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz", + "integrity": "sha512-GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz", + "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz", + "integrity": "sha512-I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz", + "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz", + "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", + "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz", + "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.1.tgz", + "integrity": "sha512-V4os6bkWt/jbrzfyVcZn2ZpuHZkvj3vyBU0U/dtS8SZuMS7Rfx5oknTrtfyXJ2/QZk8gX7Yls5Z921ItNpE30Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.3.tgz", + "integrity": "sha512-dOV44bnSW5KZ6kYF6xSHBth7TFiHHZReYXH/JH3XnFNV+soEL1F5d8JT7AJ3ZBncd19Qul7SN4YpBnyWOnQ8KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.3" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.3.tgz", + "integrity": "sha512-Y21E3rZmWICRJnvbGVmDLDZ8HfNDIwjGF3DXYHx1le0v0mIHCs0Gv5SavyW5Z/jgAHLaAoJPiwt+Dr7/zZKcOQ==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.3", + "@babel/helper-builder-react-jsx-experimental": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-syntax-jsx": "^7.10.1" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz", + "integrity": "sha512-XwDy/FFoCfw9wGFtdn5Z+dHh6HXKHkC6DwKNWpN74VWinUagZfDcEJc3Y8Dn5B3WMVnAllX8Kviaw7MtC5Epwg==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-jsx": "^7.10.1" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz", + "integrity": "sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-jsx": "^7.10.1" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz", + "integrity": "sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-jsx": "^7.10.1" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.3.tgz", + "integrity": "sha512-n/fWYGqvTl7OLZs/QcWaKMFdADPvC3V6jYuEOpPyvz97onsW9TXn196fHnHW1ZgkO20/rxLOgKnEtN1q9jkgqA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz", + "integrity": "sha512-H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz", + "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", + "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", + "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", + "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz", + "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-regex": "^7.10.1" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz", + "integrity": "sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz", + "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.3.tgz", + "integrity": "sha512-qU9Lu7oQyh3PGMQncNjQm8RWkzw6LqsWZQlZPQMgrGt6s3YiBIaQ+3CQV/FA/icGS5XlSWZGwo/l8ErTyelS0Q==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-syntax-typescript": "^7.10.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz", + "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz", + "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/preset-env": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.3.tgz", + "integrity": "sha512-jHaSUgiewTmly88bJtMHbOd1bJf2ocYxb5BWKSDQIP5tmgFuS/n0gl+nhSrYDhT33m0vPxp+rP8oYYgPgMNQlg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.3", + "@babel/helper-compilation-targets": "^7.10.2", + "@babel/helper-module-imports": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-proposal-async-generator-functions": "^7.10.3", + "@babel/plugin-proposal-class-properties": "^7.10.1", + "@babel/plugin-proposal-dynamic-import": "^7.10.1", + "@babel/plugin-proposal-json-strings": "^7.10.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-numeric-separator": "^7.10.1", + "@babel/plugin-proposal-object-rest-spread": "^7.10.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.3", + "@babel/plugin-proposal-private-methods": "^7.10.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.1", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.1", + "@babel/plugin-transform-arrow-functions": "^7.10.1", + "@babel/plugin-transform-async-to-generator": "^7.10.1", + "@babel/plugin-transform-block-scoped-functions": "^7.10.1", + "@babel/plugin-transform-block-scoping": "^7.10.1", + "@babel/plugin-transform-classes": "^7.10.3", + "@babel/plugin-transform-computed-properties": "^7.10.3", + "@babel/plugin-transform-destructuring": "^7.10.1", + "@babel/plugin-transform-dotall-regex": "^7.10.1", + "@babel/plugin-transform-duplicate-keys": "^7.10.1", + "@babel/plugin-transform-exponentiation-operator": "^7.10.1", + "@babel/plugin-transform-for-of": "^7.10.1", + "@babel/plugin-transform-function-name": "^7.10.1", + "@babel/plugin-transform-literals": "^7.10.1", + "@babel/plugin-transform-member-expression-literals": "^7.10.1", + "@babel/plugin-transform-modules-amd": "^7.10.1", + "@babel/plugin-transform-modules-commonjs": "^7.10.1", + "@babel/plugin-transform-modules-systemjs": "^7.10.3", + "@babel/plugin-transform-modules-umd": "^7.10.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.3", + "@babel/plugin-transform-new-target": "^7.10.1", + "@babel/plugin-transform-object-super": "^7.10.1", + "@babel/plugin-transform-parameters": "^7.10.1", + "@babel/plugin-transform-property-literals": "^7.10.1", + "@babel/plugin-transform-regenerator": "^7.10.3", + "@babel/plugin-transform-reserved-words": "^7.10.1", + "@babel/plugin-transform-shorthand-properties": "^7.10.1", + "@babel/plugin-transform-spread": "^7.10.1", + "@babel/plugin-transform-sticky-regex": "^7.10.1", + "@babel/plugin-transform-template-literals": "^7.10.3", + "@babel/plugin-transform-typeof-symbol": "^7.10.1", + "@babel/plugin-transform-unicode-escapes": "^7.10.1", + "@babel/plugin-transform-unicode-regex": "^7.10.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.3", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-flow": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.1.tgz", + "integrity": "sha512-FuQsibb5PaX07fF1XUO5gjjxdEZbcJv8+ugPDaeFEsBIvUTib8hCtEJow/c2F0jq9ZUjpHCQ8IQKNHRvKE1kJQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-transform-flow-strip-types": "^7.10.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.1.tgz", + "integrity": "sha512-Rw0SxQ7VKhObmFjD/cUcKhPTtzpeviEFX1E6PgP+cYOhQ98icNqtINNFANlsdbQHrmeWnqdxA4Tmnl1jy5tp3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-transform-react-display-name": "^7.10.1", + "@babel/plugin-transform-react-jsx": "^7.10.1", + "@babel/plugin-transform-react-jsx-development": "^7.10.1", + "@babel/plugin-transform-react-jsx-self": "^7.10.1", + "@babel/plugin-transform-react-jsx-source": "^7.10.1", + "@babel/plugin-transform-react-pure-annotations": "^7.10.1" + } + }, + "@babel/preset-typescript": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", + "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-typescript": "^7.9.0" + } + }, + "@babel/runtime": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", + "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz", + "integrity": "sha512-HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" + } + }, + "@babel/traverse": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz", + "integrity": "sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz", + "integrity": "sha512-nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.3", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@emotion/cache": { + "version": "10.0.29", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", + "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", + "dev": true, + "requires": { + "@emotion/sheet": "0.9.4", + "@emotion/stylis": "0.8.5", + "@emotion/utils": "0.11.3", + "@emotion/weak-memoize": "0.2.5" + } + }, + "@emotion/core": { + "version": "10.0.28", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz", + "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/cache": "^10.0.27", + "@emotion/css": "^10.0.27", + "@emotion/serialize": "^0.11.15", + "@emotion/sheet": "0.9.4", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/css": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", + "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", + "dev": true, + "requires": { + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "dev": true + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "dev": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "dev": true + }, + "@emotion/serialize": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", + "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", + "dev": true, + "requires": { + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/unitless": "0.7.5", + "@emotion/utils": "0.11.3", + "csstype": "^2.5.7" + } + }, + "@emotion/sheet": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", + "dev": true + }, + "@emotion/styled": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", + "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", + "dev": true, + "requires": { + "@emotion/styled-base": "^10.0.27", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/styled-base": { + "version": "10.0.31", + "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz", + "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/is-prop-valid": "0.8.8", + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", + "dev": true + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "dev": true + }, + "@emotion/utils": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", + "dev": true + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", + "dev": true + }, + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "dev": true, + "requires": { + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "@jest/core": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", + "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", + "dev": true, + "requires": { + "@jest/console": "^24.7.1", + "@jest/reporters": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-changed-files": "^24.9.0", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-resolve-dependencies": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "jest-watcher": "^24.9.0", + "micromatch": "^3.1.10", + "p-each-series": "^1.0.0", + "realpath-native": "^1.1.0", + "rimraf": "^2.5.4", + "slash": "^2.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "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 + }, + "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 + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "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" + } + } + } + }, + "@jest/environment": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", + "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", + "dev": true, + "requires": { + "@jest/fake-timers": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", + "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/reporters": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", + "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", + "dev": true, + "requires": { + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "istanbul-lib-coverage": "^2.0.2", + "istanbul-lib-instrument": "^3.0.1", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.1", + "istanbul-reports": "^2.2.6", + "jest-haste-map": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "node-notifier": "^5.4.2", + "slash": "^2.0.0", + "source-map": "^0.6.0", + "string-length": "^2.0.0" + }, + "dependencies": { + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "dev": true, + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + } + }, + "@jest/test-sequencer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", + "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", + "dev": true, + "requires": { + "@jest/test-result": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0" + } + }, + "@jest/transform": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", + "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^24.9.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.15", + "jest-haste-map": "^24.9.0", + "jest-regex-util": "^24.9.0", + "jest-util": "^24.9.0", + "micromatch": "^3.1.10", + "pirates": "^4.0.1", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "2.4.1" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + } + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@reach/router": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", + "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", + "dev": true, + "requires": { + "create-react-context": "0.3.0", + "invariant": "^2.2.3", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4" + } + }, + "@rollup/plugin-commonjs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", + "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", + "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@storybook/addons": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.19.tgz", + "integrity": "sha512-Ky/k22p6i6FVNvs1VhuFyGvYJdcp+FgXqFgnPyY/OXJW/vPDapdElpTpHJZLFI9I2FQBDcygBPU5RXkumQ+KUQ==", + "dev": true, + "requires": { + "@storybook/api": "5.3.19", + "@storybook/channels": "5.3.19", + "@storybook/client-logger": "5.3.19", + "@storybook/core-events": "5.3.19", + "core-js": "^3.0.1", + "global": "^4.3.2", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/api": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.19.tgz", + "integrity": "sha512-U/VzDvhNCPmw2igvJYNNM+uwJCL+3teiL6JmuoL4/cmcqhI6IqqG9dZmMP1egoCd19wXEP7rnAfB/VcYVg41dQ==", + "dev": true, + "requires": { + "@reach/router": "^1.2.1", + "@storybook/channels": "5.3.19", + "@storybook/client-logger": "5.3.19", + "@storybook/core-events": "5.3.19", + "@storybook/csf": "0.0.1", + "@storybook/router": "5.3.19", + "@storybook/theming": "5.3.19", + "@types/reach__router": "^1.2.3", + "core-js": "^3.0.1", + "fast-deep-equal": "^2.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "prop-types": "^15.6.2", + "react": "^16.8.3", + "semver": "^6.0.0", + "shallow-equal": "^1.1.0", + "store2": "^2.7.1", + "telejson": "^3.2.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@storybook/channel-postmessage": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.19.tgz", + "integrity": "sha512-Iq0f4NPHR0UVVFCWt0cI7Myadk4/SATXYJPT6sv95KhnLjKEeYw571WBlThfp8a9FM80887xG+eIRe93c8dleA==", + "dev": true, + "requires": { + "@storybook/channels": "5.3.19", + "@storybook/client-logger": "5.3.19", + "core-js": "^3.0.1", + "global": "^4.3.2", + "telejson": "^3.2.0" + } + }, + "@storybook/channels": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.19.tgz", + "integrity": "sha512-38seaeyshRGotTEZJppyYMg/Vx2zRKgFv1L6uGqkJT0LYoNSYtJhsiNFCJ2/KUJu2chAJ/j8h80bpVBVLQ/+WA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/client-api": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.19.tgz", + "integrity": "sha512-Dh8ZLrLH91j9Fa28Gmp0KFUvvgK348aNMrDNAUdj4m4witz/BWQ2pxz6qq9/xFVErk/GanVC05kazGElqgYCRQ==", + "dev": true, + "requires": { + "@storybook/addons": "5.3.19", + "@storybook/channel-postmessage": "5.3.19", + "@storybook/channels": "5.3.19", + "@storybook/client-logger": "5.3.19", + "@storybook/core-events": "5.3.19", + "@storybook/csf": "0.0.1", + "@types/webpack-env": "^1.15.0", + "core-js": "^3.0.1", + "eventemitter3": "^4.0.0", + "global": "^4.3.2", + "is-plain-object": "^3.0.0", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "ts-dedent": "^1.1.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.19.tgz", + "integrity": "sha512-nHftT9Ow71YgAd2/tsu79kwKk30mPuE0sGRRUHZVyCRciGFQweKNOS/6xi2Aq+WwBNNjPKNlbgxwRt1yKe1Vkg==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/components": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.19.tgz", + "integrity": "sha512-3g23/+ktlocaHLJKISu9Neu3XKa6aYP2ctDYkRtGchSB0Q55hQsUVGO+BEVuT7Pk2D59mVCxboBjxcRoPUY4pw==", + "dev": true, + "requires": { + "@storybook/client-logger": "5.3.19", + "@storybook/theming": "5.3.19", + "@types/react-syntax-highlighter": "11.0.4", + "@types/react-textarea-autosize": "^4.3.3", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "polished": "^3.3.1", + "popper.js": "^1.14.7", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "react-focus-lock": "^2.1.0", + "react-helmet-async": "^1.0.2", + "react-popper-tooltip": "^2.8.3", + "react-syntax-highlighter": "^11.0.2", + "react-textarea-autosize": "^7.1.0", + "simplebar-react": "^1.0.0-alpha.6", + "ts-dedent": "^1.1.0" + } + }, + "@storybook/core": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.19.tgz", + "integrity": "sha512-4EYzglqb1iD6x9gxtAYpRGwGP6qJGiU2UW4GiYrErEmeu6y6tkyaqW5AwGlIo9+6jAfwD0HjaK8afvjKTtmmMQ==", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.7.0", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-react-constant-elements": "^7.2.0", + "@babel/preset-env": "^7.4.5", + "@storybook/addons": "5.3.19", + "@storybook/channel-postmessage": "5.3.19", + "@storybook/client-api": "5.3.19", + "@storybook/client-logger": "5.3.19", + "@storybook/core-events": "5.3.19", + "@storybook/csf": "0.0.1", + "@storybook/node-logger": "5.3.19", + "@storybook/router": "5.3.19", + "@storybook/theming": "5.3.19", + "@storybook/ui": "5.3.19", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "autoprefixer": "^9.7.2", + "babel-plugin-add-react-displayname": "^0.0.5", + "babel-plugin-emotion": "^10.0.20", + "babel-plugin-macros": "^2.7.0", + "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5", + "boxen": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^3.0.0", + "cli-table3": "0.5.1", + "commander": "^4.0.1", + "core-js": "^3.0.1", + "corejs-upgrade-webpack-plugin": "^2.2.0", + "css-loader": "^3.0.0", + "detect-port": "^1.3.0", + "dotenv-webpack": "^1.7.0", + "ejs": "^2.7.4", + "express": "^4.17.0", + "file-loader": "^4.2.0", + "file-system-cache": "^1.0.5", + "find-cache-dir": "^3.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.0.1", + "glob-base": "^0.3.0", + "global": "^4.3.2", + "html-webpack-plugin": "^4.0.0-beta.2", + "inquirer": "^7.0.0", + "interpret": "^2.0.0", + "ip": "^1.1.5", + "json5": "^2.1.1", + "lazy-universal-dotenv": "^3.0.1", + "micromatch": "^4.0.2", + "node-fetch": "^2.6.0", + "open": "^7.0.0", + "pnp-webpack-plugin": "1.5.0", + "postcss-flexbugs-fixes": "^4.1.0", + "postcss-loader": "^3.0.0", + "pretty-hrtime": "^1.0.3", + "qs": "^6.6.0", + "raw-loader": "^3.1.0", + "react-dev-utils": "^9.0.0", + "regenerator-runtime": "^0.13.3", + "resolve": "^1.11.0", + "resolve-from": "^5.0.0", + "semver": "^6.0.0", + "serve-favicon": "^2.5.0", + "shelljs": "^0.8.3", + "style-loader": "^1.0.0", + "terser-webpack-plugin": "^2.1.2", + "ts-dedent": "^1.1.0", + "unfetch": "^4.1.0", + "url-loader": "^2.0.1", + "util-deprecate": "^1.0.2", + "webpack": "^4.33.0", + "webpack-dev-middleware": "^3.7.0", + "webpack-hot-middleware": "^2.25.0", + "webpack-virtual-modules": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/core-events": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.19.tgz", + "integrity": "sha512-lh78ySqMS7pDdMJAQAe35d1I/I4yPTqp09Cq0YIYOxx9BQZhah4DZTV1QIZt22H5p2lPb5MWLkWSxBaexZnz8A==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/csf": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", + "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "@storybook/node-logger": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.19.tgz", + "integrity": "sha512-hKshig/u5Nj9fWy0OsyU04yqCxr0A9pydOHIassr4fpLAaePIN2YvqCqE2V+TxQHjZUnowSSIhbXrGt0DI5q2A==", + "dev": true, + "requires": { + "@types/npmlog": "^4.1.2", + "chalk": "^3.0.0", + "core-js": "^3.0.1", + "npmlog": "^4.1.2", + "pretty-hrtime": "^1.0.3", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/react": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.19.tgz", + "integrity": "sha512-OBRUqol3YLQi/qE55x2pWkv4YpaAmmfj6/Km+7agx+og+oNQl0nnlXy7r27X/4j3ERczzURa5pJHtSjwiNaJNw==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-constant-elements": "^7.6.3", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "@storybook/addons": "5.3.19", + "@storybook/core": "5.3.19", + "@storybook/node-logger": "5.3.19", + "@svgr/webpack": "^4.0.3", + "@types/webpack-env": "^1.15.0", + "babel-plugin-add-react-displayname": "^0.0.5", + "babel-plugin-named-asset-import": "^0.3.1", + "babel-plugin-react-docgen": "^4.0.0", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "mini-css-extract-plugin": "^0.7.0", + "prop-types": "^15.7.2", + "react-dev-utils": "^9.0.0", + "regenerator-runtime": "^0.13.3", + "semver": "^6.0.0", + "ts-dedent": "^1.1.0", + "webpack": "^4.33.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@storybook/router": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.19.tgz", + "integrity": "sha512-yNClpuP7BXQlBTRf6Ggle3/R349/k6kvI5Aim4jf6X/2cFVg2pzBXDAF41imNm9PcvdxwabQLm6I48p7OvKr/w==", + "dev": true, + "requires": { + "@reach/router": "^1.2.1", + "@storybook/csf": "0.0.1", + "@types/reach__router": "^1.2.3", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/theming": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.19.tgz", + "integrity": "sha512-ecG+Rq3hc1GOzKHamYnD4wZ0PEP9nNg0mXbC3RhbxfHj+pMMCWWmx9B2Uu75SL1PTT8WcfkFO0hU/0IO84Pzlg==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "5.3.19", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.3.1", + "prop-types": "^15.7.2", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.0" + } + }, + "@storybook/ui": { + "version": "5.3.19", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.19.tgz", + "integrity": "sha512-r0VxdWab49nm5tzwvveVDnsHIZHMR76veYOu/NHKDUZ5hnQl1LMG1YyMCFFa7KiwD/OrZxRWr6/Ma7ep9kR4Gw==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@storybook/addons": "5.3.19", + "@storybook/api": "5.3.19", + "@storybook/channels": "5.3.19", + "@storybook/client-logger": "5.3.19", + "@storybook/components": "5.3.19", + "@storybook/core-events": "5.3.19", + "@storybook/router": "5.3.19", + "@storybook/theming": "5.3.19", + "copy-to-clipboard": "^3.0.8", + "core-js": "^3.0.1", + "core-js-pure": "^3.0.1", + "emotion-theming": "^10.0.19", + "fast-deep-equal": "^2.0.1", + "fuse.js": "^3.4.6", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "polished": "^3.3.1", + "prop-types": "^15.7.2", + "qs": "^6.6.0", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "react-draggable": "^4.0.3", + "react-helmet-async": "^1.0.2", + "react-hotkeys": "2.0.0", + "react-sizeme": "^2.6.7", + "regenerator-runtime": "^0.13.2", + "resolve-from": "^5.0.0", + "semver": "^6.0.0", + "store2": "^2.7.1", + "telejson": "^3.2.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", + "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==", + "dev": true + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", + "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==", + "dev": true + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", + "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==", + "dev": true + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", + "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==", + "dev": true + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", + "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==", + "dev": true + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", + "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==", + "dev": true + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", + "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==", + "dev": true + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", + "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==", + "dev": true + }, + "@svgr/babel-preset": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", + "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", + "dev": true, + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", + "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", + "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", + "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", + "@svgr/babel-plugin-transform-svg-component": "^4.2.0" + } + }, + "@svgr/core": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", + "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", + "dev": true, + "requires": { + "@svgr/plugin-jsx": "^4.3.3", + "camelcase": "^5.3.1", + "cosmiconfig": "^5.2.1" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", + "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@svgr/plugin-jsx": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", + "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", + "dev": true, + "requires": { + "@babel/core": "^7.4.5", + "@svgr/babel-preset": "^4.3.3", + "@svgr/hast-util-to-babel-ast": "^4.3.2", + "svg-parser": "^2.0.0" + } + }, + "@svgr/plugin-svgo": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", + "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", + "dev": true, + "requires": { + "cosmiconfig": "^5.2.1", + "merge-deep": "^3.0.2", + "svgo": "^1.2.2" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "@svgr/webpack": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", + "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", + "dev": true, + "requires": { + "@babel/core": "^7.4.5", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.4.5", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^4.3.3", + "@svgr/plugin-jsx": "^4.3.3", + "@svgr/plugin-svgo": "^4.3.1", + "loader-utils": "^1.2.3" + } + }, + "@testing-library/dom": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.18.1.tgz", + "integrity": "sha512-tGq4KAFjaI7j375sMM1RRVleWA0viJWs/w69B+nyDkqYLNkhdTHdV6mGkspJlkn3PUfyBDi3rERDv4PA/LrpVA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.3", + "aria-query": "^4.2.2", + "dom-accessibility-api": "^0.4.5", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.0.tgz", + "integrity": "sha512-mhaCySy7dZlyfcxcYy+0jLllODHEiHkVdmwQ00wD0HrWiSx0fSVHz/0WmdlRkvhfSOuqsRsBUreXOtBvruWGQA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^4.2.2", + "chalk": "^3.0.0", + "css": "^2.2.4", + "css.escape": "^1.5.1", + "jest-diff": "^25.1.0", + "jest-matcher-utils": "^25.1.0", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-10.4.3.tgz", + "integrity": "sha512-A/ydYXcwAcfY7vkPrfUkUTf9HQLL3/GtixTefcu3OyGQtAYQ7XBQj1S9FWbLEhfWa0BLwFwTBFS3Ao1O0tbMJg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.3", + "@testing-library/dom": "^7.17.1" + } + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz", + "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.12.tgz", + "integrity": "sha512-t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/fs-extra": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", + "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/history": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.6.tgz", + "integrity": "sha512-GRTZLeLJ8ia00ZH8mxMO8t0aC9M1N9bN461Z2eaRurJo6Fpa+utgCwLzI4jQHcrdzuzp5WPN9jRwpsCQ1VhJ5w==", + "dev": true + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/html-minifier-terser": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz", + "integrity": "sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==", + "dev": true + }, + "@types/is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.0.tgz", + "integrity": "sha512-iTs9HReBu7evG77Q4EC8hZnqRt57irBDkK9nvmHroiOIVwYMQc4IvYvdRgwKfYepunIY7Oh/dBuuld+Gj9uo6w==", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "24.9.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz", + "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==", + "dev": true, + "requires": { + "jest-diff": "^24.3.0" + }, + "dependencies": { + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + } + } + }, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "14.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", + "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==", + "dev": true + }, + "@types/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-4QQmOF5KlwfxJ5IGXFIudkeLCdMABz03RcUXu+LCb24zmln8QW6aDjuGl4d4XPVLf2j+FnjelHTP7dvceAFbhA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/reach__router": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz", + "integrity": "sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ==", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*" + } + }, + "@types/react": { + "version": "16.9.41", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.41.tgz", + "integrity": "sha512-6cFei7F7L4wwuM+IND/Q2cV1koQUvJ8iSV+Gwn0c3kvABZ691g7sp3hfEQHOUBJtccl1gPi+EyNjMIl9nGA0ug==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-dom": { + "version": "16.9.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", + "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-native": { + "version": "0.62.13", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.62.13.tgz", + "integrity": "sha512-hs4/tSABhcJx+J8pZhVoXHrOQD89WFmbs8QiDLNSA9zNrD46pityAuBWuwk1aMjPk9I3vC5ewkJroVRHgRIfdg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-syntax-highlighter": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz", + "integrity": "sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-textarea-autosize": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.5.tgz", + "integrity": "sha512-PiDL83kPMTolyZAWW3lyzO6ktooTb9tFTntVy7CA83/qFLWKLJ5bLeRboy6J6j3b1e8h2Eec6gBTEOOJRjV14A==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "dev": true + }, + "@types/styled-components": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.0.tgz", + "integrity": "sha512-ZFlLCuwF5r+4Vb7JUmd+Yr2S0UBdBGmI7ctFTgJMypIp3xOHI4LCFVn2dKMvpk6xDB2hLRykrEWMBwJEpUAUIQ==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "@types/react-native": "*", + "csstype": "^2.2.0" + } + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", + "dev": true + }, + "@types/testing-library__jest-dom": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.1.tgz", + "integrity": "sha512-yYn5EKHO3MPEMSOrcAb1dLWY+68CG29LiXKsWmmpVHqoP5+ZRiAVLyUHvPNrO2dABDdUGZvavMsaGpWNjM6N2g==", + "dev": true, + "requires": { + "@types/jest": "*" + } + }, + "@types/uglify-js": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.2.tgz", + "integrity": "sha512-d6dIfpPbF+8B7WiCi2ELY7m0w1joD8cRW4ms88Emdb2w062NeEpbNCeWwVCgzLRpVG+5e74VFSg4rgJ2xXjEiQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack": { + "version": "4.41.18", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.18.tgz", + "integrity": "sha512-mQm2R8vV2BZE/qIDVYqmBVLfX73a8muwjs74SpjEyJWJxeXBbsI9L65Pcia9XfYLYWzD1c1V8m+L0p30y2N7MA==", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack-env": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz", + "integrity": "sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ==", + "dev": true + }, + "@types/webpack-sources": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.0.tgz", + "integrity": "sha512-c88dKrpSle9BtTqR6ifdaxu1Lvjsl3C5OsfvuUbUwdXymshv1TkufUAXBajCCUM/f/TmnkZC/Esb03MinzSiXQ==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@types/yargs": { + "version": "13.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz", + "integrity": "sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "airbnb-js-shims": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", + "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "es5-shim": "^4.5.13", + "es6-shim": "^0.35.5", + "function.prototype.name": "^1.1.0", + "globalthis": "^1.0.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0 || ^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.1.0", + "promise.allsettled": "^1.0.0", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^4.0.0 || ^3.0.1", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz", + "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "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 + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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", + "strip-ansi": "^5.1.0" + } + }, + "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" + } + } + } + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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" + } + }, + "ansi-to-html": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", + "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", + "dev": true, + "requires": { + "entities": "^1.1.2" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-dir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", + "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", + "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + } + }, + "array.prototype.map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", + "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.4" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "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", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "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" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", + "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", + "dev": true + }, + "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 + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz", + "integrity": "sha512-84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001087", + "colorette": "^1.2.0", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-helper-evaluate-path": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", + "integrity": "sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA==", + "dev": true + }, + "babel-helper-flip-expressions": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz", + "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=", + "dev": true + }, + "babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true + }, + "babel-helper-is-void-0": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz", + "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=", + "dev": true + }, + "babel-helper-mark-eval-scopes": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz", + "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=", + "dev": true + }, + "babel-helper-remove-or-void": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz", + "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=", + "dev": true + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz", + "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==", + "dev": true + }, + "babel-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", + "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", + "dev": true, + "requires": { + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.9.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "babel-plugin-add-react-displayname": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", + "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-emotion": { + "version": "10.0.33", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz", + "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/serialize": "^0.11.16", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.0", + "source-map": "^0.5.7" + } + }, + "babel-plugin-istanbul": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", + "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.3.0", + "test-exclude": "^5.2.3" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", + "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", + "dev": true, + "requires": { + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "babel-plugin-minify-builtins": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz", + "integrity": "sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag==", + "dev": true + }, + "babel-plugin-minify-constant-folding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz", + "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0" + } + }, + "babel-plugin-minify-dead-code-elimination": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz", + "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-mark-eval-scopes": "^0.4.3", + "babel-helper-remove-or-void": "^0.4.3", + "lodash": "^4.17.11" + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz", + "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz", + "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-flip-expressions": "^0.4.3" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz", + "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=", + "dev": true + }, + "babel-plugin-minify-mangle-names": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz", + "integrity": "sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw==", + "dev": true, + "requires": { + "babel-helper-mark-eval-scopes": "^0.4.3" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz", + "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=", + "dev": true + }, + "babel-plugin-minify-replace": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz", + "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==", + "dev": true + }, + "babel-plugin-minify-simplify": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz", + "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-flip-expressions": "^0.4.3", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.5.0" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz", + "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz", + "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==", + "dev": true + }, + "babel-plugin-react-docgen": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz", + "integrity": "sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA==", + "dev": true, + "requires": { + "lodash": "^4.17.15", + "react-docgen": "^5.0.0", + "recast": "^0.14.7" + } + }, + "babel-plugin-styled-components": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", + "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-module-imports": "^7.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-transform-inline-consecutive-adds": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", + "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=", + "dev": true + }, + "babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", + "dev": true + }, + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", + "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=", + "dev": true + }, + "babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", + "dev": true + }, + "babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "dev": true + }, + "babel-plugin-transform-regexp-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", + "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=", + "dev": true + }, + "babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz", + "integrity": "sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0" + } + }, + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true + }, + "babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true + }, + "babel-preset-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", + "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", + "dev": true, + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" + } + }, + "babel-preset-minify": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz", + "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==", + "dev": true, + "requires": { + "babel-plugin-minify-builtins": "^0.5.0", + "babel-plugin-minify-constant-folding": "^0.5.0", + "babel-plugin-minify-dead-code-elimination": "^0.5.1", + "babel-plugin-minify-flip-comparisons": "^0.4.3", + "babel-plugin-minify-guarded-expressions": "^0.4.4", + "babel-plugin-minify-infinity": "^0.4.3", + "babel-plugin-minify-mangle-names": "^0.5.0", + "babel-plugin-minify-numeric-literals": "^0.4.3", + "babel-plugin-minify-replace": "^0.5.0", + "babel-plugin-minify-simplify": "^0.5.1", + "babel-plugin-minify-type-constructors": "^0.4.3", + "babel-plugin-transform-inline-consecutive-adds": "^0.4.3", + "babel-plugin-transform-member-expression-literals": "^6.9.4", + "babel-plugin-transform-merge-sibling-variables": "^6.9.4", + "babel-plugin-transform-minify-booleans": "^6.9.4", + "babel-plugin-transform-property-literals": "^6.9.4", + "babel-plugin-transform-regexp-constructors": "^0.4.3", + "babel-plugin-transform-remove-console": "^6.9.4", + "babel-plugin-transform-remove-debugger": "^6.9.4", + "babel-plugin-transform-remove-undefined": "^0.5.0", + "babel-plugin-transform-simplify-comparison-operators": "^6.9.4", + "babel-plugin-transform-undefined-to-void": "^6.9.4", + "lodash": "^4.17.11" + } + }, + "babel-preset-react-app": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz", + "integrity": "sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA==", + "dev": true, + "requires": { + "@babel/core": "7.9.0", + "@babel/plugin-proposal-class-properties": "7.8.3", + "@babel/plugin-proposal-decorators": "7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", + "@babel/plugin-proposal-numeric-separator": "7.8.3", + "@babel/plugin-proposal-optional-chaining": "7.9.0", + "@babel/plugin-transform-flow-strip-types": "7.9.0", + "@babel/plugin-transform-react-display-name": "7.8.3", + "@babel/plugin-transform-runtime": "7.9.0", + "@babel/preset-env": "7.9.0", + "@babel/preset-react": "7.9.1", + "@babel/preset-typescript": "7.9.0", + "@babel/runtime": "7.9.0", + "babel-plugin-macros": "2.8.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", + "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-flow": "^7.8.3" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", + "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.9.0", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.0", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.0", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.0", + "browserslist": "^4.9.1", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-react": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz", + "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-react-display-name": "^7.8.3", + "@babel/plugin-transform-react-jsx": "^7.9.1", + "@babel/plugin-transform-react-jsx-development": "^7.9.0", + "@babel/plugin-transform-react-jsx-self": "^7.9.0", + "@babel/plugin-transform-react-jsx-source": "^7.9.0" + } + }, + "@babel/runtime": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz", + "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", + "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "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", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "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", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "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", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "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" + } + }, + "browserslist": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "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 + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", + "dev": true + }, + "can-use-dom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", + "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", + "dev": true + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "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", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "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" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "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" + } + } + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", + "dev": true, + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "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 + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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", + "strip-ansi": "^5.1.0" + } + }, + "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" + } + } + } + }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "dev": true, + "requires": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz", + "integrity": "sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "optional": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "dev": true + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "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 + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dev": true, + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "corejs-upgrade-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0", + "webpack": "^4.38.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "create-ecdh": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "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", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "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", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-react-context": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", + "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", + "dev": true, + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, + "cross-spawn": { + "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", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "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", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", + "dev": true + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "css-modules-loader-core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", + "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.1", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" + } + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "dev": true, + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.39" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "dev": true, + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", + "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "debug": { + "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" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "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 + }, + "deep-object-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz", + "integrity": "sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==", + "dev": true + }, + "define-properties": { + "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" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", + "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "diff-sequences": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", + "dev": true + }, + "diffie-hellman": { + "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", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "doctrine": { + "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" + } + }, + "dom-accessibility-api": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz", + "integrity": "sha512-HcPDilI95nKztbVikaN2vzwvmv0sE8Y2ZJFODy/m15n7mGXLeOKGiys9qWVbFbh+aq/KYj2lqMLybBOkYAEXqg==", + "dev": true + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + }, + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "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 + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "dev": true + }, + "dotenv-defaults": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-1.1.1.tgz", + "integrity": "sha512-6fPRo9o/3MxKvmRZBD3oNFdxODdhJtIy1zcJeUSCs6HCy4tarUpd+G67UTU9tF6OWXeSPqsm4fPAB+2eY9Rt9Q==", + "dev": true, + "requires": { + "dotenv": "^6.2.0" + } + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "dotenv-webpack": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.8.0.tgz", + "integrity": "sha512-o8pq6NLBehtrqA8Jv8jFQNtG9nhRtVqmoD4yWbgUyoU3+9WBlPe+c2EAiaJok9RB28QvrWvdWLZGeTT5aATDMg==", + "dev": true, + "requires": { + "dotenv-defaults": "^1.0.2" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.483", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz", + "integrity": "sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg==", + "dev": true + }, + "element-resize-detector": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz", + "integrity": "sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw==", + "dev": true, + "requires": { + "batch-processor": "1.0.0" + } + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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 + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "emotion-theming": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz", + "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/weak-memoize": "0.2.5", + "hoist-non-react-statics": "^3.3.0" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", + "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-get-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", + "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", + "dev": true, + "requires": { + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-shim": { + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.14.tgz", + "integrity": "sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg==", + "dev": true + }, + "es6-shim": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz", + "integrity": "sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==", + "dev": true + }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "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" + } + }, + "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 + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "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" + } + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "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" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expect": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", + "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-styles": "^3.2.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.9.0" + }, + "dependencies": { + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "external-editor": { + "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", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "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 + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dev": true, + "requires": { + "format": "^0.2.0" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", + "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "file-system-cache": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", + "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", + "dev": true, + "requires": { + "bluebird": "^3.3.5", + "fs-extra": "^0.30.0", + "ramda": "^0.21.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "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 + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "focus-lock": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.7.0.tgz", + "integrity": "sha512-LI7v2mH02R55SekHYdv9pRHR9RajVNyIJ2N5IEkWbg7FT5ZmJ9Hw4mWxHeEUcd+dJo0QmzztHvDvWcc7prVFsw==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "dev": true + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz", + "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "functions-have-names": "^1.2.0" + } + }, + "functions-have-names": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz", + "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==", + "dev": true + }, + "fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "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 + }, + "globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==", + "dev": true + }, + "has": { + "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" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "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" + } + }, + "hast-util-parse-selector": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", + "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==", + "dev": true + }, + "hastscript": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", + "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", + "dev": true, + "requires": { + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", + "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", + "dev": true + }, + "hmac-drbg": { + "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", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + } + }, + "html-webpack-plugin": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz", + "integrity": "sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", + "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "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 + }, + "iconv-lite": { + "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" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "dev": true, + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz", + "integrity": "sha512-E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" + } + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true + }, + "is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "dev": true + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, + "requires": { + "isobject": "^4.0.0" + } + }, + "is-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.0.tgz", + "integrity": "sha512-ZVxq+5TkOx6GQdnoMm2aRdCKADdcrOWXLGzGT+vIA8DMpqEJaRk5AL1bS80zJ2bjHunVmjdzfCt0e4BymIEqKQ==", + "dev": true, + "requires": { + "@types/estree": "0.0.44" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.44", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz", + "integrity": "sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g==", + "dev": true + } + } + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "dev": true + }, + "is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0" + } + }, + "iterate-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", + "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", + "dev": true + }, + "iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "dev": true, + "requires": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" + } + }, + "jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", + "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", + "dev": true, + "requires": { + "import-local": "^2.0.0", + "jest-cli": "^24.9.0" + }, + "dependencies": { + "jest-cli": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", + "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", + "dev": true, + "requires": { + "@jest/core": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "import-local": "^2.0.0", + "is-ci": "^2.0.0", + "jest-config": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "prompts": "^2.0.1", + "realpath-native": "^1.1.0", + "yargs": "^13.3.0" + } + } + } + }, + "jest-changed-files": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", + "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "execa": "^1.0.0", + "throat": "^4.0.0" + } + }, + "jest-config": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", + "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^24.9.0", + "@jest/types": "^24.9.0", + "babel-jest": "^24.9.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^24.9.0", + "jest-environment-node": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "micromatch": "^3.1.10", + "pretty-format": "^24.9.0", + "realpath-native": "^1.1.0" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", + "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", + "dev": true, + "requires": { + "detect-newline": "^2.1.0" + } + }, + "jest-each": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", + "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-environment-jsdom": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", + "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", + "dev": true, + "requires": { + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0", + "jsdom": "^11.5.1" + } + }, + "jest-environment-node": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", + "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", + "dev": true, + "requires": { + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0" + } + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true + }, + "jest-haste-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", + "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-jasmine2": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", + "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^24.9.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0", + "throat": "^4.0.0" + }, + "dependencies": { + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + } + } + }, + "jest-leak-detector": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", + "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", + "dev": true, + "requires": { + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-matcher-utils": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", + "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", + "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", + "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", + "dev": true + }, + "jest-resolve": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", + "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "jest-pnp-resolver": "^1.2.1", + "realpath-native": "^1.1.0" + } + }, + "jest-resolve-dependencies": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", + "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-snapshot": "^24.9.0" + } + }, + "jest-runner": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", + "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", + "dev": true, + "requires": { + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.4.2", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-docblock": "^24.3.0", + "jest-haste-map": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-leak-detector": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + }, + "dependencies": { + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-runtime": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", + "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", + "dev": true, + "requires": { + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/source-map": "^24.3.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "strip-bom": "^3.0.0", + "yargs": "^13.3.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "jest-serializer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", + "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", + "dev": true + }, + "jest-snapshot": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", + "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "expect": "^24.9.0", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^24.9.0", + "semver": "^6.2.0" + }, + "dependencies": { + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", + "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "dev": true, + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + } + }, + "jest-watcher": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", + "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", + "dev": true, + "requires": { + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "jest-util": "^24.9.0", + "string-length": "^2.0.0" + }, + "dependencies": { + "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 + } + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-base64": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz", + "integrity": "sha512-1hgLrLIrmCgZG+ID3VoLNLOSwjGnoZa8tyrUdEteMeIzsT6PH7PMLyUvbDwzNE56P3PNxyvuIOx4Uh2E5rzQIw==", + "dev": true + }, + "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 + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "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 + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazy-universal-dotenv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", + "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.0", + "app-root-dir": "^1.0.2", + "core-js": "^3.0.4", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0" + }, + "dependencies": { + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true + } + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "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" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "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" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "loose-envify": { + "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" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "dev": true, + "requires": { + "tslib": "^1.10.0" + } + }, + "lowlight": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz", + "integrity": "sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A==", + "dev": true, + "requires": { + "fault": "^1.0.2", + "highlight.js": "~9.13.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-or-similar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-to-jsx": { + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz", + "integrity": "sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==", + "dev": true, + "requires": { + "prop-types": "^15.6.2", + "unquote": "^1.1.0" + } + }, + "md5.js": { + "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", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", + "dev": true, + "requires": { + "map-or-similar": "^1.5.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "miller-rabin": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz", + "integrity": "sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "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 + }, + "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 + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz", + "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "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 + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "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 + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "dev": true, + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "dev": true, + "requires": { + "minimatch": "^3.0.2" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-notifier": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node-releases": { + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", + "dev": true + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "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 + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.assign": { + "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", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", + "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "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 + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-queue": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz", + "integrity": "sha512-X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "p-timeout": "^3.1.0" + } + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", + "dev": true, + "requires": { + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "parent-module": { + "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" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "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 + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "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 + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "pkg-up": { + "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" + }, + "dependencies": { + "find-up": { + "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" + } + }, + "locate-path": { + "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" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "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" + } + }, + "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 + } + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "pnp-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.2" + } + }, + "polished": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz", + "integrity": "sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2" + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "dev": true, + "requires": { + "postcss": "^7.0.26" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-2.0.0.tgz", + "integrity": "sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw==", + "dev": true, + "requires": { + "css-modules-loader-core": "^1.1.0", + "generic-names": "^2.0.1", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.1", + "string-hash": "^1.1.1" + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "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 + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "dependencies": { + "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 + } + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "prismjs": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz", + "integrity": "sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==", + "dev": true, + "requires": { + "clipboard": "^2.0.0" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise.allsettled": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", + "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", + "dev": true, + "requires": { + "array.prototype.map": "^1.0.1", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "iterate-value": "^1.0.0" + } + }, + "promise.prototype.finally": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz", + "integrity": "sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.0", + "function-bind": "^1.1.1" + } + }, + "promise.series": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", + "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", + "dev": true + }, + "prompts": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" + } + }, + "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", + "react-is": "^16.8.1" + } + }, + "property-information": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.5.0.tgz", + "integrity": "sha512-RgEbCx2HLa1chNgvChcx+rrCWD0ctBmGSE0M7lVm1yyv4UbvbrWoXp/BkVLZefzjrRBGW8/Js6uh/BnlHXFyjA==", + "dev": true, + "requires": { + "xtend": "^4.0.0" + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "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", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "ramda": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", + "dev": true + }, + "randombytes": { + "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" + } + }, + "randomfill": { + "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" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "raw-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", + "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-clientside-effect": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz", + "integrity": "sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0" + } + }, + "react-dev-utils": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", + "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "dev": true, + "requires": { + "@babel/code-frame": "7.5.5", + "address": "1.1.2", + "browserslist": "4.7.0", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "fork-ts-checker-webpack-plugin": "1.5.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^6.3.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^6.0.3", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "sockjs-client": "1.4.0", + "strip-ansi": "5.2.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "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" + } + }, + "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 + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "browserslist": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" + } + }, + "cli-cursor": { + "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" + } + }, + "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" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "figures": { + "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" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "inquirer": { + "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", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "json5": { + "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" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "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 + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "onetime": { + "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" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "restore-cursor": { + "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" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "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 + } + } + } + } + }, + "react-docgen": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz", + "integrity": "sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@babel/runtime": "^7.7.6", + "ast-types": "^0.13.2", + "commander": "^2.19.0", + "doctrine": "^3.0.0", + "neo-async": "^2.6.1", + "node-dir": "^0.1.10", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-draggable": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.3.tgz", + "integrity": "sha512-jV4TE59MBuWm7gb6Ns3Q1mxX8Azffb7oTtDtBgFkxRvhDp38YAARmRplrj0+XGkhOJB5XziArX+4HUUABtyZ0w==", + "dev": true, + "requires": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + } + }, + "react-error-overlay": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", + "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==", + "dev": true + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "dev": true + }, + "react-focus-lock": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.4.0.tgz", + "integrity": "sha512-mue/boxdfNhfxnQcZtEBvqwZ5XQxk0uRoAMwLGl8j6XolFV3UIlt6iGFBGqRdJsvVHhtyKC5i8fkLnBidxCTbA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.7.0", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.2", + "use-callback-ref": "^1.2.1", + "use-sidecar": "^1.0.1" + } + }, + "react-helmet-async": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.6.tgz", + "integrity": "sha512-t+bhAI4NgxfEv8ez4r77cLfR4O4Z55E/FH2DT+uiE4U7yfWgAk7OAOi7IxHxuYEVLI26bqjZvlVCkpC5/5AoNA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1", + "shallowequal": "^1.1.0" + } + }, + "react-hotkeys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-hotkeys/-/react-hotkeys-2.0.0.tgz", + "integrity": "sha512-3n3OU8vLX/pfcJrR3xJ1zlww6KS1kEJt0Whxc4FiGV+MJrQ1mYSYI3qS/11d2MJDFm8IhOXMTFQirfu6AVOF6Q==", + "dev": true, + "requires": { + "prop-types": "^15.6.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "dev": true + }, + "react-popper": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", + "dev": true, + "requires": { + "@babel/runtime": "^7.1.2", + "create-react-context": "^0.3.0", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + } + }, + "react-popper-tooltip": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz", + "integrity": "sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "react-popper": "^1.3.7" + } + }, + "react-sizeme": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", + "integrity": "sha512-tL4sCgfmvapYRZ1FO2VmBmjPVzzqgHA7kI8lSJ6JS6L78jXFNRdOZFpXyK6P1NBZvKPPCZxReNgzZNUajAerZw==", + "dev": true, + "requires": { + "element-resize-detector": "^1.2.1", + "invariant": "^2.2.4", + "shallowequal": "^1.1.0", + "throttle-debounce": "^2.1.0" + } + }, + "react-syntax-highlighter": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz", + "integrity": "sha512-kqmpM2OH5OodInbEADKARwccwSQWBfZi0970l5Jhp4h39q9Q65C4frNcnd6uHE5pR00W8pOWj9HDRntj2G4Rww==", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.1", + "highlight.js": "~9.13.0", + "lowlight": "~1.11.0", + "prismjs": "^1.8.4", + "refractor": "^2.4.1" + } + }, + "react-textarea-autosize": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz", + "integrity": "sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.1.2", + "prop-types": "^15.6.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "dev": true, + "requires": { + "util.promisify": "^1.0.0" + } + }, + "recast": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", + "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", + "dev": true, + "requires": { + "ast-types": "0.11.3", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + }, + "dependencies": { + "ast-types": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", + "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "refractor": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz", + "integrity": "sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==", + "dev": true, + "requires": { + "hastscript": "^5.0.0", + "parse-entities": "^1.1.2", + "prismjs": "~1.17.0" + }, + "dependencies": { + "prismjs": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", + "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==", + "dev": true, + "requires": { + "clipboard": "^2.0.0" + } + } + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "dev": true, + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "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" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", + "dev": true + } + } + }, + "rollup-plugin-copy": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.3.0.tgz", + "integrity": "sha512-euDjCUSBXZa06nqnwCNADbkAcYDfzwowfZQkto9K/TFhiH+QG7I4PUsEMwM9tDgomGWJc//z7KLW8t+tZwxADA==", + "dev": true, + "requires": { + "@types/fs-extra": "^8.0.1", + "colorette": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "10.0.1", + "is-plain-object": "^3.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, + "rollup-plugin-peer-deps-external": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.2.tgz", + "integrity": "sha512-XcHH4UW9exRTAf73d8rk2dw2UgF//cWbilhRI4Ni/n+t0zA1eBtohKyJROn0fxa4/+WZ5R3onAyIDiwRQL+59A==", + "dev": true + }, + "rollup-plugin-postcss": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.2.tgz", + "integrity": "sha512-29ocL0CqjLj9sUghTG64ZwFxwbo2d0WyOTVtqPg6SEMZyFmKke9TClBf4/CcdFaWHqS+YZGsUpq3mzIBSYrw+A==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "concat-with-sourcemaps": "^1.1.0", + "cssnano": "^4.1.10", + "import-cwd": "^3.0.0", + "p-queue": "^6.3.0", + "pify": "^5.0.0", + "postcss": "^7.0.27", + "postcss-load-config": "^2.1.0", + "postcss-modules": "^2.0.0", + "promise.series": "^0.2.0", + "resolve": "^1.16.1", + "rollup-pluginutils": "^2.8.2", + "safe-identifier": "^0.4.1", + "style-inject": "^0.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "rollup-plugin-typescript2": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.1.tgz", + "integrity": "sha512-RJl77Bbj1EunAQDC3dK/O2HWuSUX3oJbRGzyLoS5o9W4Hs1Nix3Gavqj1Lzs5Y6Ff4H2xXfmZ1WWUQCYocSbzQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "find-cache-dir": "^3.3.1", + "fs-extra": "8.1.0", + "resolve": "1.15.1", + "tslib": "1.11.2" + }, + "dependencies": { + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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 + }, + "safe-identifier": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.1.tgz", + "integrity": "sha512-73tOz5TXsq3apuCc3vC8c9QRhhdNZGiBhHmPPjqpH4TO5oCDqk8UIsDcSs/RG6dYcFAkOOva0pqHS3u7hh7XXA==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dev": true, + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "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" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "dev": true, + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "dev": true + } + } + }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", + "dev": true + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true + }, + "shebang-command": { + "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" + } + }, + "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 + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "dependencies": { + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + } + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "simplebar": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz", + "integrity": "sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g==", + "dev": true, + "requires": { + "can-use-dom": "^0.1.0", + "core-js": "^3.0.1", + "lodash.debounce": "^4.0.8", + "lodash.memoize": "^4.1.2", + "lodash.throttle": "^4.1.1", + "resize-observer-polyfill": "^1.5.1" + } + }, + "simplebar-react": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz", + "integrity": "sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg==", + "dev": true, + "requires": { + "prop-types": "^15.6.1", + "simplebar": "^4.2.3" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "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" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "store2": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.11.2.tgz", + "integrity": "sha512-TQMKs+C6n9idtzLpxluikmDCYiDJrTbbIGn9LFxMg0BVTu+8JZKSlXTWYRpOFKlfKD5HlDWLVpJJyNGZ2e9l1A==", + "dev": true + }, + "stream-browserify": { + "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" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "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", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + } + }, + "string.prototype.padend": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz", + "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "string.prototype.padstart": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz", + "integrity": "sha512-envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "style-inject": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", + "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", + "dev": true + }, + "style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "styled-components": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.1.1.tgz", + "integrity": "sha512-1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "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" + } + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", + "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==", + "dev": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "symbol.prototype.description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.2.tgz", + "integrity": "sha512-2CW5SU4/Ki1cYOOHcL2cXK4rxSg5hCU1TwZ7X4euKhV9VnfqKslh7T6/UyKkubA8cq2tOmsOv7m3ZUmQslBRuw==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "has-symbols": "^1.0.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "telejson": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz", + "integrity": "sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w==", + "dev": true, + "requires": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.1", + "is-regex": "^1.0.4", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3" + } + }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz", + "integrity": "sha512-xzYyaHUNhzgaAdBsXxk2Yvo/x1NJdslUaussK3fdpBbvttm1iIwU+c26dj9UxJcwk2c5UWt5F55MUTIA8BE7Dg==", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + } + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "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 + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, + "throttle-debounce": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.2.1.tgz", + "integrity": "sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "dev": true, + "optional": true + }, + "tmp": { + "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" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "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 + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", + "dev": true + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "ts-dedent": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz", + "integrity": "sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg==", + "dev": true + }, + "ts-jest": { + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", + "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "mkdirp": "0.x", + "resolve": "1.x", + "semver": "^5.5", + "yargs-parser": "10.x" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "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 + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "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" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", + "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", + "dev": true + }, + "unfetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz", + "integrity": "sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "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" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "use-callback-ref": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.4.tgz", + "integrity": "sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==", + "dev": true + }, + "use-sidecar": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz", + "integrity": "sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA==", + "dev": true, + "requires": { + "detect-node": "^2.0.4", + "tslib": "^1.9.3" + } + }, + "util": { + "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" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "dev": true, + "requires": { + "chokidar": "^3.4.0", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-hot-middleware": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", + "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-virtual-modules": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", + "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "dev": true, + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "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 + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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", + "strip-ansi": "^5.1.0" + } + }, + "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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", + "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "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 + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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", + "strip-ansi": "^5.1.0" + } + }, + "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" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..7283dd350 --- /dev/null +++ b/package.json @@ -0,0 +1,52 @@ +{ + "name": "eko-ui-kit", + "version": "0.0.1", + "main": "build/index.js", + "module": "build/index.esm.js", + "files": [ + "build" + ], + "types": "build/index.d.ts", + "description": "Eko ui kit", + "scripts": { + "build": "rollup -c", + "test": "jest", + "test:watch": "jest --watch", + "storybook": "start-storybook -p 6006", + "storybook:export": "build-storybook", + "generate": "node ./util/create-component", + "prepublishOnly": "npm run build" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + }, + "devDependencies": { + "@babel/core": "^7.10.3", + "@rollup/plugin-commonjs": "^11.1.0", + "@rollup/plugin-node-resolve": "^7.1.3", + "@storybook/react": "^5.3.19", + "@testing-library/jest-dom": "^5.5.0", + "@testing-library/react": "^10.0.2", + "@types/jest": "^24.0.24", + "@types/react": "^16.9.12", + "@types/react-dom": "^16.9.8", + "@types/styled-components": "^5.1.0", + "babel-loader": "^8.1.0", + "babel-preset-react-app": "^9.1.2", + "identity-obj-proxy": "^3.0.0", + "jest": "^24.9.0", + "node-sass": "^4.14.1", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "rollup": "^1.27.4", + "rollup-plugin-copy": "^3.3.0", + "rollup-plugin-peer-deps-external": "^2.2.0", + "rollup-plugin-postcss": "^3.1.2", + "rollup-plugin-typescript2": "^0.27.0", + "sass-loader": "^8.0.0", + "ts-jest": "^24.2.0", + "typescript": "^3.7.2", + "styled-components": "^5.1.1" + } +} diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 000000000..fc61eaa05 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,29 @@ +import peerDepsExternal from "rollup-plugin-peer-deps-external"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import typescript from "rollup-plugin-typescript2"; + +const packageJson = require("./package.json"); + +export default { + input: "src/index.ts", + output: [ + { + file: packageJson.main, + format: "cjs", + sourcemap: true + }, + { + file: packageJson.module, + format: "esm", + sourcemap: true + } + ], + external: ["styled-components"], + plugins: [ + peerDepsExternal(), + resolve(), + commonjs(), + typescript({ useTsconfigDeclarationDir: true }) + ] +}; diff --git a/src/TestComponent/TestComponent.stories.tsx b/src/TestComponent/TestComponent.stories.tsx new file mode 100644 index 000000000..28cf3243d --- /dev/null +++ b/src/TestComponent/TestComponent.stories.tsx @@ -0,0 +1,10 @@ +import React from "react"; +import TestComponent from "./TestComponent"; + +export default { + title: "TestComponent" +}; + +export const Primary = () => ; + +export const Secondary = () => ; diff --git a/src/TestComponent/TestComponent.test.tsx b/src/TestComponent/TestComponent.test.tsx new file mode 100644 index 000000000..b619424e2 --- /dev/null +++ b/src/TestComponent/TestComponent.test.tsx @@ -0,0 +1,34 @@ +import React from "react"; +import { render } from "@testing-library/react"; + +import TestComponent from "./TestComponent"; +import { TestComponentProps } from "./TestComponent.types"; + +describe("Test Component", () => { + let props: TestComponentProps; + + beforeEach(() => { + props = { + theme: "primary" + }; + }); + + const renderComponent = () => render(); + + it("should have primary className with default props", () => { + const { getByTestId } = renderComponent(); + + const testComponent = getByTestId("test-component"); + + expect(testComponent).toHaveClass("test-component-primary"); + }); + + it("should have secondary className with theme set as secondary", () => { + props.theme = "secondary"; + const { getByTestId } = renderComponent(); + + const testComponent = getByTestId("test-component"); + + expect(testComponent).toHaveClass("test-component-secondary"); + }); +}); diff --git a/src/TestComponent/TestComponent.tsx b/src/TestComponent/TestComponent.tsx new file mode 100644 index 000000000..45a59b5ef --- /dev/null +++ b/src/TestComponent/TestComponent.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import styled from "styled-components"; + +import { TestComponentProps } from "./TestComponent.types"; + +const StyledDiv = styled.div` + background-color: white; + border: 1px solid black; + padding: 16px; + width: 360px; + text-align: center; + + ${(props) => + props.theme === "secondary" && + `background-color: black; + color: white;`} +`; + +const StyledHeading = styled.h1` + font-size: 32px; +`; + +const StyledDescription = styled.h2``; + +const TestComponent: React.FC = ({ theme }) => ( + + I'm the test component + +); + +export default TestComponent; diff --git a/src/TestComponent/TestComponent.types.ts b/src/TestComponent/TestComponent.types.ts new file mode 100644 index 000000000..9f40bf426 --- /dev/null +++ b/src/TestComponent/TestComponent.types.ts @@ -0,0 +1,3 @@ +export interface TestComponentProps { + theme: "primary" | "secondary"; +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 000000000..4248f57b5 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,3 @@ +import TestComponent from "./TestComponent/TestComponent"; + +export { TestComponent }; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..5b4120cbb --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "rootDir": "src", + "declaration": true, + "declarationDir": "build", + "module": "esnext", + "target": "es5", + "lib": ["es6", "dom", "es2016", "es2017"], + "sourceMap": true, + "jsx": "react", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true + }, + "include": ["src/**/*"], + "exclude": [ + "node_modules", + "build", + "storybook-static", + "src/**/*.stories.tsx", + "src/**/*.test.tsx" + ] +} diff --git a/util/create-component.js b/util/create-component.js new file mode 100644 index 000000000..fb3564602 --- /dev/null +++ b/util/create-component.js @@ -0,0 +1,34 @@ +require("colors"); +const fs = require("fs"); +const templates = require("./templates"); + +const componentName = process.argv[2]; + +if (!componentName) { + console.error("Please supply a valid component name".red); + process.exit(1); +} + +console.log("Creating Component Templates with name: " + componentName); + +const componentDirectory = `./src/${componentName}`; + +if (fs.existsSync(componentDirectory)) { + console.error(`Component ${componentName} already exists.`.red); + process.exit(1); +} + +fs.mkdirSync(componentDirectory); + +const generatedTemplates = templates.map((template) => template(componentName)); + +generatedTemplates.forEach((template) => { + fs.writeFileSync( + `${componentDirectory}/${componentName}${template.extension}`, + template.content + ); +}); + +console.log( + "Successfully created component under: " + componentDirectory.green +); diff --git a/util/templates/component.js b/util/templates/component.js new file mode 100644 index 000000000..177de8efa --- /dev/null +++ b/util/templates/component.js @@ -0,0 +1,15 @@ +module.exports = componentName => ({ + content: `// Generated with util/create-component.js +import React from "react"; + +import { ${componentName}Props } from "./${componentName}.types"; + +const ${componentName}: React.FC<${componentName}Props> = ({ foo }) => ( +
{foo}
+); + +export default ${componentName}; + +`, + extension: `.tsx`, +}); diff --git a/util/templates/component.stories.js b/util/templates/component.stories.js new file mode 100644 index 000000000..b4a3cc0f1 --- /dev/null +++ b/util/templates/component.stories.js @@ -0,0 +1,15 @@ +module.exports = (componentName) => ({ + content: `// Generated with util/create-component.js +import React from "react"; +import ${componentName} from "./${componentName}"; + +export default { + title: "${componentName}" +}; + +export const WithBar = () => <${componentName} foo="bar" />; + +export const WithBaz = () => <${componentName} foo="baz" />; +`, + extension: `.stories.tsx` +}); diff --git a/util/templates/component.test.js b/util/templates/component.test.js new file mode 100644 index 000000000..ab69166dd --- /dev/null +++ b/util/templates/component.test.js @@ -0,0 +1,31 @@ +module.exports = componentName => ({ + content: `// Generated with util/create-component.js +import React from "react"; +import { render } from "@testing-library/react"; + +import ${componentName} from "./${componentName}"; +import { ${componentName}Props } from "./${componentName}.types"; + +describe("Test Component", () => { + let props: ${componentName}Props; + + beforeEach(() => { + props = { + foo: "bar" + }; + }); + + const renderComponent = () => render(<${componentName} {...props} />); + + it("should render foo text correctly", () => { + props.foo = "test"; + const { getByTestId } = renderComponent(); + + const component = getByTestId("${componentName}"); + + expect(component).toHaveTextContent("test"); + }); +}); +`, + extension: `.test.tsx`, +}); diff --git a/util/templates/component.types.js b/util/templates/component.types.js new file mode 100644 index 000000000..a2bf177ea --- /dev/null +++ b/util/templates/component.types.js @@ -0,0 +1,8 @@ +module.exports = (componentName) => ({ + content: `// Generated with util/create-component.js +export interface ${componentName}Props { + foo: string; +} +`, + extension: `.types.ts` +}); diff --git a/util/templates/index.js b/util/templates/index.js new file mode 100644 index 000000000..af9aff2f7 --- /dev/null +++ b/util/templates/index.js @@ -0,0 +1,6 @@ +const component = require('./component'); +const componentTypes = require('./component.types'); +const componentStories = require('./component.stories'); +const componentTests = require('./component.test'); + +module.exports = [component, componentTypes, componentStories, componentTests]; From 9b4c0bea65a606104fefd80a7bc2a3f4d78532cb Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 26 Jun 2020 09:47:22 +0700 Subject: [PATCH 003/740] add storybook config --- .storybook/main.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .storybook/main.js diff --git a/.storybook/main.js b/.storybook/main.js new file mode 100644 index 000000000..d33eedce5 --- /dev/null +++ b/.storybook/main.js @@ -0,0 +1,25 @@ +const path = require("path"); + +module.exports = { + stories: ["../src/**/*.stories.tsx"], + // Add any Storybook addons you want here: https://storybook.js.org/addons/ + addons: [], + webpackFinal: async (config) => { + config.module.rules.push({ + test: /\.scss$/, + use: ["style-loader", "css-loader", "sass-loader"], + include: path.resolve(__dirname, "../") + }); + + config.module.rules.push({ + test: /\.(ts|tsx)$/, + loader: require.resolve("babel-loader"), + options: { + presets: [["react-app", { flow: false, typescript: true }]] + } + }); + config.resolve.extensions.push(".ts", ".tsx"); + + return config; + } +}; From a7a1d55eddba5c003c62b2fa64d1a3d04aa48aac Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 26 Jun 2020 10:52:16 +0700 Subject: [PATCH 004/740] hook to simplify live object usage --- src/hooks/useLiveObject.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/hooks/useLiveObject.ts diff --git a/src/hooks/useLiveObject.ts b/src/hooks/useLiveObject.ts new file mode 100644 index 000000000..1246fe675 --- /dev/null +++ b/src/hooks/useLiveObject.ts @@ -0,0 +1,15 @@ +import React, { useState, useEffect } from 'react'; + +// TODO add errors handling +const useLiveObject = (createLiveObject, defaultData) => { + const [data, setData] = useState(defaultData); + useEffect(() => { + const liveObject = createLiveObject(); + liveObject.on('dataUpdated', setData); + return () => liveObject.dispose(); + }, []); + + return data; +}; + +export default useLiveObject; From 297b0613b28b4c526f504fe138e2a415146ecb04 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 26 Jun 2020 10:52:34 +0700 Subject: [PATCH 005/740] example of sdk usage --- src/ChannelsPage/ChannelsPage.stories.tsx | 28 +++++++++++++++++ src/ChannelsPage/index.tsx | 37 +++++++++++++++++++++++ src/index.ts | 2 +- 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/ChannelsPage/ChannelsPage.stories.tsx create mode 100644 src/ChannelsPage/index.tsx diff --git a/src/ChannelsPage/ChannelsPage.stories.tsx b/src/ChannelsPage/ChannelsPage.stories.tsx new file mode 100644 index 000000000..c4acbd46d --- /dev/null +++ b/src/ChannelsPage/ChannelsPage.stories.tsx @@ -0,0 +1,28 @@ +import React, { useEffect } from 'react'; +import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; + +import ChannelsPage from './index'; + +export default { + title: 'ChannelsPage', +}; + +_changeSDKDefaultConfig({ + ws: { endpoint: 'https://api.staging.ekomedia.technology' }, + http: { endpoint: 'https://api.staging.ekomedia.technology' }, +}); + +// TODO do only once +try { + // Connect to EkoClient with apiKey + const client = new EkoClient({ apiKey: 'b3bee858328ef4344a308e4a5a091688d05fdee2be353a2b' }); + // Register Session with EkoClient with userId and display name + client.registerSession({ + userId: 'Web-Test', + displayName: 'Web-Test', + }); +} catch (e) { + console.log(e); +} + +export const Channels = () => ; diff --git a/src/ChannelsPage/index.tsx b/src/ChannelsPage/index.tsx new file mode 100644 index 000000000..82741d4ab --- /dev/null +++ b/src/ChannelsPage/index.tsx @@ -0,0 +1,37 @@ +import React from 'react'; +import useLiveObject from '../hooks/useLiveObject'; +import styled from 'styled-components'; + +import EkoClient, { + MessageRepository, + ChannelRepository, + ChannelMembershipRepository, + EkoChannelType, + EkoConnectionStatus, + _changeSDKDefaultConfig, +} from 'eko-sdk'; + +const ChannelsListContainer = styled.div` + background-color: white; + border: 1px solid black; + padding: 16px; + width: 360px; + text-align: center; +`; + +// Instantiate Channel Repository +const channelRepo = new ChannelRepository(); + +const ChannelsList = () => { + const channels = useLiveObject(() => channelRepo.allChannels(), []); + + return ( + + {channels.map(channel => ( +
{channel.channelId}
+ ))} +
+ ); +}; + +export default ChannelsList; diff --git a/src/index.ts b/src/index.ts index 4248f57b5..4dde0cda4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,3 @@ -import TestComponent from "./TestComponent/TestComponent"; +import TestComponent from './TestComponent/TestComponent'; export { TestComponent }; From 54053e939fc459fa4d5e55ddab23033d173e5ec0 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 29 Jun 2020 13:05:00 +0700 Subject: [PATCH 006/740] message list, and customization --- package-lock.json | 19 +++++---- package.json | 3 ++ src/Channel/index.tsx | 47 +++++++++++++++++++++++ src/Channel/styles.ts | 7 ++++ src/ChannelsPage/ChannelsPage.stories.tsx | 6 ++- src/ChannelsPage/index.tsx | 47 ++++++++++++++--------- src/ChannelsPage/styles.ts | 25 ++++++++++++ src/Message/index.tsx | 28 ++++++++++++++ src/Message/styles.ts | 7 ++++ src/MessageComposeBar/index.tsx | 25 ++++++++++++ src/MessageComposeBar/styles.ts | 10 +++++ src/MessagesList/index.tsx | 24 ++++++++++++ src/MessagesList/styles.ts | 14 +++++++ src/hoks/customization.tsx | 19 +++++++++ src/hooks/usePaginatedLiveObject.ts | 31 +++++++++++++++ 15 files changed, 285 insertions(+), 27 deletions(-) create mode 100644 src/Channel/index.tsx create mode 100644 src/Channel/styles.ts create mode 100644 src/ChannelsPage/styles.ts create mode 100644 src/Message/index.tsx create mode 100644 src/Message/styles.ts create mode 100644 src/MessageComposeBar/index.tsx create mode 100644 src/MessageComposeBar/styles.ts create mode 100644 src/MessagesList/index.tsx create mode 100644 src/MessagesList/styles.ts create mode 100644 src/hoks/customization.tsx create mode 100644 src/hooks/usePaginatedLiveObject.ts diff --git a/package-lock.json b/package-lock.json index edd4447fb..40575c74c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10189,8 +10189,7 @@ "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.14.0", @@ -10515,7 +10514,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" } @@ -11506,8 +11504,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -12906,7 +12903,6 @@ "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", @@ -13481,11 +13477,18 @@ "prop-types": "^15.6.1" } }, + "react-infinite-scroller": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz", + "integrity": "sha512-/oOa0QhZjXPqaD6sictN2edFMsd3kkMiE19Vcz5JDgHpzEJVqYcmq+V3mkwO88087kvKGe1URNksHEOt839Ubw==", + "requires": { + "prop-types": "^15.5.8" + } + }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-lifecycles-compat": { "version": "3.0.4", diff --git a/package.json b/package.json index 7283dd350..19e232844 100644 --- a/package.json +++ b/package.json @@ -48,5 +48,8 @@ "ts-jest": "^24.2.0", "typescript": "^3.7.2", "styled-components": "^5.1.1" + }, + "dependencies": { + "react-infinite-scroller": "^1.2.4" } } diff --git a/src/Channel/index.tsx b/src/Channel/index.tsx new file mode 100644 index 000000000..0b914c870 --- /dev/null +++ b/src/Channel/index.tsx @@ -0,0 +1,47 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; +import EkoClient, { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; + +import useLiveObject from '../hooks/useLiveObject'; +import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; +import DefaultMessagesList from '../MessagesList'; +import DefaultMessageComposeBar from '../MessageComposeBar'; + +import { ChannelContainer } from './styles'; + +const channelRepo = new ChannelRepository(); +const messageRepo = new MessageRepository(); + +const Channel = ({ + channelId, + MessageComposeBar = DefaultMessageComposeBar, + MessagesList = DefaultMessagesList, +}) => { + const [messages, hasMore, loadMore] = usePaginatedLiveObject( + () => messageRepo.messagesForChannel({ channelId }), + [], + ); + + useEffect(() => { + channelRepo.joinChannel({ + channelId, + type: EkoChannelType.Standard, + }); + }, []); + + const sendMessage = text => { + const messageLiveObject = messageRepo.createTextMessage({ + channelId, + text, + }); + }; + + return ( + + + + + ); +}; + +export default Channel; diff --git a/src/Channel/styles.ts b/src/Channel/styles.ts new file mode 100644 index 000000000..8fd497c50 --- /dev/null +++ b/src/Channel/styles.ts @@ -0,0 +1,7 @@ +import styled from 'styled-components'; + +export const ChannelContainer = styled.div` + display: flex; + flex-direction: column; + flex-grow: 1; +`; diff --git a/src/ChannelsPage/ChannelsPage.stories.tsx b/src/ChannelsPage/ChannelsPage.stories.tsx index c4acbd46d..0b9c42a5f 100644 --- a/src/ChannelsPage/ChannelsPage.stories.tsx +++ b/src/ChannelsPage/ChannelsPage.stories.tsx @@ -25,4 +25,8 @@ try { console.log(e); } -export const Channels = () => ; +const CustomMessage = ({ data, type }) =>
custom: {data.text}
; + +export const Channels = () => ( + +); diff --git a/src/ChannelsPage/index.tsx b/src/ChannelsPage/index.tsx index 82741d4ab..0c053992c 100644 --- a/src/ChannelsPage/index.tsx +++ b/src/ChannelsPage/index.tsx @@ -1,7 +1,4 @@ -import React from 'react'; -import useLiveObject from '../hooks/useLiveObject'; -import styled from 'styled-components'; - +import React, { useState, useEffect } from 'react'; import EkoClient, { MessageRepository, ChannelRepository, @@ -11,27 +8,41 @@ import EkoClient, { _changeSDKDefaultConfig, } from 'eko-sdk'; -const ChannelsListContainer = styled.div` - background-color: white; - border: 1px solid black; - padding: 16px; - width: 360px; - text-align: center; -`; +import { withCustomization } from '../hoks/customization'; + +import useLiveObject from '../hooks/useLiveObject'; +import Channel from '../Channel'; + +import { ChannelsPageContainer, ChannelsListContainer, ChannelItemContainer } from './styles'; -// Instantiate Channel Repository const channelRepo = new ChannelRepository(); +const ChannelItem = ({ channelId, selected, onSelect }) => ( + onSelect(channelId)} selected={selected}> + {channelId} + +); + const ChannelsList = () => { + const [currentChannelId, setCurrenChannelId] = useState(null); + const channels = useLiveObject(() => channelRepo.allChannels(), []); return ( - - {channels.map(channel => ( -
{channel.channelId}
- ))} -
+ + + {channels.map(channel => ( + + ))} + + {currentChannelId && } + ); }; -export default ChannelsList; +export default withCustomization(ChannelsList); diff --git a/src/ChannelsPage/styles.ts b/src/ChannelsPage/styles.ts new file mode 100644 index 000000000..b8b83252a --- /dev/null +++ b/src/ChannelsPage/styles.ts @@ -0,0 +1,25 @@ +import styled from 'styled-components'; + +export const ChannelsPageContainer = styled.div` + display: flex; + height: 400px; + overflow: hidden; +`; + +export const ChannelsListContainer = styled.div` + background-color: white; + border: 1px solid #e6e6e6; + border-radius: 4px; + width: 360px; + margin-right: 10px; + overflow: auto; +`; + +export const ChannelItemContainer = styled.div` + background-color: white; + border-bottom: 1px solid #e6e6e6; + height: 40px; + padding: 10px; + ${({ selected }) => selected && 'border-left: 8px solid rgba(41, 203, 114, 0.74);'} + cursor: pointer; +`; diff --git a/src/Message/index.tsx b/src/Message/index.tsx new file mode 100644 index 000000000..9bebea083 --- /dev/null +++ b/src/Message/index.tsx @@ -0,0 +1,28 @@ +import React, { useState } from 'react'; +import { customizableComponent } from '../hoks/customization'; + +import { MessageContainer } from './styles'; + +const MessageContent = ({ data, type }) => { + switch (type) { + case 'text': + return data.text; + case 'custom': + return JSON.stringify(data); + + case 'image': + case 'file': + default: + return 'Unsupported message format'; + } +}; + +const Message = ({ data, type }) => { + return ( + + + + ); +}; + +export default customizableComponent('Message')(Message); diff --git a/src/Message/styles.ts b/src/Message/styles.ts new file mode 100644 index 000000000..0ecf4cf2a --- /dev/null +++ b/src/Message/styles.ts @@ -0,0 +1,7 @@ +import styled from 'styled-components'; + +export const MessageContainer = styled.div` + background-color: white; + padding: 16px; + text-align: left; +`; diff --git a/src/MessageComposeBar/index.tsx b/src/MessageComposeBar/index.tsx new file mode 100644 index 000000000..03d510457 --- /dev/null +++ b/src/MessageComposeBar/index.tsx @@ -0,0 +1,25 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; + +import { MessageComposeBarInput } from './styles'; + +const MessageComposeBar = ({ onSubmit }) => { + const [message, setMessage] = useState(''); + + return ( + setMessage(e.target.value)} + onKeyPress={e => { + if (e.key === 'Enter' && message !== '') { + onSubmit(message); + setMessage(''); + } + }} + /> + ); +}; + +export default MessageComposeBar; diff --git a/src/MessageComposeBar/styles.ts b/src/MessageComposeBar/styles.ts new file mode 100644 index 000000000..675b03f8e --- /dev/null +++ b/src/MessageComposeBar/styles.ts @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +export const MessageComposeBarInput = styled.input` + box-sizing: border-box; + height: 60px; + padding: 10px; + outline: none; + border: 1px solid #e6e6e6; + border-radius: 4px; +`; diff --git a/src/MessagesList/index.tsx b/src/MessagesList/index.tsx new file mode 100644 index 000000000..0702f9594 --- /dev/null +++ b/src/MessagesList/index.tsx @@ -0,0 +1,24 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; +import DefaultMessage from '../Message'; +import { InfiniteScrollContainer, MessageListContainer } from './styles'; + +const MessagesList = ({ messages, hasMore, loadMore, Message = DefaultMessage }) => ( + + Loading} + isReverse + > + + {messages.map(message => ( + + ))} + + + +); + +export default MessagesList; diff --git a/src/MessagesList/styles.ts b/src/MessagesList/styles.ts new file mode 100644 index 000000000..fcc424a47 --- /dev/null +++ b/src/MessagesList/styles.ts @@ -0,0 +1,14 @@ +import styled from 'styled-components'; + +export const InfiniteScrollContainer = styled.div` + display: flex; + flex-direction: column-reverse; + height: 400px; + flex-grow: 1; + overflow: auto; +`; + +export const MessageListContainer = styled.div` + display: flex; + flex-direction: column-reverse; +`; diff --git a/src/hoks/customization.tsx b/src/hoks/customization.tsx new file mode 100644 index 000000000..19cd43762 --- /dev/null +++ b/src/hoks/customization.tsx @@ -0,0 +1,19 @@ +import React, { useContext } from 'react'; + +const CustomComponentsContext = React.createContext({}); +export const CustomComponentsProvider = CustomComponentsContext.Provider; + +export const customizableComponent = componentName => Component => props => { + const CustomComponent = useContext(CustomComponentsContext)[componentName]; + return CustomComponent ? : ; +}; + +export const withCustomization = Component => props => { + const { customComponents } = props; + const customComponentsMap = useContext(CustomComponentsContext); + return ( + + + + ); +}; diff --git a/src/hooks/usePaginatedLiveObject.ts b/src/hooks/usePaginatedLiveObject.ts new file mode 100644 index 000000000..9e9d6126b --- /dev/null +++ b/src/hooks/usePaginatedLiveObject.ts @@ -0,0 +1,31 @@ +import React, { useState, useEffect } from 'react'; +import EkoClient, { EkoLoadingStatus } from 'eko-sdk'; + +const noop = () => null; + +const usePaginatedLiveObject = (createLiveObject, defaultData) => { + const [data, setData] = useState(defaultData); + const [pagination, setPagination] = useState({ + hasMore: false, + loadMore: noop, + }); + + useEffect(() => { + const liveObject = createLiveObject(); + + liveObject.on('dataUpdated', setData); + + liveObject.on('loadingStatusChanged', ({ newValue }) => { + const hasMore = newValue === EkoLoadingStatus.Loaded ? liveObject.hasMore : false; + setPagination({ + hasMore, + loadMore: hasMore ? () => liveObject.nextPage() : noop, + }); + }); + return () => liveObject.dispose(); + }, []); + + return [data, pagination.hasMore, pagination.loadMore]; +}; + +export default usePaginatedLiveObject; From 056f967014e0847b1d81617d7309d49d3120a2ea Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 29 Jun 2020 13:36:56 +0700 Subject: [PATCH 007/740] custom components optimization --- src/hoks/customization.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hoks/customization.tsx b/src/hoks/customization.tsx index 19cd43762..16b5da3e3 100644 --- a/src/hoks/customization.tsx +++ b/src/hoks/customization.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import React, { useContext, useMemo } from 'react'; const CustomComponentsContext = React.createContext({}); export const CustomComponentsProvider = CustomComponentsContext.Provider; @@ -11,8 +11,14 @@ export const customizableComponent = componentName => Component => props => { export const withCustomization = Component => props => { const { customComponents } = props; const customComponentsMap = useContext(CustomComponentsContext); + + const memoizedCustomComponentsMap = useMemo( + () => ({ ...customComponentsMap, ...customComponents }), + [customComponentsMap, customComponents], + ); + return ( - + ); From e897bb84dd17b69057876cdd3b694b416eb3b44e Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 29 Jun 2020 15:01:13 +0700 Subject: [PATCH 008/740] ui kit provider and examples --- package-lock.json | 13 +++++--- package.json | 1 + src/Channel/index.tsx | 20 +++++------ src/ChannelItem/index.tsx | 13 ++++++++ src/ChannelItem/styles.ts | 10 ++++++ src/ChannelsPage/ChannelsPage.stories.tsx | 37 +++++++++++++++++++-- src/ChannelsPage/index.tsx | 23 +++---------- src/ChannelsPage/styles.ts | 9 ----- src/MessageComposeBar/index.tsx | 4 ++- src/{MessagesList => MessageList}/index.tsx | 7 ++-- src/{MessagesList => MessageList}/styles.ts | 0 src/UiKitProvider/index.tsx | 9 +++++ src/index.ts | 9 +++-- 13 files changed, 105 insertions(+), 50 deletions(-) create mode 100644 src/ChannelItem/index.tsx create mode 100644 src/ChannelItem/styles.ts rename src/{MessagesList => MessageList}/index.tsx (74%) rename src/{MessagesList => MessageList}/styles.ts (100%) create mode 100644 src/UiKitProvider/index.tsx diff --git a/package-lock.json b/package-lock.json index 40575c74c..ef644d25f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7453,6 +7453,12 @@ "path-is-absolute": "^1.0.0", "rimraf": "^2.2.8" } + }, + "ramda": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", + "dev": true } } }, @@ -13048,10 +13054,9 @@ "dev": true }, "ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", - "dev": true + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz", + "integrity": "sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA==" }, "randombytes": { "version": "2.1.0", diff --git a/package.json b/package.json index 19e232844..d7dc04047 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "styled-components": "^5.1.1" }, "dependencies": { + "ramda": "^0.27.0", "react-infinite-scroller": "^1.2.4" } } diff --git a/src/Channel/index.tsx b/src/Channel/index.tsx index 0b914c870..06c55692d 100644 --- a/src/Channel/index.tsx +++ b/src/Channel/index.tsx @@ -1,22 +1,18 @@ import React, { useState, useEffect } from 'react'; -import InfiniteScroll from 'react-infinite-scroller'; -import EkoClient, { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; +import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; -import useLiveObject from '../hooks/useLiveObject'; +import { customizableComponent } from '../hoks/customization'; import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; -import DefaultMessagesList from '../MessagesList'; -import DefaultMessageComposeBar from '../MessageComposeBar'; + +import MessageList from '../MessageList'; +import MessageComposeBar from '../MessageComposeBar'; import { ChannelContainer } from './styles'; const channelRepo = new ChannelRepository(); const messageRepo = new MessageRepository(); -const Channel = ({ - channelId, - MessageComposeBar = DefaultMessageComposeBar, - MessagesList = DefaultMessagesList, -}) => { +const Channel = ({ channelId }) => { const [messages, hasMore, loadMore] = usePaginatedLiveObject( () => messageRepo.messagesForChannel({ channelId }), [], @@ -38,10 +34,10 @@ const Channel = ({ return ( - + ); }; -export default Channel; +export default customizableComponent('Channel')(Channel); diff --git a/src/ChannelItem/index.tsx b/src/ChannelItem/index.tsx new file mode 100644 index 000000000..7e8ecf1e9 --- /dev/null +++ b/src/ChannelItem/index.tsx @@ -0,0 +1,13 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import { ChannelItemContainer } from './styles'; + +const ChannelItem = ({ channelId, selected, onSelect }) => ( + onSelect(channelId)} selected={selected}> + {channelId} + +); + +export default customizableComponent('ChannelItem')(ChannelItem); diff --git a/src/ChannelItem/styles.ts b/src/ChannelItem/styles.ts new file mode 100644 index 000000000..e97014bea --- /dev/null +++ b/src/ChannelItem/styles.ts @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +export const ChannelItemContainer = styled.div` + background-color: white; + border-bottom: 1px solid #e6e6e6; + height: 40px; + padding: 10px; + ${({ selected }) => selected && 'border-left: 8px solid rgba(41, 203, 114, 0.74);'} + cursor: pointer; +`; diff --git a/src/ChannelsPage/ChannelsPage.stories.tsx b/src/ChannelsPage/ChannelsPage.stories.tsx index 0b9c42a5f..f6ed03ab9 100644 --- a/src/ChannelsPage/ChannelsPage.stories.tsx +++ b/src/ChannelsPage/ChannelsPage.stories.tsx @@ -2,6 +2,10 @@ import React, { useEffect } from 'react'; import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; import ChannelsPage from './index'; +import Channel from '../Channel'; +import Message from '../Message'; +import MessageList from '../MessageList'; +import UiKitProvider from '../UiKitProvider'; export default { title: 'ChannelsPage', @@ -27,6 +31,35 @@ try { const CustomMessage = ({ data, type }) =>
custom: {data.text}
; -export const Channels = () => ( - +export const ChannelsPageWithoutCustomization = () => ; + +export const ChannelsPageWithCustomization = () => ( + +); + +export const WithGlobalProvider = () => ( + + + +); + +export const WithGlobalProviderOverride = () => ( + + + ); + +const CustomMessageList = ({ messages }) => ( + <> + customMessageList + {messages.map(Message)} + +); + +export const MultyLayer = () => ( + + + +); + +export const JustUiComponent = () => ; diff --git a/src/ChannelsPage/index.tsx b/src/ChannelsPage/index.tsx index 0c053992c..f6440a755 100644 --- a/src/ChannelsPage/index.tsx +++ b/src/ChannelsPage/index.tsx @@ -1,29 +1,16 @@ import React, { useState, useEffect } from 'react'; -import EkoClient, { - MessageRepository, - ChannelRepository, - ChannelMembershipRepository, - EkoChannelType, - EkoConnectionStatus, - _changeSDKDefaultConfig, -} from 'eko-sdk'; +import { ChannelRepository } from 'eko-sdk'; import { withCustomization } from '../hoks/customization'; - import useLiveObject from '../hooks/useLiveObject'; import Channel from '../Channel'; +import ChannelItem from '../ChannelItem'; -import { ChannelsPageContainer, ChannelsListContainer, ChannelItemContainer } from './styles'; +import { ChannelsPageContainer, ChannelsListContainer } from './styles'; const channelRepo = new ChannelRepository(); -const ChannelItem = ({ channelId, selected, onSelect }) => ( - onSelect(channelId)} selected={selected}> - {channelId} - -); - -const ChannelsList = () => { +const ChannelsPage = () => { const [currentChannelId, setCurrenChannelId] = useState(null); const channels = useLiveObject(() => channelRepo.allChannels(), []); @@ -45,4 +32,4 @@ const ChannelsList = () => { ); }; -export default withCustomization(ChannelsList); +export default withCustomization(ChannelsPage); diff --git a/src/ChannelsPage/styles.ts b/src/ChannelsPage/styles.ts index b8b83252a..001de5547 100644 --- a/src/ChannelsPage/styles.ts +++ b/src/ChannelsPage/styles.ts @@ -14,12 +14,3 @@ export const ChannelsListContainer = styled.div` margin-right: 10px; overflow: auto; `; - -export const ChannelItemContainer = styled.div` - background-color: white; - border-bottom: 1px solid #e6e6e6; - height: 40px; - padding: 10px; - ${({ selected }) => selected && 'border-left: 8px solid rgba(41, 203, 114, 0.74);'} - cursor: pointer; -`; diff --git a/src/MessageComposeBar/index.tsx b/src/MessageComposeBar/index.tsx index 03d510457..29e0cd001 100644 --- a/src/MessageComposeBar/index.tsx +++ b/src/MessageComposeBar/index.tsx @@ -1,6 +1,8 @@ import React, { useState, useEffect } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; +import { customizableComponent } from '../hoks/customization'; + import { MessageComposeBarInput } from './styles'; const MessageComposeBar = ({ onSubmit }) => { @@ -22,4 +24,4 @@ const MessageComposeBar = ({ onSubmit }) => { ); }; -export default MessageComposeBar; +export default customizableComponent('MessageComposeBar')(MessageComposeBar); diff --git a/src/MessagesList/index.tsx b/src/MessageList/index.tsx similarity index 74% rename from src/MessagesList/index.tsx rename to src/MessageList/index.tsx index 0702f9594..51d649033 100644 --- a/src/MessagesList/index.tsx +++ b/src/MessageList/index.tsx @@ -1,9 +1,12 @@ import React, { useState, useEffect } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; import DefaultMessage from '../Message'; + +import { customizableComponent } from '../hoks/customization'; + import { InfiniteScrollContainer, MessageListContainer } from './styles'; -const MessagesList = ({ messages, hasMore, loadMore, Message = DefaultMessage }) => ( +const MessageList = ({ messages, hasMore, loadMore, Message = DefaultMessage }) => ( ); -export default MessagesList; +export default customizableComponent('MessageList')(MessageList); diff --git a/src/MessagesList/styles.ts b/src/MessageList/styles.ts similarity index 100% rename from src/MessagesList/styles.ts rename to src/MessageList/styles.ts diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.tsx new file mode 100644 index 000000000..8a9cd0518 --- /dev/null +++ b/src/UiKitProvider/index.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import { CustomComponentsProvider, withCustomization } from '../hoks/customization'; + +const UiKitProvider = ({ customComponents, theme, children /* TODO localization */ }) => ( + {children} +); + +export default withCustomization(UiKitProvider); diff --git a/src/index.ts b/src/index.ts index 4dde0cda4..0404e477c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,8 @@ -import TestComponent from './TestComponent/TestComponent'; +import UiKitProvider from './UiKitProvider'; +import ChannelsPage from './ChannelsPage'; +import Channel from './Channel'; +import Message from './Message'; +import MessageComposeBar from './MessageComposeBar'; +import MessageList from './MessageList'; -export { TestComponent }; +export { UiKitProvider, ChannelsPage, Channel, Message, MessageComposeBar, MessageList }; From 3f854b55e35e4b75b5f70b78776963d494282461 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Wed, 1 Jul 2020 12:38:02 +0700 Subject: [PATCH 009/740] simplify customization, fix recursive rendering for nested components inside of customized one --- README.md | 16 +++++++++ src/ChannelsPage/ChannelsPage.stories.tsx | 40 +++++++++++++++++++---- src/ChannelsPage/index.tsx | 4 +-- src/UiKitProvider/index.tsx | 26 +++++++++++---- src/hoks/customization.tsx | 18 +++++----- 5 files changed, 81 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 1bfc4dfe6..41d2a9631 100644 --- a/README.md +++ b/README.md @@ -43,3 +43,19 @@ npm publish ``` The `"prepublishOnly": "npm run build"` script in `package.json` will execute before publish occurs, ensuring the `build/` directory and the compiled component library exist. + + +## How to customize components + +### globally +``` + + + +``` + + +### per component +``` + +``` \ No newline at end of file diff --git a/src/ChannelsPage/ChannelsPage.stories.tsx b/src/ChannelsPage/ChannelsPage.stories.tsx index f6ed03ab9..5b14dc354 100644 --- a/src/ChannelsPage/ChannelsPage.stories.tsx +++ b/src/ChannelsPage/ChannelsPage.stories.tsx @@ -33,16 +33,28 @@ const CustomMessage = ({ data, type }) =>
custom: {data.text}
; export const ChannelsPageWithoutCustomization = () => ; -export const ChannelsPageWithCustomization = () => ( - -); - export const WithGlobalProvider = () => ( - + ); +export const ChannelsPageWithCustomization = () => ( + +); + export const WithGlobalProviderOverride = () => ( @@ -52,14 +64,28 @@ export const WithGlobalProviderOverride = () => ( const CustomMessageList = ({ messages }) => ( <> customMessageList - {messages.map(Message)} + {messages.map(message => ( + + ))} ); - export const MultyLayer = () => ( ); +const CustomMessageWithMessageInside = props => ( +
+
Custom Message, wrapping existing Message component
+ +
+); + +export const CustomWithReuseingOfOriginal = () => ( + + + +); + export const JustUiComponent = () => ; diff --git a/src/ChannelsPage/index.tsx b/src/ChannelsPage/index.tsx index f6440a755..0a8bc93cd 100644 --- a/src/ChannelsPage/index.tsx +++ b/src/ChannelsPage/index.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { withCustomization } from '../hoks/customization'; +import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; import Channel from '../Channel'; import ChannelItem from '../ChannelItem'; @@ -32,4 +32,4 @@ const ChannelsPage = () => { ); }; -export default withCustomization(ChannelsPage); +export default customizableComponent('ChannelsPage')(ChannelsPage); diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.tsx index 8a9cd0518..245bf2ddd 100644 --- a/src/UiKitProvider/index.tsx +++ b/src/UiKitProvider/index.tsx @@ -1,9 +1,23 @@ -import React from 'react'; +import React, { useContext, useMemo } from 'react'; import { ThemeProvider } from 'styled-components'; -import { CustomComponentsProvider, withCustomization } from '../hoks/customization'; +import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/customization'; -const UiKitProvider = ({ customComponents, theme, children /* TODO localization */ }) => ( - {children} -); +const UiKitProvider = ({ customComponents, theme, children /* TODO localization */ }) => { + const customComponentsMap = useContext(CustomComponentsContext); -export default withCustomization(UiKitProvider); + const memoizedCustomComponentsMap = useMemo( + () => ({ + ...customComponentsMap, + ...customComponents, + }), + [customComponentsMap, customComponents], + ); + + return ( + + {children} + + ); +}; + +export default UiKitProvider; diff --git a/src/hoks/customization.tsx b/src/hoks/customization.tsx index 16b5da3e3..dc31f295a 100644 --- a/src/hoks/customization.tsx +++ b/src/hoks/customization.tsx @@ -1,25 +1,27 @@ import React, { useContext, useMemo } from 'react'; -const CustomComponentsContext = React.createContext({}); +export const CustomComponentsContext = React.createContext({}); export const CustomComponentsProvider = CustomComponentsContext.Provider; export const customizableComponent = componentName => Component => props => { - const CustomComponent = useContext(CustomComponentsContext)[componentName]; - return CustomComponent ? : ; -}; - -export const withCustomization = Component => props => { const { customComponents } = props; + const customComponentsMap = useContext(CustomComponentsContext); + const CustomComponent = customComponentsMap[componentName]; + const memoizedCustomComponentsMap = useMemo( - () => ({ ...customComponentsMap, ...customComponents }), + () => ({ + ...customComponentsMap, + ...customComponents, + [componentName]: null, // prevent recursive rendering in case if inside custom component nested original component + }), [customComponentsMap, customComponents], ); return ( - + {CustomComponent ? : } ); }; From 0fc0d8168d769efc33e32e575bcc3535b1596754 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Tue, 7 Jul 2020 13:52:23 +0700 Subject: [PATCH 010/740] rename components --- package-lock.json | 124 ++++++++++++++++-- package.json | 3 +- src/ChannelItem/index.tsx | 13 -- src/ChannelsPage/index.tsx | 35 ----- src/{Channel => Chat}/index.tsx | 12 +- src/{Channel => Chat}/styles.ts | 0 .../ChatHome.stories.tsx} | 29 ++-- src/ChatHome/index.tsx | 24 ++++ src/ChatHome/styles.ts | 7 + src/ChatItem/index.tsx | 13 ++ src/{ChannelItem => ChatItem}/styles.ts | 2 +- src/Message/index.tsx | 3 +- src/MessageList/index.tsx | 47 ++++--- src/RecentChat/index.tsx | 29 ++++ src/{ChannelsPage => RecentChat}/styles.ts | 6 - src/UiKitProvider/index.tsx | 9 +- src/hoks/customization.tsx | 1 + 17 files changed, 249 insertions(+), 108 deletions(-) delete mode 100644 src/ChannelItem/index.tsx delete mode 100644 src/ChannelsPage/index.tsx rename src/{Channel => Chat}/index.tsx (68%) rename src/{Channel => Chat}/styles.ts (100%) rename src/{ChannelsPage/ChannelsPage.stories.tsx => ChatHome/ChatHome.stories.tsx} (76%) create mode 100644 src/ChatHome/index.tsx create mode 100644 src/ChatHome/styles.ts create mode 100644 src/ChatItem/index.tsx rename src/{ChannelItem => ChatItem}/styles.ts (83%) create mode 100644 src/RecentChat/index.tsx rename src/{ChannelsPage => RecentChat}/styles.ts (67%) diff --git a/package-lock.json b/package-lock.json index ef644d25f..166f6d76a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1314,6 +1314,63 @@ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", "dev": true }, + "@formatjs/intl-datetimeformat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-1.3.3.tgz", + "integrity": "sha512-wLHQOqKU+I0sINFPA7jabYm/O+ep90NtMv88wCgtWjoHWkfpgK4MJ7mRU01O7Vm/a3onaYvfM4NISdSSLLmHuw==", + "requires": { + "@formatjs/intl-getcanonicallocales": "^1.2.7", + "@formatjs/intl-utils": "^3.5.0" + } + }, + "@formatjs/intl-displaynames": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-2.2.9.tgz", + "integrity": "sha512-MjjG9SXBre8WwqRHMtaX0wD9T4VvEiNp5U/K96GDE8rHzHxAdP8wKEqlau9ZP47O+bSi7JN5cOTAHoUBpMsn6Q==", + "requires": { + "@formatjs/intl-utils": "^3.5.0" + } + }, + "@formatjs/intl-getcanonicallocales": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.2.7.tgz", + "integrity": "sha512-qrmHCMnUSlgus9O8e/jVYqe2l3jmVGVJUCMY0F9L222VQA+VA2O7VmV26ONsPMvO1BsYO2JyXNCMH3hNewIOhA==", + "requires": { + "cldr-core": "36.0.0" + } + }, + "@formatjs/intl-listformat": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-2.2.9.tgz", + "integrity": "sha512-RC9wrQf7XXRP73Np1+WDR71HdT91mcdiNgH6m9HVFWa3tgv8rk43QJSMbehPqgcJ1l1pm6Uwm0wURAz8YJVX3A==", + "requires": { + "@formatjs/intl-utils": "^3.5.0" + } + }, + "@formatjs/intl-numberformat": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-4.2.11.tgz", + "integrity": "sha512-LiPrkg2sRZsH0F6XOz9Esgu+Ou6vux3QPiNDHKKrHL5T4pRbcethI9+vwttnY44FIVnTxjQdywkcJILLjgWPUw==", + "requires": { + "@formatjs/intl-utils": "^3.5.0" + } + }, + "@formatjs/intl-relativetimeformat": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-5.2.11.tgz", + "integrity": "sha512-Lf7SEIICJ4cGX1vFAMeyRQG8L1Pf18qfXXX4OWIswUnCyCcoIidLMvVN2xjrtB/OToc6mgZhhCTF35hRA0hl7Q==", + "requires": { + "@formatjs/intl-utils": "^3.5.0" + } + }, + "@formatjs/intl-utils": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-3.5.0.tgz", + "integrity": "sha512-bXKUZFyOhcsjZlLfo+/Aeiu9FN8bh3ugwVx2FpoRC0sxixk9iALvlBPz2J6LGeJMtc/2zgdk6qqwR6RdAFGNBQ==", + "requires": { + "emojis-list": "^3.0.0" + } + }, "@jest/console": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", @@ -2668,7 +2725,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dev": true, "requires": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -2680,6 +2736,11 @@ "integrity": "sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==", "dev": true }, + "@types/invariant": { + "version": "2.2.33", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.33.tgz", + "integrity": "sha512-/jUNmS8d4bCKdqslfxW6dg/9Gksfzxz67IYfqApHn+HvHlMVXwYv2zpTDnS/yaK9BB0i0GlBTaYci0EFE62Hmw==" + }, "@types/is-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.0.tgz", @@ -2767,8 +2828,7 @@ "@types/prop-types": { "version": "15.7.3", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", - "dev": true + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" }, "@types/q": { "version": "1.5.4", @@ -2790,7 +2850,6 @@ "version": "16.9.41", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.41.tgz", "integrity": "sha512-6cFei7F7L4wwuM+IND/Q2cV1koQUvJ8iSV+Gwn0c3kvABZ691g7sp3hfEQHOUBJtccl1gPi+EyNjMIl9nGA0ug==", - "dev": true, "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" @@ -5193,6 +5252,11 @@ "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", "dev": true }, + "cldr-core": { + "version": "36.0.0", + "resolved": "https://registry.npmjs.org/cldr-core/-/cldr-core-36.0.0.tgz", + "integrity": "sha512-QLnAjt20rZe38c8h8OJ9jPND+O4o5O8Nw0TK/P3KpNn1cmOhMu0rk6Kc3ap96c5OStQ9gAngs9+Be2sum26NOw==" + }, "clean-css": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", @@ -6189,8 +6253,7 @@ "csstype": { "version": "2.6.10", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", - "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==", - "dev": true + "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" }, "currently-unhandled": { "version": "0.4.1", @@ -6705,8 +6768,7 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "emotion-theming": { "version": "10.0.27", @@ -8376,7 +8438,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, "requires": { "react-is": "^16.7.0" } @@ -8820,6 +8881,28 @@ "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, + "intl-format-cache": { + "version": "4.2.43", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-4.2.43.tgz", + "integrity": "sha512-FCLGvHfAp1pT8XdzdWbZdtJAIE5IjrjTb8kcEUreJhbxBsqUQRcnVl6TZZzMkgJyFLdh9DKc+VytgtncrAyxKQ==" + }, + "intl-messageformat": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-8.4.1.tgz", + "integrity": "sha512-N4jLt0KebfqXZZZQRwBwZMrqwccHzZnN6KSeUsfidIoHMPIlLIgq08KcYsn7bZS6adh1KKH4/99VODWDDDu85Q==", + "requires": { + "intl-format-cache": "^4.2.43", + "intl-messageformat-parser": "^5.2.1" + } + }, + "intl-messageformat-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.2.1.tgz", + "integrity": "sha512-sRDHQZumkMArCMtNxAN14bCwN/MmzdBHg6dW3Gr33WFxa+BwTTqcsz0Z084foR67FJR0Dk2yS8xjyDmx3bVNSg==", + "requires": { + "@formatjs/intl-numberformat": "^4.2.11" + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -13490,6 +13573,26 @@ "prop-types": "^15.5.8" } }, + "react-intl": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-4.7.6.tgz", + "integrity": "sha512-esfz1/WAZjN7WixC1ZiRDWrvH+OSdZ6ZcRYguEqeS69lycj/x8L3ckzF0+5cmbkJGvBLG5ppFZ6DOO0mCk8gUw==", + "requires": { + "@formatjs/intl-datetimeformat": "^1.3.3", + "@formatjs/intl-displaynames": "^2.2.9", + "@formatjs/intl-listformat": "^2.2.9", + "@formatjs/intl-numberformat": "^4.2.11", + "@formatjs/intl-relativetimeformat": "^5.2.11", + "@formatjs/intl-utils": "^3.5.0", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/invariant": "^2.2.31", + "hoist-non-react-statics": "^3.3.2", + "intl-format-cache": "^4.2.43", + "intl-messageformat": "^8.4.1", + "intl-messageformat-parser": "^5.2.1", + "shallow-equal": "^1.2.1" + } + }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -14727,8 +14830,7 @@ "shallow-equal": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", - "dev": true + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, "shallowequal": { "version": "1.1.0", diff --git a/package.json b/package.json index d7dc04047..fa8f99007 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ }, "dependencies": { "ramda": "^0.27.0", - "react-infinite-scroller": "^1.2.4" + "react-infinite-scroller": "^1.2.4", + "react-intl": "^4.7.6" } } diff --git a/src/ChannelItem/index.tsx b/src/ChannelItem/index.tsx deleted file mode 100644 index 7e8ecf1e9..000000000 --- a/src/ChannelItem/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React, { useState, useEffect } from 'react'; - -import { customizableComponent } from '../hoks/customization'; - -import { ChannelItemContainer } from './styles'; - -const ChannelItem = ({ channelId, selected, onSelect }) => ( - onSelect(channelId)} selected={selected}> - {channelId} - -); - -export default customizableComponent('ChannelItem')(ChannelItem); diff --git a/src/ChannelsPage/index.tsx b/src/ChannelsPage/index.tsx deleted file mode 100644 index 0a8bc93cd..000000000 --- a/src/ChannelsPage/index.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { ChannelRepository } from 'eko-sdk'; - -import { customizableComponent } from '../hoks/customization'; -import useLiveObject from '../hooks/useLiveObject'; -import Channel from '../Channel'; -import ChannelItem from '../ChannelItem'; - -import { ChannelsPageContainer, ChannelsListContainer } from './styles'; - -const channelRepo = new ChannelRepository(); - -const ChannelsPage = () => { - const [currentChannelId, setCurrenChannelId] = useState(null); - - const channels = useLiveObject(() => channelRepo.allChannels(), []); - - return ( - - - {channels.map(channel => ( - - ))} - - {currentChannelId && } - - ); -}; - -export default customizableComponent('ChannelsPage')(ChannelsPage); diff --git a/src/Channel/index.tsx b/src/Chat/index.tsx similarity index 68% rename from src/Channel/index.tsx rename to src/Chat/index.tsx index 06c55692d..f1aafcb9a 100644 --- a/src/Channel/index.tsx +++ b/src/Chat/index.tsx @@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'; import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; -import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; import MessageList from '../MessageList'; import MessageComposeBar from '../MessageComposeBar'; @@ -12,12 +11,7 @@ import { ChannelContainer } from './styles'; const channelRepo = new ChannelRepository(); const messageRepo = new MessageRepository(); -const Channel = ({ channelId }) => { - const [messages, hasMore, loadMore] = usePaginatedLiveObject( - () => messageRepo.messagesForChannel({ channelId }), - [], - ); - +const Chat = ({ channelId }) => { useEffect(() => { channelRepo.joinChannel({ channelId, @@ -34,10 +28,10 @@ const Channel = ({ channelId }) => { return ( - + ); }; -export default customizableComponent('Channel')(Channel); +export default customizableComponent('Chat')(Chat); diff --git a/src/Channel/styles.ts b/src/Chat/styles.ts similarity index 100% rename from src/Channel/styles.ts rename to src/Chat/styles.ts diff --git a/src/ChannelsPage/ChannelsPage.stories.tsx b/src/ChatHome/ChatHome.stories.tsx similarity index 76% rename from src/ChannelsPage/ChannelsPage.stories.tsx rename to src/ChatHome/ChatHome.stories.tsx index 5b14dc354..2e14e4a3c 100644 --- a/src/ChannelsPage/ChannelsPage.stories.tsx +++ b/src/ChatHome/ChatHome.stories.tsx @@ -1,14 +1,14 @@ import React, { useEffect } from 'react'; import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; -import ChannelsPage from './index'; -import Channel from '../Channel'; +import ChatHome from './index'; +import Chat from '../Chat'; import Message from '../Message'; import MessageList from '../MessageList'; import UiKitProvider from '../UiKitProvider'; export default { - title: 'ChannelsPage', + title: 'ChatHome', }; _changeSDKDefaultConfig({ @@ -29,9 +29,16 @@ try { console.log(e); } -const CustomMessage = ({ data, type }) =>
custom: {data.text}
; +// const CustomMessage = ({ data, type }) =>
custom: {data.text}
; -export const ChannelsPageWithoutCustomization = () => ; +const CustomMessage = props => ( +
+ original message with header + +
+); + +export const ChatHomeWithoutCustomization = () => ; export const WithGlobalProvider = () => ( ( } } > - + ); -export const ChannelsPageWithCustomization = () => ( - +export const ChatHomeWithCustomization = () => ( + ); export const WithGlobalProviderOverride = () => ( - + ); @@ -71,7 +78,7 @@ const CustomMessageList = ({ messages }) => ( ); export const MultyLayer = () => ( - + ); @@ -88,4 +95,6 @@ export const CustomWithReuseingOfOriginal = () => (
); +export const Example = () =>
Example
; + export const JustUiComponent = () => ; diff --git a/src/ChatHome/index.tsx b/src/ChatHome/index.tsx new file mode 100644 index 000000000..b56782599 --- /dev/null +++ b/src/ChatHome/index.tsx @@ -0,0 +1,24 @@ +import React, { useState, useEffect } from 'react'; +import { ChannelRepository } from 'eko-sdk'; + +import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; +import RecentChat from '../RecentChat'; +import Chat from '../Chat'; + +import { ChatHomeContainer } from './styles'; + +const channelRepo = new ChannelRepository(); + +const ChatHome = () => { + const [currentChannelId, setCurrenChannelId] = useState(null); + + return ( + + + {currentChannelId && } + + ); +}; + +export default customizableComponent('ChatHome')(ChatHome); diff --git a/src/ChatHome/styles.ts b/src/ChatHome/styles.ts new file mode 100644 index 000000000..bca227938 --- /dev/null +++ b/src/ChatHome/styles.ts @@ -0,0 +1,7 @@ +import styled from 'styled-components'; + +export const ChatHomeContainer = styled.div` + display: flex; + height: 400px; + overflow: hidden; +`; diff --git a/src/ChatItem/index.tsx b/src/ChatItem/index.tsx new file mode 100644 index 000000000..234d37883 --- /dev/null +++ b/src/ChatItem/index.tsx @@ -0,0 +1,13 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import { ChatItemContainer } from './styles'; + +const ChatItem = ({ channelId, selected, onSelect }) => ( + onSelect(channelId)} selected={selected}> + {channelId} + +); + +export default customizableComponent('ChatItem')(ChatItem); diff --git a/src/ChannelItem/styles.ts b/src/ChatItem/styles.ts similarity index 83% rename from src/ChannelItem/styles.ts rename to src/ChatItem/styles.ts index e97014bea..3c8651a67 100644 --- a/src/ChannelItem/styles.ts +++ b/src/ChatItem/styles.ts @@ -1,6 +1,6 @@ import styled from 'styled-components'; -export const ChannelItemContainer = styled.div` +export const ChatItemContainer = styled.div` background-color: white; border-bottom: 1px solid #e6e6e6; height: 40px; diff --git a/src/Message/index.tsx b/src/Message/index.tsx index 9bebea083..8e4fcf4d3 100644 --- a/src/Message/index.tsx +++ b/src/Message/index.tsx @@ -6,7 +6,7 @@ import { MessageContainer } from './styles'; const MessageContent = ({ data, type }) => { switch (type) { case 'text': - return data.text; + return data.text || null; case 'custom': return JSON.stringify(data); @@ -18,6 +18,7 @@ const MessageContent = ({ data, type }) => { }; const Message = ({ data, type }) => { + console.log('data, type', data, type); return ( diff --git a/src/MessageList/index.tsx b/src/MessageList/index.tsx index 51d649033..a12f0a1b3 100644 --- a/src/MessageList/index.tsx +++ b/src/MessageList/index.tsx @@ -1,27 +1,38 @@ import React, { useState, useEffect } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; -import DefaultMessage from '../Message'; +import { MessageRepository } from 'eko-sdk'; +import Message from '../Message'; import { customizableComponent } from '../hoks/customization'; +import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; -const MessageList = ({ messages, hasMore, loadMore, Message = DefaultMessage }) => ( - - Loading} - isReverse - > - - {messages.map(message => ( - - ))} - - - -); +const messageRepo = new MessageRepository(); + +const MessageList = ({ channelId }) => { + const [messages, hasMore, loadMore] = usePaginatedLiveObject( + () => messageRepo.messagesForChannel({ channelId }), + [], + ); + + return ( + + Loading} + isReverse + > + + {messages.map(message => ( + + ))} + + + + ); +}; export default customizableComponent('MessageList')(MessageList); diff --git a/src/RecentChat/index.tsx b/src/RecentChat/index.tsx new file mode 100644 index 000000000..b3c95a903 --- /dev/null +++ b/src/RecentChat/index.tsx @@ -0,0 +1,29 @@ +import React, { useState, useEffect } from 'react'; +import { ChannelRepository } from 'eko-sdk'; + +import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; +import ChatItem from '../ChatItem'; + +import { ChannelsListContainer } from './styles'; + +const channelRepo = new ChannelRepository(); + +const RecentChat = ({ onChannelClick, selectedChannelId }) => { + const channels = useLiveObject(() => channelRepo.allChannels(), []); + + return ( + + {channels.map(channel => ( + + ))} + + ); +}; + +export default customizableComponent('RecentChat')(RecentChat); diff --git a/src/ChannelsPage/styles.ts b/src/RecentChat/styles.ts similarity index 67% rename from src/ChannelsPage/styles.ts rename to src/RecentChat/styles.ts index 001de5547..0fd136344 100644 --- a/src/ChannelsPage/styles.ts +++ b/src/RecentChat/styles.ts @@ -1,11 +1,5 @@ import styled from 'styled-components'; -export const ChannelsPageContainer = styled.div` - display: flex; - height: 400px; - overflow: hidden; -`; - export const ChannelsListContainer = styled.div` background-color: white; border: 1px solid #e6e6e6; diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.tsx index 245bf2ddd..93c7a9ea5 100644 --- a/src/UiKitProvider/index.tsx +++ b/src/UiKitProvider/index.tsx @@ -1,6 +1,7 @@ import React, { useContext, useMemo } from 'react'; import { ThemeProvider } from 'styled-components'; import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/customization'; +import { IntlProvider } from 'react-intl'; const UiKitProvider = ({ customComponents, theme, children /* TODO localization */ }) => { const customComponentsMap = useContext(CustomComponentsContext); @@ -14,9 +15,11 @@ const UiKitProvider = ({ customComponents, theme, children /* TODO localization ); return ( - - {children} - + + + {children} + + ); }; diff --git a/src/hoks/customization.tsx b/src/hoks/customization.tsx index dc31f295a..df6b7fddc 100644 --- a/src/hoks/customization.tsx +++ b/src/hoks/customization.tsx @@ -19,6 +19,7 @@ export const customizableComponent = componentName => Component => props => { [customComponentsMap, customComponents], ); + // TODO do not render provider if there is no changes return ( {CustomComponent ? : } From 9ec65c68b16368ceea61c497a7948d184c5d247f Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Thu, 9 Jul 2020 17:09:09 +0700 Subject: [PATCH 011/740] new message styles --- package-lock.json | 37 +++++++++++++++++ package.json | 4 ++ src/Avatar/index.tsx | 8 ++++ src/Avatar/styles.ts | 8 ++++ src/ChatHome/ChatHome.stories.tsx | 18 +++++++-- src/Message/IncomingMessage.tsx | 7 ++++ src/Message/OutgoingMessage.tsx | 5 +++ src/Message/index.tsx | 37 ++++++++++++++--- src/Message/styles.ts | 67 +++++++++++++++++++++++++++++-- src/MessageList/index.tsx | 16 ++++++-- src/UiKitProvider/GlobalStyle.ts | 9 +++++ src/UiKitProvider/index.tsx | 23 ++++++++++- src/hoks/withSdk.tsx | 13 ++++++ src/index.ts | 7 ++-- 14 files changed, 236 insertions(+), 23 deletions(-) create mode 100644 src/Avatar/index.tsx create mode 100644 src/Avatar/styles.ts create mode 100644 src/Message/IncomingMessage.tsx create mode 100644 src/Message/OutgoingMessage.tsx create mode 100644 src/UiKitProvider/GlobalStyle.ts create mode 100644 src/hoks/withSdk.tsx diff --git a/package-lock.json b/package-lock.json index 166f6d76a..152fe53b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1371,6 +1371,43 @@ "emojis-list": "^3.0.0" } }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.29", + "resolved": "https://npm.fontawesome.com/@fortawesome/fontawesome-common-types/-/0.2.29/fontawesome-common-types-0.2.29.tgz", + "integrity": "sha512-cY+QfDTbZ7XVxzx7jxbC98Oxr/zc7R2QpTLqTxqlfyXDrAJjzi/xUIqAUsygELB62JIrbsWxtSRhayKFkGI7MA==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.29", + "resolved": "https://npm.fontawesome.com/@fortawesome/fontawesome-svg-core/-/1.2.29/fontawesome-svg-core-1.2.29.tgz", + "integrity": "sha512-xmPmP2t8qrdo8RyKihTkGb09RnZoc+7HFBCnr0/6ZhStdGDSLeEd7ajV181+2W29NWIFfylO13rU+s3fpy3cnA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "5.13.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/free-regular-svg-icons/-/5.13.1/free-regular-svg-icons-5.13.1.tgz", + "integrity": "sha512-sSeaqqmv2ovA5LKcrbh3VnEDZHVhaxijWKm4R0AdT0eG21pgxNsJbStD8lW9z6bgSuWXRNHhbhOmARuRCLS8tw==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.13.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/free-solid-svg-icons/-/5.13.1/free-solid-svg-icons-5.13.1.tgz", + "integrity": "sha512-LQH/0L1p4+rqtoSHa9qFYR84hpuRZKqaQ41cfBQx8b68p21zoWSekTAeA54I/2x9VlCHDLFlG74Nmdg4iTPQOg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.1.11", + "resolved": "https://npm.fontawesome.com/@fortawesome/react-fontawesome/-/0.1.11/react-fontawesome-0.1.11.tgz", + "integrity": "sha512-sClfojasRifQKI0OPqTy8Ln8iIhnxR/Pv/hukBhWnBz9kQRmqi6JSH3nghlhAY7SUeIIM7B5/D2G8WjX0iepVg==", + "requires": { + "prop-types": "^15.7.2" + } + }, "@jest/console": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", diff --git a/package.json b/package.json index fa8f99007..76690c999 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,10 @@ "styled-components": "^5.1.1" }, "dependencies": { + "@fortawesome/fontawesome-svg-core": "^1.2.29", + "@fortawesome/free-regular-svg-icons": "^5.13.1", + "@fortawesome/free-solid-svg-icons": "^5.13.1", + "@fortawesome/react-fontawesome": "^0.1.11", "ramda": "^0.27.0", "react-infinite-scroller": "^1.2.4", "react-intl": "^4.7.6" diff --git a/src/Avatar/index.tsx b/src/Avatar/index.tsx new file mode 100644 index 000000000..4d79a4a06 --- /dev/null +++ b/src/Avatar/index.tsx @@ -0,0 +1,8 @@ +import React, { useState } from 'react'; +import { customizableComponent } from '../hoks/customization'; + +import { AvatarContainer } from './styles'; + +const Avatar = ({ className }) => ; + +export default customizableComponent('Avatar')(Avatar); diff --git a/src/Avatar/styles.ts b/src/Avatar/styles.ts new file mode 100644 index 000000000..733598bda --- /dev/null +++ b/src/Avatar/styles.ts @@ -0,0 +1,8 @@ +import styled from 'styled-components'; + +export const AvatarContainer = styled.div` + background: #e3e4e8; + border-radius: 20px; + height: 40px; + width: 40px; +`; diff --git a/src/ChatHome/ChatHome.stories.tsx b/src/ChatHome/ChatHome.stories.tsx index 2e14e4a3c..be00972b4 100644 --- a/src/ChatHome/ChatHome.stories.tsx +++ b/src/ChatHome/ChatHome.stories.tsx @@ -38,7 +38,11 @@ const CustomMessage = props => ( ); -export const ChatHomeWithoutCustomization = () => ; +export const ChatHomeWithoutCustomization = () => ( + + + +); export const WithGlobalProvider = () => ( ( ); export const ChatHomeWithCustomization = () => ( - + + + ); export const WithGlobalProviderOverride = () => ( @@ -72,7 +78,7 @@ const CustomMessageList = ({ messages }) => ( <> customMessageList {messages.map(message => ( - + ))} ); @@ -97,4 +103,8 @@ export const CustomWithReuseingOfOriginal = () => ( export const Example = () =>
Example
; -export const JustUiComponent = () => ; +export const JustUiComponent = () => ( + + + +); diff --git a/src/Message/IncomingMessage.tsx b/src/Message/IncomingMessage.tsx new file mode 100644 index 000000000..ec3fae7d0 --- /dev/null +++ b/src/Message/IncomingMessage.tsx @@ -0,0 +1,7 @@ +import React from 'react'; +import Message from './index'; +import { customizableComponent } from '../hoks/customization'; + +const IncomingMessage = props => ; + +export default customizableComponent('IncomingMessage')(IncomingMessage); diff --git a/src/Message/OutgoingMessage.tsx b/src/Message/OutgoingMessage.tsx new file mode 100644 index 000000000..5d9852fea --- /dev/null +++ b/src/Message/OutgoingMessage.tsx @@ -0,0 +1,5 @@ +import React from 'react'; +import Message from './index'; +import { customizableComponent } from '../hoks/customization'; + +export default customizableComponent('OutgoingMessage')(Message); diff --git a/src/Message/index.tsx b/src/Message/index.tsx index 8e4fcf4d3..fbb57c89b 100644 --- a/src/Message/index.tsx +++ b/src/Message/index.tsx @@ -1,7 +1,19 @@ import React, { useState } from 'react'; +import { FormattedTime } from 'react-intl'; import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; -import { MessageContainer } from './styles'; +import { + Avatar, + AvatarWrapper, + MessageWrapper, + MessageContainer, + MessageBody, + UserName, + BottomLine, + MessageDate, + MessageOptionsIcon, +} from './styles'; const MessageContent = ({ data, type }) => { switch (type) { @@ -17,12 +29,25 @@ const MessageContent = ({ data, type }) => { } }; -const Message = ({ data, type }) => { - console.log('data, type', data, type); +const Message = ({ message, message: { data, type, editedAt, user }, consequent, incoming }) => { + const { displayName } = user.model; + return ( - - - + + {incoming && {!consequent && }} + + {incoming && !consequent && {displayName}} + + + + + + + + + + + ); }; diff --git a/src/Message/styles.ts b/src/Message/styles.ts index 0ecf4cf2a..aef6aaaaa 100644 --- a/src/Message/styles.ts +++ b/src/Message/styles.ts @@ -1,7 +1,68 @@ import styled from 'styled-components'; +import UiKitAvatar from '../Avatar'; -export const MessageContainer = styled.div` - background-color: white; - padding: 16px; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faEllipsisV } from '@fortawesome/free-solid-svg-icons'; + +export const MessageOptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisV })` + opacity: 0.5; + font-size: 11px; + padding: 0 5px; + cursor: pointer; +`; + +export const Avatar = styled(UiKitAvatar)` + margin: 0 12px 0 auto; +`; + +export const MessageWrapper = styled.div` + display: flex; + max-width: 60%; + min-width: 60px; + ${({ incoming }) => !incoming && 'align-self: flex-end;'} +`; + +export const MessageContainer = styled.div``; + +export const AvatarWrapper = styled.div` + width: 72px; +`; + +export const UserName = styled.div` + color: #17181c; + font-size: 14px; + font-weight: 600; + margin-bottom: 4px; +`; + +export const MessageBody = styled.div` text-align: left; + padding: 8px; + margin-bottom: 8px; + + display: flex; + flex-direction: column; + ${({ incoming }) => + incoming + ? ` + background: #e3e4e8; + border-radius: 0px 6px 6px 6px; +` + : ` + background: #1054DE; + color: #fff; + border-radius: 6px 0px 6px 6px; +`} +`; + +export const MessageDate = styled.div` + font-size: 13px; + opacity: 0.5; + margin-left: auto; +`; + +export const BottomLine = styled.div` + margin-top: 3px; + display: flex; + align-items: center; `; diff --git a/src/MessageList/index.tsx b/src/MessageList/index.tsx index a12f0a1b3..7305c6fd0 100644 --- a/src/MessageList/index.tsx +++ b/src/MessageList/index.tsx @@ -1,7 +1,8 @@ import React, { useState, useEffect } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; import { MessageRepository } from 'eko-sdk'; -import Message from '../Message'; +import IncomingMessage from '../Message/IncomingMessage'; +import OutgoingMessage from '../Message/OutgoingMessage'; import { customizableComponent } from '../hoks/customization'; import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; @@ -26,9 +27,16 @@ const MessageList = ({ channelId }) => { isReverse > - {messages.map(message => ( - - ))} + {messages.map((message, i) => { + const nextMessage = messages[i + 1]; + const consequent = nextMessage && nextMessage.userId === message.userId; + const currentUserId = 'Web-Test'; // TODO + const outgoing = message.userId === currentUserId; + const MessageComponent = outgoing ? OutgoingMessage : IncomingMessage; + return ( + + ); + })}
diff --git a/src/UiKitProvider/GlobalStyle.ts b/src/UiKitProvider/GlobalStyle.ts new file mode 100644 index 000000000..e6e0d50c2 --- /dev/null +++ b/src/UiKitProvider/GlobalStyle.ts @@ -0,0 +1,9 @@ +import { createGlobalStyle } from 'styled-components'; + +const GlobalStyle = createGlobalStyle` +body { + font-family: -apple-system, BlinkMacSystemFont, sans-serif; +} +`; + +export default GlobalStyle; diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.tsx index 93c7a9ea5..8e7407b86 100644 --- a/src/UiKitProvider/index.tsx +++ b/src/UiKitProvider/index.tsx @@ -1,9 +1,16 @@ import React, { useContext, useMemo } from 'react'; import { ThemeProvider } from 'styled-components'; import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/customization'; +import { SdkProvider } from '../hoks/withSdk'; import { IntlProvider } from 'react-intl'; +import GlobalStyle from './GlobalStyle'; -const UiKitProvider = ({ customComponents, theme, children /* TODO localization */ }) => { +const UiKitProvider = ({ + customComponents = {}, + theme = {}, + client, + children /* TODO localization */, +}) => { const customComponentsMap = useContext(CustomComponentsContext); const memoizedCustomComponentsMap = useMemo( @@ -14,10 +21,22 @@ const UiKitProvider = ({ customComponents, theme, children /* TODO localization [customComponentsMap, customComponents], ); + const sdkInfo = useMemo( + () => ({ + client, + }), + [client], + ); + return ( - {children} + + + + {children} + + ); diff --git a/src/hoks/withSdk.tsx b/src/hoks/withSdk.tsx new file mode 100644 index 000000000..dcaa9a0a9 --- /dev/null +++ b/src/hoks/withSdk.tsx @@ -0,0 +1,13 @@ +import React, { useContext, useMemo } from 'react'; + +export const SdkContext = React.createContext({}); + +export const SdkProvider = SdkContext.Provider; + +const withSdk = Component => props => { + const { client, sdk } = useContext(SdkContext); + + return ; +}; + +export default withSdk; diff --git a/src/index.ts b/src/index.ts index 0404e477c..aba4568d5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,7 @@ import UiKitProvider from './UiKitProvider'; -import ChannelsPage from './ChannelsPage'; -import Channel from './Channel'; -import Message from './Message'; +import ChatHome from './ChatHome'; +import Chat from './Chat'; import MessageComposeBar from './MessageComposeBar'; import MessageList from './MessageList'; -export { UiKitProvider, ChannelsPage, Channel, Message, MessageComposeBar, MessageList }; +export { UiKitProvider, ChatHome, Chat, MessageComposeBar, MessageList }; From 2c0e5f0925baeb3d051c86e7daf540e0652f85a5 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 10 Jul 2020 09:29:13 +0700 Subject: [PATCH 012/740] adjust styles, add chat header --- src/Chat/index.tsx | 4 +++- src/ChatHeader/index.tsx | 15 ++++++++++++ src/ChatHeader/styles.ts | 26 ++++++++++++++++++++ src/ChatHome/index.tsx | 13 +++++++++- src/Message/styles.ts | 4 ++-- src/MessageComposeBar/index.tsx | 38 +++++++++++++++++++---------- src/MessageComposeBar/styles.ts | 41 ++++++++++++++++++++++++++++---- src/MessageList/styles.ts | 2 ++ src/RecentChat/styles.ts | 1 - src/UiKitProvider/GlobalStyle.ts | 3 +++ 10 files changed, 125 insertions(+), 22 deletions(-) create mode 100644 src/ChatHeader/index.tsx create mode 100644 src/ChatHeader/styles.ts diff --git a/src/Chat/index.tsx b/src/Chat/index.tsx index f1aafcb9a..82c246cb1 100644 --- a/src/Chat/index.tsx +++ b/src/Chat/index.tsx @@ -3,6 +3,7 @@ import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; +import ChatHeader from '../ChatHeader'; import MessageList from '../MessageList'; import MessageComposeBar from '../MessageComposeBar'; @@ -11,7 +12,7 @@ import { ChannelContainer } from './styles'; const channelRepo = new ChannelRepository(); const messageRepo = new MessageRepository(); -const Chat = ({ channelId }) => { +const Chat = ({ channelId, onChatDetailsClick }) => { useEffect(() => { channelRepo.joinChannel({ channelId, @@ -28,6 +29,7 @@ const Chat = ({ channelId }) => { return ( + diff --git a/src/ChatHeader/index.tsx b/src/ChatHeader/index.tsx new file mode 100644 index 000000000..c1a15f449 --- /dev/null +++ b/src/ChatHeader/index.tsx @@ -0,0 +1,15 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; + +import { customizableComponent } from '../hoks/customization'; + +import { Avatar, ChatHeaderContainer, DetailsIcon } from './styles'; + +const ChatHeader = ({ onSubmit, onChatDetailsClick }) => ( + + + + +); + +export default customizableComponent('ChatHeader')(ChatHeader); diff --git a/src/ChatHeader/styles.ts b/src/ChatHeader/styles.ts new file mode 100644 index 000000000..aae438c06 --- /dev/null +++ b/src/ChatHeader/styles.ts @@ -0,0 +1,26 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faBars } from '@fortawesome/free-solid-svg-icons'; +import UiKitAvatar from '../Avatar'; + +export const Avatar = styled(UiKitAvatar)` + margin-top: 24px; +`; + +export const DetailsIcon = styled(FaIcon).attrs({ icon: faBars })` + font-size: 16px; + cursor: pointer; + color: #17181c; + align-self: center; +`; + +export const ChatHeaderContainer = styled.div` + height: 76px; + flex-shrink: 0; + padding: 0 20px; + background: #ffffff; + border-top: 1px solid #e3e4e8; + border-bottom: 1px solid #e3e4e8; + display: flex; + justify-content: space-between; +`; diff --git a/src/ChatHome/index.tsx b/src/ChatHome/index.tsx index b56782599..cd4c3fa77 100644 --- a/src/ChatHome/index.tsx +++ b/src/ChatHome/index.tsx @@ -13,10 +13,21 @@ const channelRepo = new ChannelRepository(); const ChatHome = () => { const [currentChannelId, setCurrenChannelId] = useState(null); + const [showChatDetails, setShowChatDetails] = useState(true); + + const toggleShowChatDetails = () => setShowChatDetails(!showChatDetails); + return ( - {currentChannelId && } + {currentChannelId && ( + + )} + {showChatDetails && 'details'} ); }; diff --git a/src/Message/styles.ts b/src/Message/styles.ts index aef6aaaaa..91ebf038e 100644 --- a/src/Message/styles.ts +++ b/src/Message/styles.ts @@ -12,7 +12,7 @@ export const MessageOptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisV })` `; export const Avatar = styled(UiKitAvatar)` - margin: 0 12px 0 auto; + margin-right: auto; `; export const MessageWrapper = styled.div` @@ -25,7 +25,7 @@ export const MessageWrapper = styled.div` export const MessageContainer = styled.div``; export const AvatarWrapper = styled.div` - width: 72px; + width: 52px; `; export const UserName = styled.div` diff --git a/src/MessageComposeBar/index.tsx b/src/MessageComposeBar/index.tsx index 29e0cd001..702b4dffc 100644 --- a/src/MessageComposeBar/index.tsx +++ b/src/MessageComposeBar/index.tsx @@ -3,24 +3,36 @@ import InfiniteScroll from 'react-infinite-scroller'; import { customizableComponent } from '../hoks/customization'; -import { MessageComposeBarInput } from './styles'; +import { + MessageComposeBarContainer, + MessageComposeBarInput, + ImageMessageIcon, + FileMessageIcon, + SendMessageIcon, +} from './styles'; const MessageComposeBar = ({ onSubmit }) => { const [message, setMessage] = useState(''); + const sendMessage = () => { + if (message === '') return; + onSubmit(message); + setMessage(''); + }; + return ( - setMessage(e.target.value)} - onKeyPress={e => { - if (e.key === 'Enter' && message !== '') { - onSubmit(message); - setMessage(''); - } - }} - /> + + + + setMessage(e.target.value)} + onKeyPress={e => e.key === 'Enter' && sendMessage()} + /> + + ); }; diff --git a/src/MessageComposeBar/styles.ts b/src/MessageComposeBar/styles.ts index 675b03f8e..73eb7eac0 100644 --- a/src/MessageComposeBar/styles.ts +++ b/src/MessageComposeBar/styles.ts @@ -1,10 +1,43 @@ import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faImage } from '@fortawesome/free-regular-svg-icons'; +import { faPaperclip, faArrowCircleUp } from '@fortawesome/free-solid-svg-icons'; + +export const SendMessageIcon = styled(FaIcon).attrs({ icon: faArrowCircleUp })` + font-size: 28px; + cursor: pointer; + margin-left: 12px; + margin-right: 20px; + color: #0f86fe; +`; + +export const ImageMessageIcon = styled(FaIcon).attrs({ icon: faImage })` + font-size: 18px; + cursor: pointer; + margin-right: 20px; + color: #17181c; +`; + +export const FileMessageIcon = styled(FaIcon).attrs({ icon: faPaperclip })` + font-size: 18px; + margin-right: 12px; + cursor: pointer; + color: #17181c; +`; + +export const MessageComposeBarContainer = styled.div` + padding: 12px 16px 16px 16px; + background: #ffffff; + border-top: 1px solid #e3e4e8; + display: flex; + align-items: center; +`; export const MessageComposeBarInput = styled.input` - box-sizing: border-box; - height: 60px; - padding: 10px; + height: 34px; + padding: 6px; outline: none; - border: 1px solid #e6e6e6; + border: 1px solid #e3e4e8; border-radius: 4px; + flex-grow: 1; `; diff --git a/src/MessageList/styles.ts b/src/MessageList/styles.ts index fcc424a47..af8b5337a 100644 --- a/src/MessageList/styles.ts +++ b/src/MessageList/styles.ts @@ -6,9 +6,11 @@ export const InfiniteScrollContainer = styled.div` height: 400px; flex-grow: 1; overflow: auto; + background: #f7f7f8; `; export const MessageListContainer = styled.div` display: flex; flex-direction: column-reverse; + padding: 0 20px; `; diff --git a/src/RecentChat/styles.ts b/src/RecentChat/styles.ts index 0fd136344..0f72247f9 100644 --- a/src/RecentChat/styles.ts +++ b/src/RecentChat/styles.ts @@ -5,6 +5,5 @@ export const ChannelsListContainer = styled.div` border: 1px solid #e6e6e6; border-radius: 4px; width: 360px; - margin-right: 10px; overflow: auto; `; diff --git a/src/UiKitProvider/GlobalStyle.ts b/src/UiKitProvider/GlobalStyle.ts index e6e0d50c2..c001502b6 100644 --- a/src/UiKitProvider/GlobalStyle.ts +++ b/src/UiKitProvider/GlobalStyle.ts @@ -4,6 +4,9 @@ const GlobalStyle = createGlobalStyle` body { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } +input, div { + box-sizing: border-box; +} `; export default GlobalStyle; From 2e4bd01a948403ae6541d99476f6d39eb70b564a Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Tue, 14 Jul 2020 10:05:25 +0700 Subject: [PATCH 013/740] message flaggins and editing --- package-lock.json | 37 +++++---- package.json | 3 +- src/Message/Options.tsx | 133 ++++++++++++++++++++++++++++++++ src/Message/index.tsx | 14 ++-- src/Message/styles.ts | 68 ---------------- src/Message/styles.tsx | 128 ++++++++++++++++++++++++++++++ src/MessageComposeBar/styles.ts | 2 +- 7 files changed, 295 insertions(+), 90 deletions(-) create mode 100644 src/Message/Options.tsx delete mode 100644 src/Message/styles.ts create mode 100644 src/Message/styles.tsx diff --git a/package-lock.json b/package-lock.json index 152fe53b0..2cda354c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13641,21 +13641,6 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", "dev": true }, - "react-popper": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", - "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2", - "create-react-context": "^0.3.0", - "deep-equal": "^1.1.1", - "popper.js": "^1.14.4", - "prop-types": "^15.6.1", - "typed-styles": "^0.0.7", - "warning": "^4.0.2" - } - }, "react-popper-tooltip": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz", @@ -13664,6 +13649,23 @@ "requires": { "@babel/runtime": "^7.9.2", "react-popper": "^1.3.7" + }, + "dependencies": { + "react-popper": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", + "dev": true, + "requires": { + "@babel/runtime": "^7.1.2", + "create-react-context": "^0.3.0", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + } + } } }, "react-sizeme": { @@ -13701,6 +13703,11 @@ "prop-types": "^15.6.0" } }, + "react-tiny-popover": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-5.1.0.tgz", + "integrity": "sha512-VjBp6Q1f4cJ2xiuyU1rhFnrs+fdnWCYFSrKRN4DTGD2ovchOAGR1jbJ9vgV34TtvMPON+SqBBZFnahVsAGmrUQ==" + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", diff --git a/package.json b/package.json index 76690c999..d46c9e15f 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@fortawesome/react-fontawesome": "^0.1.11", "ramda": "^0.27.0", "react-infinite-scroller": "^1.2.4", - "react-intl": "^4.7.6" + "react-intl": "^4.7.6", + "react-tiny-popover": "^5.1.0" } } diff --git a/src/Message/Options.tsx b/src/Message/Options.tsx new file mode 100644 index 000000000..a137247a1 --- /dev/null +++ b/src/Message/Options.tsx @@ -0,0 +1,133 @@ +import React, { useState, useEffect } from 'react'; +import { + MessageRepository, + UserRepository, + MessageEditorRepository, + MessageFlagRepository, +} from 'eko-sdk'; + +import { + Popover, + MessageOptionsIcon, + Menu, + MenuItem, + SaveIcon, + DeleteIcon, + CloseIcon, + EditingInput, + EditingContainer, +} from './styles'; + +const Flagging = ({ message: { messageId } = {} }) => { + const [isFlaggedByMe, setIsFlaggedByMe] = useState(null); + const [flagRepo, setFlagRepo] = useState(null); + + useEffect( + () => { + if (!messageId) return; + const flagRepository = new MessageFlagRepository(messageId); + setFlagRepo(flagRepository); + flagRepository.isFlaggedByMe().then(setIsFlaggedByMe); + }, + [messageId], + ); + + const flagMessage = messageId => { + flagRepo.flag({ messageId }).then(() => { + setIsFlaggedByMe(true); + }); + }; + + const unflagMessage = messageId => { + flagRepo.unflag({ messageId }).then(() => { + setIsFlaggedByMe(false); + }); + }; + + if (isFlaggedByMe === null) return null; + + return isFlaggedByMe ? ( + unflag + ) : ( + flag + ); +}; + +const Options = ({ incoming, message }) => { + const [text, setText] = useState(''); + const [isEditing, setIsEditing] = useState(false); + const edit = e => { + e.stopPropagation(); + setIsEditing(true); + }; + + const stopEdit = e => { + e.stopPropagation(); + setIsEditing(false); + }; + + const [isOpen, setIsOpen] = useState(false); + const open = () => { + setText(message.data.text); + setIsOpen(true); + setIsEditing(false); + }; + const close = () => { + setIsOpen(false); + }; + + const save = () => { + const editor = new MessageEditorRepository(message.messageId); + editor + .editText(text) + .catch(() => { + message.error('There was an error processing your request'); + }) + .then(close); + }; + + const deleteMessage = () => { + const editor = new MessageEditorRepository(message.messageId); + editor.delete().then(close); + }; + + const menu = ( + + {!incoming && edit} + {incoming && } + delete + + ); + + const editing = ( + + setText(e.target.value)} + onKeyDown={e => { + if (e.key === 'Enter') save(); + if (e.key === 'Escape') close(); + }} + /> + + + + ); + + return ( + +
+ +
+
+ ); +}; + +export default Options; diff --git a/src/Message/index.tsx b/src/Message/index.tsx index fbb57c89b..7c9bf04f2 100644 --- a/src/Message/index.tsx +++ b/src/Message/index.tsx @@ -2,6 +2,7 @@ import React, { useState } from 'react'; import { FormattedTime } from 'react-intl'; import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; +import Options from './Options'; import { Avatar, @@ -12,10 +13,13 @@ import { UserName, BottomLine, MessageDate, - MessageOptionsIcon, + SystemMessageContainer, } from './styles'; -const MessageContent = ({ data, type }) => { +const DeletedMessage = () => deleted; + +const MessageContent = ({ message: { data, type, isDeleted } }) => { + if (isDeleted) return ; switch (type) { case 'text': return data.text || null; @@ -25,7 +29,7 @@ const MessageContent = ({ data, type }) => { case 'image': case 'file': default: - return 'Unsupported message format'; + return Unsupported message format; } }; @@ -38,12 +42,12 @@ const Message = ({ message, message: { data, type, editedAt, user }, consequent, {incoming && !consequent && {displayName}} - + - + {!message.isDeleted && } diff --git a/src/Message/styles.ts b/src/Message/styles.ts deleted file mode 100644 index 91ebf038e..000000000 --- a/src/Message/styles.ts +++ /dev/null @@ -1,68 +0,0 @@ -import styled from 'styled-components'; -import UiKitAvatar from '../Avatar'; - -import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faEllipsisV } from '@fortawesome/free-solid-svg-icons'; - -export const MessageOptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisV })` - opacity: 0.5; - font-size: 11px; - padding: 0 5px; - cursor: pointer; -`; - -export const Avatar = styled(UiKitAvatar)` - margin-right: auto; -`; - -export const MessageWrapper = styled.div` - display: flex; - max-width: 60%; - min-width: 60px; - ${({ incoming }) => !incoming && 'align-self: flex-end;'} -`; - -export const MessageContainer = styled.div``; - -export const AvatarWrapper = styled.div` - width: 52px; -`; - -export const UserName = styled.div` - color: #17181c; - font-size: 14px; - font-weight: 600; - margin-bottom: 4px; -`; - -export const MessageBody = styled.div` - text-align: left; - padding: 8px; - margin-bottom: 8px; - - display: flex; - flex-direction: column; - ${({ incoming }) => - incoming - ? ` - background: #e3e4e8; - border-radius: 0px 6px 6px 6px; -` - : ` - background: #1054DE; - color: #fff; - border-radius: 6px 0px 6px 6px; -`} -`; - -export const MessageDate = styled.div` - font-size: 13px; - opacity: 0.5; - margin-left: auto; -`; - -export const BottomLine = styled.div` - margin-top: 3px; - display: flex; - align-items: center; -`; diff --git a/src/Message/styles.tsx b/src/Message/styles.tsx new file mode 100644 index 000000000..623add0d9 --- /dev/null +++ b/src/Message/styles.tsx @@ -0,0 +1,128 @@ +import React from 'react'; +import styled from 'styled-components'; +import ReactTinyPopover from 'react-tiny-popover'; +import UiKitAvatar from '../Avatar'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faEllipsisV, faTimes } from '@fortawesome/free-solid-svg-icons'; +import { faSave, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; + +export const SystemMessageContainer = styled.span` + opacity: 0.5; +`; + +export const EditingContainer = styled.div` + display: flex; + align-items: center; +`; +export const EditingInput = styled.input` + height: 34px; + padding: 6px; + margin: 5px; + outline: none; + border: 1px solid #e3e4e8; + border-radius: 4px; +`; + +export const SaveIcon = styled(FaIcon).attrs({ icon: faSave })` + opacity: 0.7; + padding: 0 10px; + cursor: pointer; +`; + +export const DeleteIcon = styled(FaIcon).attrs({ icon: faTrashAlt })` + opacity: 0.7; + padding: 0 10px; + cursor: pointer; +`; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + opacity: 0.7; + padding: 0 10px; + cursor: pointer; +`; + +export const MessageOptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisV })` + opacity: 0.5; + font-size: 11px; + padding: 0 5px; + cursor: pointer; +`; + +const ReactPopover = props => ; + +// TODO move in common components +export const Popover = styled(ReactPopover)` + background: white; + min-width: 200px; + padding: 4px 0; + box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.2); + border-radius: 4px; +`; + +export const Menu = styled.div``; + +export const MenuItem = styled.div` + padding: 8px 12px; + cursor: pointer; + &:hover { + background: #f2f2f4; + } +`; + +export const Avatar = styled(UiKitAvatar)` + margin-right: auto; +`; + +export const MessageWrapper = styled.div` + display: flex; + max-width: 60%; + min-width: 60px; + ${({ incoming }) => !incoming && 'align-self: flex-end;'} +`; + +export const MessageContainer = styled.div``; + +export const AvatarWrapper = styled.div` + width: 52px; + flex-shrink: 0; +`; + +export const UserName = styled.div` + color: #17181c; + font-size: 14px; + font-weight: 600; + margin-bottom: 4px; +`; + +export const MessageBody = styled.div` + word-break: break-word; + padding: 8px; + margin-bottom: 8px; + + display: flex; + flex-direction: column; + ${({ incoming }) => + incoming + ? ` + background: #e3e4e8; + border-radius: 0px 6px 6px 6px; +` + : ` + background: #1054DE; + color: #fff; + border-radius: 6px 0px 6px 6px; +`} +`; + +export const MessageDate = styled.div` + font-size: 13px; + opacity: 0.5; + margin-left: auto; +`; + +export const BottomLine = styled.div` + margin-top: 3px; + display: flex; + align-items: center; +`; diff --git a/src/MessageComposeBar/styles.ts b/src/MessageComposeBar/styles.ts index 73eb7eac0..3721299a8 100644 --- a/src/MessageComposeBar/styles.ts +++ b/src/MessageComposeBar/styles.ts @@ -7,7 +7,7 @@ export const SendMessageIcon = styled(FaIcon).attrs({ icon: faArrowCircleUp })` font-size: 28px; cursor: pointer; margin-left: 12px; - margin-right: 20px; + margin-right: 8px; color: #0f86fe; `; From a4994a814aefdeda7fb0b91857d2541b446bfc5a Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:12:17 +0700 Subject: [PATCH 014/740] pack app with pkg as application for easy build testing --- .gitignore | 6 +- package-lock.json | 612 ++++++++++++++++++++++++++---------- package.json | 20 +- packaging/package-lock.json | 69 ++++ packaging/package.json | 20 ++ packaging/ui-kit-web.js | 22 ++ 6 files changed, 581 insertions(+), 168 deletions(-) create mode 100644 packaging/package-lock.json create mode 100644 packaging/package.json create mode 100644 packaging/ui-kit-web.js diff --git a/.gitignore b/.gitignore index 6e603d36e..d07b92bd0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ node_modules/ build/ -storybook-static/ +packaging/storybook-static/ +packaging/ui-kit-web-linux +packaging/ui-kit-web-macos +packaging/ui-kit-web-win.exe + .DS_Store diff --git a/package-lock.json b/package-lock.json index 2cda354c0..4704e4225 100644 --- a/package-lock.json +++ b/package-lock.json @@ -332,8 +332,7 @@ "@babel/parser": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", - "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", - "dev": true + "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.10.3", @@ -1127,7 +1126,6 @@ "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -1400,6 +1398,38 @@ "@fortawesome/fontawesome-common-types": "^0.2.29" } }, + "@fortawesome/pro-duotone-svg-icons": { + "version": "5.13.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/pro-duotone-svg-icons/-/5.13.1/pro-duotone-svg-icons-5.13.1.tgz", + "integrity": "sha512-CrQRD0BVBrsnrmRKdw8kcPVvryfJxLZk7AnOOjtF2oRe47Qs+H+wM+qYo9IzJNhj7r/0Od5V+cSAKTuDKnhAmg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, + "@fortawesome/pro-light-svg-icons": { + "version": "5.13.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/5.13.1/pro-light-svg-icons-5.13.1.tgz", + "integrity": "sha512-OV5Cxan/vIZFyPofJ3RQBfSQXf7hnbE97HXAqLWhkmwm990GJBfEjsan4XwS/206T+ZKlY/MiXPiHtBPoQL87g==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, + "@fortawesome/pro-regular-svg-icons": { + "version": "5.13.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/pro-regular-svg-icons/-/5.13.1/pro-regular-svg-icons-5.13.1.tgz", + "integrity": "sha512-qQszWqNQCaQC1j787Q/Wz1xpm6ENz9N3G7dSKdIy2rFx14iYt+sQ8F+6zXslShtS2N5JpKpHIMCjWn2sGtE/Ow==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, + "@fortawesome/pro-solid-svg-icons": { + "version": "5.13.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/pro-solid-svg-icons/-/5.13.1/pro-solid-svg-icons-5.13.1.tgz", + "integrity": "sha512-h3ePsrYGbOvfhbZ44zBIutYzBKV9Fsy5r01xjU4znOAhIh1QTxJbGUjgF1PpI1ALVrrUJKfxMrnHNdfjXqRe6w==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.29" + } + }, "@fortawesome/react-fontawesome": { "version": "0.1.11", "resolved": "https://npm.fontawesome.com/@fortawesome/react-fontawesome/-/0.1.11/react-fontawesome-0.1.11.tgz", @@ -1724,7 +1754,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" @@ -1733,8 +1762,7 @@ "@nodelib/fs.stat": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" } } }, @@ -1748,7 +1776,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" @@ -2724,8 +2751,7 @@ "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, "@types/estree": { "version": "0.0.39", @@ -3331,7 +3357,6 @@ "version": "6.12.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3342,8 +3367,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" } } }, @@ -3630,7 +3654,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -3684,8 +3707,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -3726,8 +3748,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", @@ -3750,17 +3771,20 @@ "postcss-value-parser": "^4.1.0" } }, + "autosize": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.2.tgz", + "integrity": "sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA==" + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", - "dev": true + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" }, "babel-code-frame": { "version": "6.26.0", @@ -4096,9 +4120,9 @@ } }, "babel-plugin-styled-components": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", - "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.11.0.tgz", + "integrity": "sha512-X+3II2OfDD7AKEKzJfqJBhR48FfVHsImTETtYvZtJrGiBQmRP8UQKOCQL+hOhvHP0l4Fuwqk2bMCXAd3YADpwA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", @@ -4514,7 +4538,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -4955,6 +4978,11 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -5129,8 +5157,7 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "2.4.2", @@ -5563,7 +5590,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -5592,6 +5618,11 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, + "computed-style": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", + "integrity": "sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ=" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5743,8 +5774,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "corejs-upgrade-webpack-plugin": { "version": "2.2.0", @@ -6311,7 +6341,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -6378,8 +6407,7 @@ "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=" }, "deep-object-diff": { "version": "1.1.0", @@ -6446,8 +6474,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegate": { "version": "3.2.0", @@ -6740,7 +6767,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -6973,7 +6999,6 @@ "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", @@ -6986,7 +7011,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true } } @@ -7004,8 +7028,7 @@ "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==" }, "esrecurse": { "version": "4.2.1", @@ -7019,8 +7042,7 @@ "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "estree-walker": { "version": "1.0.1", @@ -7031,8 +7053,7 @@ "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", @@ -7148,6 +7169,11 @@ } } }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, "expect": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", @@ -7252,8 +7278,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", @@ -7370,8 +7395,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "2.0.1", @@ -7440,14 +7464,12 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastparse": { "version": "1.1.2", @@ -7459,7 +7481,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -7569,10 +7590,9 @@ "optional": true }, "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", - "dev": true + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", + "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" }, "fill-range": { "version": "4.0.0", @@ -7742,8 +7762,7 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "fork-ts-checker-webpack-plugin": { "version": "1.5.0", @@ -7887,7 +7906,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -7925,7 +7943,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -7935,7 +7952,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -7946,7 +7962,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -8099,7 +8114,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -8158,7 +8172,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -8261,8 +8274,7 @@ "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "growly": { "version": "1.3.0", @@ -8289,14 +8301,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -8614,7 +8624,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -8627,6 +8636,11 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "human-readable-numbers": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/human-readable-numbers/-/human-readable-numbers-0.9.5.tgz", + "integrity": "sha512-VC1uYLm7FR+4UkLaQdXPLodz7xTVLBte3X6iMCYK/uPJywoHyEZfR40+kCN4YqYd+FNCPJAJNYv2CSMvAprgsQ==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -8781,8 +8795,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -8940,6 +8953,15 @@ "@formatjs/intl-numberformat": "^4.2.11" } }, + "into-stream": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", + "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", + "requires": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -9132,8 +9154,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { "version": "1.1.0", @@ -9166,7 +9187,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -9307,8 +9327,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", @@ -9331,8 +9350,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=" }, "isexe": { "version": "2.0.0", @@ -9349,8 +9367,7 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-lib-coverage": { "version": "2.0.5", @@ -10330,8 +10347,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsdom": { "version": "11.12.0", @@ -10390,20 +10406,17 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "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-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { "version": "3.3.3", @@ -10433,7 +10446,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -10514,18 +10526,33 @@ "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" } }, + "line-height": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", + "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=", + "requires": { + "computed-style": "~0.1.3" + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "requires": { + "uc.micro": "^1.0.1" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -10595,10 +10622,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "lodash.camelcase": { "version": "4.3.0", @@ -10776,6 +10802,11 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "memoize-one": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", + "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" + }, "memoizerific": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", @@ -10968,8 +10999,7 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -10987,7 +11017,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -10997,7 +11026,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -11006,7 +11034,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -11014,14 +11041,12 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -11055,14 +11080,12 @@ "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, "requires": { "mime-db": "1.44.0" } @@ -11124,8 +11147,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.3", @@ -11247,7 +11269,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -11272,6 +11293,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "multistream": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", + "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.5" + } + }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -11624,8 +11654,7 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", @@ -11828,7 +11857,6 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -11862,8 +11890,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", @@ -11890,6 +11917,11 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==" + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -12085,8 +12117,7 @@ "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==" }, "path-to-regexp": { "version": "0.1.7", @@ -12097,8 +12128,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pbkdf2": { "version": "3.1.1", @@ -12116,14 +12146,12 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "4.0.1", @@ -12155,6 +12183,126 @@ "node-modules-regexp": "^1.0.0" } }, + "pkg": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-4.4.9.tgz", + "integrity": "sha512-FK4GqHtcCY2PPPVaKViU0NyRzpo6gCS7tPKN5b7AkElqjAOCH1bsRKgohEnxThr6DWfTGByGqba2YHGR/BqbmA==", + "requires": { + "@babel/parser": "^7.9.4", + "@babel/runtime": "^7.9.2", + "chalk": "^3.0.0", + "escodegen": "^1.14.1", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "into-stream": "^5.1.1", + "minimist": "^1.2.5", + "multistream": "^2.1.1", + "pkg-fetch": "^2.6.9", + "progress": "^2.0.3", + "resolve": "^1.15.1", + "stream-meter": "^1.0.4" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -12175,6 +12323,75 @@ } } }, + "pkg-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-2.6.9.tgz", + "integrity": "sha512-EnVR8LRILXBvaNP+wJOSY02c3+qDDfyEyR+aqAHLhcc9PBnbxFT9UZ1+If49goPQzQPn26TzF//fc6KXZ0aXEg==", + "requires": { + "@babel/runtime": "^7.9.2", + "byline": "^5.0.0", + "chalk": "^3.0.0", + "expand-template": "^2.0.3", + "fs-extra": "^8.1.0", + "minimist": "^1.2.5", + "progress": "^2.0.3", + "request": "^2.88.0", + "request-progress": "^3.0.0", + "semver": "^6.3.0", + "unique-temp-dir": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", @@ -12907,8 +13124,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", @@ -12976,8 +13192,12 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -13069,8 +13289,7 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "public-encrypt": { "version": "4.0.3", @@ -13130,8 +13349,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "q": { "version": "1.5.1", @@ -13249,6 +13467,16 @@ "prop-types": "^15.6.2" } }, + "react-autosize-textarea": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz", + "integrity": "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==", + "requires": { + "autosize": "^4.0.2", + "line-height": "^0.3.1", + "prop-types": "^15.5.6" + } + }, "react-clientside-effect": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz", @@ -13366,6 +13594,12 @@ "escape-string-regexp": "^1.0.5" } }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -13641,6 +13875,15 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", "dev": true }, + "react-linkify": { + "version": "1.0.0-alpha", + "resolved": "https://registry.npmjs.org/react-linkify/-/react-linkify-1.0.0-alpha.tgz", + "integrity": "sha512-7gcIUvJkAXXttt1fmBK9cwn+1jTa4hbKLGCZ9J1U6EOkyb2/+LKL1Z28d9rtDLMnpvImlNlLPdTPooorl5cpmg==", + "requires": { + "linkify-it": "^2.0.3", + "tlds": "^1.199.0" + } + }, "react-popper-tooltip": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz", @@ -13708,6 +13951,24 @@ "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-5.1.0.tgz", "integrity": "sha512-VjBp6Q1f4cJ2xiuyU1rhFnrs+fdnWCYFSrKRN4DTGD2ovchOAGR1jbJ9vgV34TtvMPON+SqBBZFnahVsAGmrUQ==" }, + "react-truncate-markup": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", + "integrity": "sha512-zB/VNeIDrHWccFvD/W/zhNMBLfRkXLqklL6naczQSMN+kIAD2sSYgddBzzvlcNyHRzCmjpj8SOiEkcdKd/XUMg==", + "requires": { + "line-height": "0.3.1", + "memoize-one": "^5.1.1", + "prop-types": "^15.6.0", + "resize-observer-polyfill": "1.5.0" + }, + "dependencies": { + "resize-observer-polyfill": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.0.tgz", + "integrity": "sha512-M2AelyJDVR/oLnToJLtuDJRBBWUGUvvGigj1411hXhAdyFWqMaqHp7TixW3FpiLuVaikIcR1QL+zqoJoZlOgpg==" + } + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -13761,7 +14022,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13885,8 +14145,7 @@ "regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, "regenerator-transform": { "version": "0.14.4", @@ -14005,7 +14264,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -14032,11 +14290,18 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" } } }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "requires": { + "throttleit": "^1.0.0" + } + }, "request-promise-core": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", @@ -14085,7 +14350,6 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -14138,8 +14402,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rgb-regex": { "version": "1.0.1", @@ -14435,8 +14698,7 @@ "run-parallel": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" }, "run-queue": { "version": "1.0.3", @@ -14459,8 +14721,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==" }, "safe-identifier": { "version": "0.4.1", @@ -14480,8 +14741,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sane": { "version": "4.1.0", @@ -15271,7 +15531,6 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -15386,6 +15645,14 @@ "xtend": "^4.0.0" } }, + "stream-meter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", + "integrity": "sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=", + "requires": { + "readable-stream": "^2.1.4" + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -15500,7 +15767,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -15865,6 +16131,11 @@ "integrity": "sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA==", "dev": true }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=" + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -15903,6 +16174,11 @@ "dev": true, "optional": true }, + "tlds": { + "version": "1.207.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.207.0.tgz", + "integrity": "sha512-k7d7Q1LqjtAvhtEOs3yN14EabsNO8ZCoY6RESSJDB9lst3bTx3as/m1UuAeCKzYxiyhR1qq72ZPhpSf+qlqiwg==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -15988,7 +16264,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -16081,7 +16356,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -16089,14 +16363,12 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "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" } @@ -16135,6 +16407,16 @@ "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "uid2": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" + }, "unfetch": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz", @@ -16211,11 +16493,20 @@ "imurmurhash": "^0.1.4" } }, + "unique-temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", + "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", + "requires": { + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", + "uid2": "0.0.3" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "unpipe": { "version": "1.0.0", @@ -16285,7 +16576,6 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -16396,8 +16686,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", @@ -16424,8 +16713,7 @@ "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "validate-npm-package-license": { "version": "3.0.4", @@ -16453,7 +16741,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -16940,8 +17227,7 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "worker-farm": { "version": "1.7.0", diff --git a/package.json b/package.json index d46c9e15f..cfdbefba6 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "test": "jest", "test:watch": "jest --watch", "storybook": "start-storybook -p 6006", - "storybook:export": "build-storybook", + "storybook:export": "build-storybook --output-dir ./packaging/storybook-static", + "pack": "npm run storybook:export && cd packaging && npm run pack", "generate": "node ./util/create-component", "prepublishOnly": "npm run build" }, @@ -45,18 +46,29 @@ "rollup-plugin-postcss": "^3.1.2", "rollup-plugin-typescript2": "^0.27.0", "sass-loader": "^8.0.0", + "styled-components": "^5.1.1", "ts-jest": "^24.2.0", - "typescript": "^3.7.2", - "styled-components": "^5.1.1" + "typescript": "^3.7.2" }, "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.29", "@fortawesome/free-regular-svg-icons": "^5.13.1", "@fortawesome/free-solid-svg-icons": "^5.13.1", + "@fortawesome/pro-duotone-svg-icons": "^5.13.1", + "@fortawesome/pro-light-svg-icons": "^5.13.1", + "@fortawesome/pro-regular-svg-icons": "^5.13.1", + "@fortawesome/pro-solid-svg-icons": "^5.13.1", "@fortawesome/react-fontawesome": "^0.1.11", + "filesize": "^6.1.0", + "human-readable-numbers": "^0.9.5", + "lodash": "^4.17.19", + "pkg": "^4.4.9", "ramda": "^0.27.0", + "react-autosize-textarea": "^7.1.0", "react-infinite-scroller": "^1.2.4", "react-intl": "^4.7.6", - "react-tiny-popover": "^5.1.0" + "react-linkify": "^1.0.0-alpha", + "react-tiny-popover": "^5.1.0", + "react-truncate-markup": "^5.0.0" } } diff --git a/packaging/package-lock.json b/packaging/package-lock.json new file mode 100644 index 000000000..f7b988c14 --- /dev/null +++ b/packaging/package-lock.json @@ -0,0 +1,69 @@ +{ + "name": "storybook-static", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "node-static": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz", + "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==", + "requires": { + "colors": ">=0.6.0", + "mime": "^1.2.9", + "optimist": ">=0.3.4" + } + }, + "open": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz", + "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + } + } +} diff --git a/packaging/package.json b/packaging/package.json new file mode 100644 index 000000000..efced3d9e --- /dev/null +++ b/packaging/package.json @@ -0,0 +1,20 @@ +{ + "name": "ui-kit-web", + "version": "1.0.0", + "description": "", + "main": "ui-kit-web.js", + "bin": "ui-kit-web.js", + "scripts": { + "pack": "pkg .", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "pkg": { + "assets": "./storybook-static/**/*" + }, + "author": "", + "license": "ISC", + "dependencies": { + "node-static": "^0.7.11", + "open": "^7.1.0" + } +} diff --git a/packaging/ui-kit-web.js b/packaging/ui-kit-web.js new file mode 100644 index 000000000..091da2cda --- /dev/null +++ b/packaging/ui-kit-web.js @@ -0,0 +1,22 @@ +const path = require('path'); +const static = require('node-static'); +const open = require('open'); + +const PORT = '8888'; + +const staticPath = path.join(__dirname, './storybook-static'); +const file = new static.Server(staticPath); + +require('http') + .createServer(function(request, response) { + request + .addListener('end', function() { + file.serve(request, response); + }) + .resume(); + }) + .listen(PORT); + +console.log(`storybook start on port ${PORT}`); + +open(`http://localhost:${PORT}`); From 17e947e4fb75f2ab395b483788c0d554abce2d4a Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:41:36 +0700 Subject: [PATCH 015/740] Add support of font awesome pro --- .npmrc | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..e915ec705 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +@fortawesome:registry=https://npm.fontawesome.com/ +//npm.fontawesome.com/:_authToken=09F17CD8-3C33-416B-994C-AA63E9C1A90E \ No newline at end of file From ca1d9d3eefc89dfac4a3c6fc97bce143f79a5052 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:49:20 +0700 Subject: [PATCH 016/740] Move provider in storybook decorator, initialize client inside provider --- .storybook/UiKitDecorator.js | 13 ++++++++++ .storybook/config.js | 5 ++++ src/UiKitProvider/GlobalStyle.ts | 3 ++- src/UiKitProvider/index.tsx | 44 ++++++++++++++++++++++++-------- src/hoks/withSdk.tsx | 12 ++++----- 5 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 .storybook/UiKitDecorator.js create mode 100644 .storybook/config.js diff --git a/.storybook/UiKitDecorator.js b/.storybook/UiKitDecorator.js new file mode 100644 index 000000000..27263198b --- /dev/null +++ b/.storybook/UiKitDecorator.js @@ -0,0 +1,13 @@ +import React, { useState, useEffect } from 'react'; +import UiKitProvider from '../src/UiKitProvider'; + +const UiKitDecorator = storyFn => ( + + {storyFn()} + +); + +export default UiKitDecorator; diff --git a/.storybook/config.js b/.storybook/config.js new file mode 100644 index 000000000..4a8c85eb7 --- /dev/null +++ b/.storybook/config.js @@ -0,0 +1,5 @@ +import { configure, addDecorator } from '@storybook/react'; + +import UiKitDecorator from './UiKitDecorator'; + +addDecorator(UiKitDecorator); diff --git a/src/UiKitProvider/GlobalStyle.ts b/src/UiKitProvider/GlobalStyle.ts index c001502b6..188458ae3 100644 --- a/src/UiKitProvider/GlobalStyle.ts +++ b/src/UiKitProvider/GlobalStyle.ts @@ -1,8 +1,9 @@ import { createGlobalStyle } from 'styled-components'; const GlobalStyle = createGlobalStyle` +@import url("https://rsms.me/inter/inter.css"); body { - font-family: -apple-system, BlinkMacSystemFont, sans-serif; + font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; } input, div { box-sizing: border-box; diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.tsx index 8e7407b86..ae45e0925 100644 --- a/src/UiKitProvider/index.tsx +++ b/src/UiKitProvider/index.tsx @@ -1,14 +1,25 @@ import React, { useContext, useMemo } from 'react'; +import { merge } from 'lodash'; +import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; + import { ThemeProvider } from 'styled-components'; import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/customization'; -import { SdkProvider } from '../hoks/withSdk'; +import { SDKProvider } from '../hoks/withSDK'; import { IntlProvider } from 'react-intl'; import GlobalStyle from './GlobalStyle'; +import GlobalTheme from './GlobalTheme'; + +_changeSDKDefaultConfig({ + ws: { endpoint: 'https://api.staging.ekomedia.technology' }, + http: { endpoint: 'https://api.staging.ekomedia.technology' }, +}); + +let client; const UiKitProvider = ({ customComponents = {}, theme = {}, - client, + clientOptions, children /* TODO localization */, }) => { const customComponentsMap = useContext(CustomComponentsContext); @@ -21,22 +32,35 @@ const UiKitProvider = ({ [customComponentsMap, customComponents], ); - const sdkInfo = useMemo( - () => ({ - client, - }), - [client], + const SDKInfo = useMemo( + () => { + // TODO fix + // initialize only one client + if (!client) { + client = new EkoClient(clientOptions); + // Register Session with EkoClient with userId and display name + client.registerSession({ + userId: 'Web-Test', + displayName: 'Web-Test', + }); + } + + return { + client, + }; + }, + [clientOptions], ); return ( - - + + {children} - + ); diff --git a/src/hoks/withSdk.tsx b/src/hoks/withSdk.tsx index dcaa9a0a9..72d02766d 100644 --- a/src/hoks/withSdk.tsx +++ b/src/hoks/withSdk.tsx @@ -1,13 +1,13 @@ import React, { useContext, useMemo } from 'react'; -export const SdkContext = React.createContext({}); +export const SDKContext = React.createContext({}); -export const SdkProvider = SdkContext.Provider; +export const SDKProvider = SDKContext.Provider; -const withSdk = Component => props => { - const { client, sdk } = useContext(SdkContext); +const withSDK = Component => props => { + const { client, SDK } = useContext(SDKContext); - return ; + return ; }; -export default withSdk; +export default withSDK; From 0bbcf41ce3174b32a2282ceed29abd209fe4e366 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:50:34 +0700 Subject: [PATCH 017/740] Fix storybook static export styles --- .storybook/main.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/.storybook/main.js b/.storybook/main.js index d33eedce5..c2e41bdb4 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,25 +1,33 @@ -const path = require("path"); +const path = require('path'); +const webpack = require('webpack'); module.exports = { - stories: ["../src/**/*.stories.tsx"], + stories: ['../src/**/*.stories.tsx'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ addons: [], - webpackFinal: async (config) => { + webpackFinal: async config => { config.module.rules.push({ test: /\.scss$/, - use: ["style-loader", "css-loader", "sass-loader"], - include: path.resolve(__dirname, "../") + use: ['style-loader', 'css-loader', 'sass-loader'], + include: path.resolve(__dirname, '../'), }); config.module.rules.push({ test: /\.(ts|tsx)$/, - loader: require.resolve("babel-loader"), + loader: require.resolve('babel-loader'), options: { - presets: [["react-app", { flow: false, typescript: true }]] - } + presets: [['react-app', { flow: false, typescript: true }]], + }, }); - config.resolve.extensions.push(".ts", ".tsx"); + config.resolve.extensions.push('.ts', '.tsx'); + + config.plugins.push( + // fix static storybook styling + new webpack.DefinePlugin({ + SC_DISABLE_SPEEDY: true, + }), + ); return config; - } + }, }; From 0d01131974138d817b23e92815860c43fa825230 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:51:39 +0700 Subject: [PATCH 018/740] Use data from model in case if already exist --- src/hooks/useLiveObject.ts | 1 + src/hooks/usePaginatedLiveObject.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hooks/useLiveObject.ts b/src/hooks/useLiveObject.ts index 1246fe675..f7d6972aa 100644 --- a/src/hooks/useLiveObject.ts +++ b/src/hooks/useLiveObject.ts @@ -5,6 +5,7 @@ const useLiveObject = (createLiveObject, defaultData) => { const [data, setData] = useState(defaultData); useEffect(() => { const liveObject = createLiveObject(); + liveObject.model && setData(liveObject.model); liveObject.on('dataUpdated', setData); return () => liveObject.dispose(); }, []); diff --git a/src/hooks/usePaginatedLiveObject.ts b/src/hooks/usePaginatedLiveObject.ts index 9e9d6126b..be0643d41 100644 --- a/src/hooks/usePaginatedLiveObject.ts +++ b/src/hooks/usePaginatedLiveObject.ts @@ -12,7 +12,7 @@ const usePaginatedLiveObject = (createLiveObject, defaultData) => { useEffect(() => { const liveObject = createLiveObject(); - + liveObject.model && setData(liveObject.model); liveObject.on('dataUpdated', setData); liveObject.on('loadingStatusChanged', ({ newValue }) => { From 5dece5cc83ebbed186667a2284bb5fa422ae11b8 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:52:41 +0700 Subject: [PATCH 019/740] add avatar size customization --- src/Avatar/index.tsx | 12 +++++++++++- src/Avatar/styles.ts | 9 ++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Avatar/index.tsx b/src/Avatar/index.tsx index 4d79a4a06..357a28d23 100644 --- a/src/Avatar/index.tsx +++ b/src/Avatar/index.tsx @@ -3,6 +3,16 @@ import { customizableComponent } from '../hoks/customization'; import { AvatarContainer } from './styles'; -const Avatar = ({ className }) => ; +const STANDARD_SIZE = 40; + +const SIZES = { + big: 64, + small: 32, + tiny: 28, +}; + +const Avatar = ({ className, size }) => ( + +); export default customizableComponent('Avatar')(Avatar); diff --git a/src/Avatar/styles.ts b/src/Avatar/styles.ts index 733598bda..7dcc4952d 100644 --- a/src/Avatar/styles.ts +++ b/src/Avatar/styles.ts @@ -2,7 +2,10 @@ import styled from 'styled-components'; export const AvatarContainer = styled.div` background: #e3e4e8; - border-radius: 20px; - height: 40px; - width: 40px; + border-radius: 50%; + ${({ size }) => ` +height: ${size}px; +width: ${size}px; +`} + flex-shrink: 0; `; From fd01a7fe48aff5b7a857c1c79209ce7670885d76 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:58:14 +0700 Subject: [PATCH 020/740] Update chat ui --- src/ChatDetails/index.tsx | 40 +++++++++ src/ChatDetails/styles.ts | 47 ++++++++++ src/ChatHeader/index.tsx | 35 ++++++-- src/ChatHeader/styles.ts | 24 ++++- src/ChatHome/ChatHome.stories.tsx | 89 +------------------ src/ChatHome/index.tsx | 14 ++- src/ChatHome/styles.ts | 2 +- src/ChatItem/index.tsx | 10 ++- src/ChatItem/styles.ts | 24 ++++- src/RecentChat/CreateNewChat.tsx | 65 ++++++++++++++ src/RecentChat/index.tsx | 13 ++- src/RecentChat/styles.ts | 9 -- src/RecentChat/styles.tsx | 52 +++++++++++ src/UiKitProvider/GlobalTheme.ts | 64 +++++++++++++ .../Button/Button.stories.tsx | 12 +++ src/commonComponents/Button/index.tsx | 5 ++ src/commonComponents/Button/styles.ts | 51 +++++++++++ src/commonComponents/Popover/index.tsx | 3 + src/commonComponents/Popover/styles.tsx | 13 +++ src/commonComponents/SideMenuItem/index.tsx | 11 +++ src/commonComponents/SideMenuItem/styles.ts | 29 ++++++ src/commonComponents/Tab/Tab.stories.tsx | 16 ++++ src/commonComponents/Tab/index.tsx | 3 + src/commonComponents/Tab/styles.ts | 27 ++++++ 24 files changed, 537 insertions(+), 121 deletions(-) create mode 100644 src/ChatDetails/index.tsx create mode 100644 src/ChatDetails/styles.ts create mode 100644 src/RecentChat/CreateNewChat.tsx delete mode 100644 src/RecentChat/styles.ts create mode 100644 src/RecentChat/styles.tsx create mode 100644 src/UiKitProvider/GlobalTheme.ts create mode 100644 src/commonComponents/Button/Button.stories.tsx create mode 100644 src/commonComponents/Button/index.tsx create mode 100644 src/commonComponents/Button/styles.ts create mode 100644 src/commonComponents/Popover/index.tsx create mode 100644 src/commonComponents/Popover/styles.tsx create mode 100644 src/commonComponents/SideMenuItem/index.tsx create mode 100644 src/commonComponents/SideMenuItem/styles.ts create mode 100644 src/commonComponents/Tab/Tab.stories.tsx create mode 100644 src/commonComponents/Tab/index.tsx create mode 100644 src/commonComponents/Tab/styles.ts diff --git a/src/ChatDetails/index.tsx b/src/ChatDetails/index.tsx new file mode 100644 index 000000000..dc3f76026 --- /dev/null +++ b/src/ChatDetails/index.tsx @@ -0,0 +1,40 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; +import { ChannelRepository } from 'eko-sdk'; + +import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; + +import { + Avatar, + ChatDetailsContainer, + ChatDetailsHeader, + CloseIcon, + Channel, + ChannelInfo, + CommunityName, + ChannelName, +} from './styles'; + +const channelRepo = new ChannelRepository(); + +const ChatDetails = ({ channelId, onClose }) => { + const channel = useLiveObject(() => channelRepo.channelForId(channelId), {}); + return ( + + + Chat Detail + + + + + + Community Name + {channel.displayName || channel.channelId} + + + + ); +}; + +export default customizableComponent('ChatDetails')(ChatDetails); diff --git a/src/ChatDetails/styles.ts b/src/ChatDetails/styles.ts new file mode 100644 index 000000000..3dba2826d --- /dev/null +++ b/src/ChatDetails/styles.ts @@ -0,0 +1,47 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faTimes } from '@fortawesome/pro-regular-svg-icons'; +import UiKitAvatar from '../Avatar'; + +export const Avatar = styled(UiKitAvatar)``; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + font-size: 19px; + cursor: pointer; + color: #17181c; + margin-left: auto; +`; + +export const ChatDetailsHeader = styled.div` + display: flex; + color: #17181c; + font-weight: 600; + font-size: 16px; +`; + +export const ChatDetailsContainer = styled.div` + width: 280px; + flex-shrink: 0; + border: solid 1px #e3e4e8; + padding: 24px 20px; +`; + +export const Channel = styled.div` + margin-top: 24px; + display: flex; +`; + +export const ChannelInfo = styled.div` + margin-left: 12px; +`; + +export const ChannelName = styled.div` + font-weight: 600; + font-size: 14px; + color: #000000; +`; + +export const CommunityName = styled.div` + font-size: 12px; + // color: #999999; +`; diff --git a/src/ChatHeader/index.tsx b/src/ChatHeader/index.tsx index c1a15f449..ac181551b 100644 --- a/src/ChatHeader/index.tsx +++ b/src/ChatHeader/index.tsx @@ -1,15 +1,36 @@ import React, { useState, useEffect } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; +import { ChannelRepository } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; -import { Avatar, ChatHeaderContainer, DetailsIcon } from './styles'; +import { + Avatar, + ChatHeaderContainer, + DetailsIcon, + Channel, + ChannelInfo, + ChannelName, + MemberCount, +} from './styles'; -const ChatHeader = ({ onSubmit, onChatDetailsClick }) => ( - - - - -); +const channelRepo = new ChannelRepository(); +const ChatHeader = ({ channelId, onChatDetailsClick }) => { + const channel = useLiveObject(() => channelRepo.channelForId(channelId), {}); + + return ( + + + + + {channel.displayName || channel.channelId} + {channel.memberCount} members + + + + + ); +}; export default customizableComponent('ChatHeader')(ChatHeader); diff --git a/src/ChatHeader/styles.ts b/src/ChatHeader/styles.ts index aae438c06..7882469a1 100644 --- a/src/ChatHeader/styles.ts +++ b/src/ChatHeader/styles.ts @@ -3,9 +3,7 @@ import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faBars } from '@fortawesome/free-solid-svg-icons'; import UiKitAvatar from '../Avatar'; -export const Avatar = styled(UiKitAvatar)` - margin-top: 24px; -`; +export const Avatar = styled(UiKitAvatar)``; export const DetailsIcon = styled(FaIcon).attrs({ icon: faBars })` font-size: 16px; @@ -24,3 +22,23 @@ export const ChatHeaderContainer = styled.div` display: flex; justify-content: space-between; `; + +export const Channel = styled.div` + margin-top: 24px; + display: flex; +`; + +export const ChannelInfo = styled.div` + margin-left: 8px; +`; + +export const ChannelName = styled.div` + font-weight: 600; + font-size: 14px; + color: #000000; +`; + +export const MemberCount = styled.div` + font-size: 12px; + color: #999999; +`; diff --git a/src/ChatHome/ChatHome.stories.tsx b/src/ChatHome/ChatHome.stories.tsx index be00972b4..399f2083e 100644 --- a/src/ChatHome/ChatHome.stories.tsx +++ b/src/ChatHome/ChatHome.stories.tsx @@ -1,6 +1,4 @@ import React, { useEffect } from 'react'; -import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; - import ChatHome from './index'; import Chat from '../Chat'; import Message from '../Message'; @@ -11,24 +9,6 @@ export default { title: 'ChatHome', }; -_changeSDKDefaultConfig({ - ws: { endpoint: 'https://api.staging.ekomedia.technology' }, - http: { endpoint: 'https://api.staging.ekomedia.technology' }, -}); - -// TODO do only once -try { - // Connect to EkoClient with apiKey - const client = new EkoClient({ apiKey: 'b3bee858328ef4344a308e4a5a091688d05fdee2be353a2b' }); - // Register Session with EkoClient with userId and display name - client.registerSession({ - userId: 'Web-Test', - displayName: 'Web-Test', - }); -} catch (e) { - console.log(e); -} - // const CustomMessage = ({ data, type }) =>
custom: {data.text}
; const CustomMessage = props => ( @@ -38,73 +18,8 @@ const CustomMessage = props => ( ); -export const ChatHomeWithoutCustomization = () => ( - - - -); - -export const WithGlobalProvider = () => ( - - - -); +export const ChatHomeWithoutCustomization = () => ; export const ChatHomeWithCustomization = () => ( - - - -); - -export const WithGlobalProviderOverride = () => ( - - - -); - -const CustomMessageList = ({ messages }) => ( - <> - customMessageList - {messages.map(message => ( - - ))} - -); -export const MultyLayer = () => ( - - - -); - -const CustomMessageWithMessageInside = props => ( -
-
Custom Message, wrapping existing Message component
- -
-); - -export const CustomWithReuseingOfOriginal = () => ( - - - -); - -export const Example = () =>
Example
; - -export const JustUiComponent = () => ( - - - + ); diff --git a/src/ChatHome/index.tsx b/src/ChatHome/index.tsx index cd4c3fa77..debbb0ce5 100644 --- a/src/ChatHome/index.tsx +++ b/src/ChatHome/index.tsx @@ -5,6 +5,7 @@ import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; import RecentChat from '../RecentChat'; import Chat from '../Chat'; +import ChatDetails from '../ChatDetails'; import { ChatHomeContainer } from './styles'; @@ -13,9 +14,10 @@ const channelRepo = new ChannelRepository(); const ChatHome = () => { const [currentChannelId, setCurrenChannelId] = useState(null); - const [showChatDetails, setShowChatDetails] = useState(true); + const [showChatDetails, setShowChatDetails] = useState(false); const toggleShowChatDetails = () => setShowChatDetails(!showChatDetails); + const hideChatDetails = () => setShowChatDetails(false); return ( @@ -27,7 +29,15 @@ const ChatHome = () => { onChatDetailsClick={toggleShowChatDetails} /> )} - {showChatDetails && 'details'} + <> + {showChatDetails && currentChannelId && ( + + )} + ); }; diff --git a/src/ChatHome/styles.ts b/src/ChatHome/styles.ts index bca227938..fb33e4e66 100644 --- a/src/ChatHome/styles.ts +++ b/src/ChatHome/styles.ts @@ -2,6 +2,6 @@ import styled from 'styled-components'; export const ChatHomeContainer = styled.div` display: flex; - height: 400px; + height: 90vh; overflow: hidden; `; diff --git a/src/ChatItem/index.tsx b/src/ChatItem/index.tsx index 234d37883..6c67baa94 100644 --- a/src/ChatItem/index.tsx +++ b/src/ChatItem/index.tsx @@ -2,11 +2,13 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import { ChatItemContainer } from './styles'; +import { Avatar, ChatItemContainer, UnreadCount } from './styles'; -const ChatItem = ({ channelId, selected, onSelect }) => ( - onSelect(channelId)} selected={selected}> - {channelId} +const ChatItem = ({ channel, selected, onSelect }) => ( + onSelect(channel.channelId)} selected={selected}> + + {channel.channelId} + {!!channel.unreadCount && {channel.unreadCount}} ); diff --git a/src/ChatItem/styles.ts b/src/ChatItem/styles.ts index 3c8651a67..e6febd02f 100644 --- a/src/ChatItem/styles.ts +++ b/src/ChatItem/styles.ts @@ -1,10 +1,26 @@ import styled from 'styled-components'; +import UiKitAvatar from '../Avatar'; export const ChatItemContainer = styled.div` background-color: white; - border-bottom: 1px solid #e6e6e6; - height: 40px; - padding: 10px; - ${({ selected }) => selected && 'border-left: 8px solid rgba(41, 203, 114, 0.74);'} + display: flex; + align-items: center; + padding: 0; + ${({ selected }) => selected && 'border-left: 1px solid rgba(41, 203, 114, 0.74);'} cursor: pointer; + margin-top: 20px; +`; + +export const Avatar = styled(UiKitAvatar)` + margin-right: 8px; +`; + +export const UnreadCount = styled.div` + padding: 0 5px; + height: 20px; + color: #fff; + font-size: 13px; + margin-left: auto; + background: #f9563a; + border-radius: 20px; `; diff --git a/src/RecentChat/CreateNewChat.tsx b/src/RecentChat/CreateNewChat.tsx new file mode 100644 index 000000000..73b248bf2 --- /dev/null +++ b/src/RecentChat/CreateNewChat.tsx @@ -0,0 +1,65 @@ +import React, { useState, useEffect } from 'react'; +import { ChannelRepository, EkoChannelType } from 'eko-sdk'; +import Popover from '../commonComponents/Popover'; + +import { + CreateIcon, + DeleteIcon, + CloseIcon, + CreateNewChatIcon, + CreationInput, + CreationContainer, + CreateNewChatContainer, +} from './styles'; + +const channelRepo = new ChannelRepository(); + +const CreateNewChat = () => { + const [text, setText] = useState(''); + + const [isOpen, setIsOpen] = useState(false); + const open = () => { + setText(''); + setIsOpen(true); + }; + + const close = () => setIsOpen(false); + + const create = () => { + if (!text) return; + const createChat = channelRepo.createChannel({ + channelId: text, + type: EkoChannelType.Standard, + userIds: [], + }); + createChat.once('dataUpdated', model => { + close(); + }); + }; + + const creation = ( + + setText(e.target.value)} + onKeyDown={e => { + if (e.key === 'Enter') create(); + if (e.key === 'Escape') close(); + }} + /> + + + + ); + + return ( + + + + + + ); +}; + +export default CreateNewChat; diff --git a/src/RecentChat/index.tsx b/src/RecentChat/index.tsx index b3c95a903..a56f9bae7 100644 --- a/src/RecentChat/index.tsx +++ b/src/RecentChat/index.tsx @@ -4,8 +4,9 @@ import { ChannelRepository } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; import ChatItem from '../ChatItem'; +import CreateNewChat from './CreateNewChat'; -import { ChannelsListContainer } from './styles'; +import { RecentChatListContainer, RecentChatListHeader } from './styles'; const channelRepo = new ChannelRepository(); @@ -13,16 +14,20 @@ const RecentChat = ({ onChannelClick, selectedChannelId }) => { const channels = useLiveObject(() => channelRepo.allChannels(), []); return ( - + + + Chats + + {channels.map(channel => ( ))} - + ); }; diff --git a/src/RecentChat/styles.ts b/src/RecentChat/styles.ts deleted file mode 100644 index 0f72247f9..000000000 --- a/src/RecentChat/styles.ts +++ /dev/null @@ -1,9 +0,0 @@ -import styled from 'styled-components'; - -export const ChannelsListContainer = styled.div` - background-color: white; - border: 1px solid #e6e6e6; - border-radius: 4px; - width: 360px; - overflow: auto; -`; diff --git a/src/RecentChat/styles.tsx b/src/RecentChat/styles.tsx new file mode 100644 index 000000000..5356cd721 --- /dev/null +++ b/src/RecentChat/styles.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faCommentAltPlus, faCheck, faTimes } from '@fortawesome/pro-regular-svg-icons'; + +export const CreateIcon = styled(FaIcon).attrs({ icon: faCheck })` + opacity: 0.7; + padding: 0 10px; + cursor: pointer; +`; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + opacity: 0.7; + padding: 0 10px; + cursor: pointer; +`; + +export const CreateNewChatIcon = styled(FaIcon).attrs({ icon: faCommentAltPlus })` + font-size: 20px; + cursor: pointer; +`; + +export const RecentChatListHeader = styled.div` + display: flex; +`; + +export const RecentChatListContainer = styled.div` + background-color: white; + border: 1px solid #e6e6e6; + width: 280px; + overflow: auto; + padding: 28px 16px; + flex-shrink: 0; +`; + +export const CreationContainer = styled.div` + display: flex; + align-items: center; +`; +export const CreationInput = styled.input` + height: 34px; + padding: 6px; + margin: 5px; + outline: none; + border: 1px solid #e3e4e8; + border-radius: 4px; +`; + +export const CreateNewChatContainer = styled.span` + margin-left: auto; +`; diff --git a/src/UiKitProvider/GlobalTheme.ts b/src/UiKitProvider/GlobalTheme.ts new file mode 100644 index 000000000..3257f4503 --- /dev/null +++ b/src/UiKitProvider/GlobalTheme.ts @@ -0,0 +1,64 @@ +const Theme = { + color: { + primary1: '#1054DE', + primary2: '#4A82F2', + primary3: '#A0BDF8', + primary4: '#D9E5FC', + primary5: '#F1F5FE', + secondary1: '#FFD400', + secondary2: '#FFE047', + secondary3: '#FFEA85', + secondary4: '#FFF6CC', + secondary5: '#FFFCF0', + tertiary1: '#FF305A', + tertiary2: '#FF476D', + tertiary3: '#FF6685', + tertiary4: '#FFCCD6', + tertiary5: '#FFF0F3', + neutral1: '#17181C', + neutral2: '#818698', + neutral3: '#ABAEBA', + neutral4: '#E3E4E8', + neutral5: '#F7F7F8', + }, + typography: { + headline: ` +font-family: Inter; +font-style: normal; +font-weight: bold; +font-size: 20px; +`, + title: ` +font-family: Inter; +font-style: normal; +font-weight: 600; +font-size: 16px; +`, + bodyBold: ` +font-family: Inter; +font-style: normal; +font-weight: 600; +font-size: 14px; +`, + body: ` +font-family: Inter; +font-style: normal; +font-weight: normal; +font-size: 14px; +`, + captionBold: ` +font-family: Inter; +font-style: normal; +font-weight: 600; +font-size: 12px; +`, + caption: ` +font-family: Inter; +font-style: normal; +font-weight: normal; +font-size: 12px; +`, + }, +}; + +export default Theme; diff --git a/src/commonComponents/Button/Button.stories.tsx b/src/commonComponents/Button/Button.stories.tsx new file mode 100644 index 000000000..865141984 --- /dev/null +++ b/src/commonComponents/Button/Button.stories.tsx @@ -0,0 +1,12 @@ +import React, { useEffect } from 'react'; +import Button, { PrimaryButton, SecondaryButton } from './index'; + +export default { + title: 'Button', +}; + +export const Default = () => ; + +export const Primary = () => text; + +export const Secondary = () => text; diff --git a/src/commonComponents/Button/index.tsx b/src/commonComponents/Button/index.tsx new file mode 100644 index 000000000..212ea86fa --- /dev/null +++ b/src/commonComponents/Button/index.tsx @@ -0,0 +1,5 @@ +import { DefaultButton, PrimaryButton, SecondaryButton } from './styles'; + +export { PrimaryButton, SecondaryButton }; + +export default DefaultButton; diff --git a/src/commonComponents/Button/styles.ts b/src/commonComponents/Button/styles.ts new file mode 100644 index 000000000..3d9b9a700 --- /dev/null +++ b/src/commonComponents/Button/styles.ts @@ -0,0 +1,51 @@ +import styled from 'styled-components'; + +const commonButtonStyles = ({ theme }) => ` +text-align: center; +border-radius: 4px; +outline: none; +padding: 10px 12px; +cursor: pointer; +transition: background-color 0.3s; +${theme.typography.bodyBold} +`; + +export const DefaultButton = styled.button` + ${commonButtonStyles} + background-color: transparent; + border: 1px solid #e3e4e8; + color: #17181c; + &:hover { + color: #818698; + } + &:disabled { + color: #abaeba; + } +`; + +export const PrimaryButton = styled.button` + ${commonButtonStyles} + border: none; + background-color: #1054de; + color: white; + &:hover { + background-color: #4a82f2; + } + &:disabled { + background-color: #a0bdf8; + } +`; + +export const SecondaryButton = styled.button` + ${commonButtonStyles} + color: #818698; + background-color: transparent; + border: none; + &:hover { + background-color: #f2f2f4; + } + &:disabled { + color: #abaeba; + } + ${({ active, theme }) => active && `color: ${theme.color.primary1};`} +`; diff --git a/src/commonComponents/Popover/index.tsx b/src/commonComponents/Popover/index.tsx new file mode 100644 index 000000000..193f62b69 --- /dev/null +++ b/src/commonComponents/Popover/index.tsx @@ -0,0 +1,3 @@ +import { Popover } from './styles'; + +export default Popover; diff --git a/src/commonComponents/Popover/styles.tsx b/src/commonComponents/Popover/styles.tsx new file mode 100644 index 000000000..691c91725 --- /dev/null +++ b/src/commonComponents/Popover/styles.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import styled from 'styled-components'; +import ReactTinyPopover from 'react-tiny-popover'; + +const ReactPopover = props => ; + +export const Popover = styled(ReactPopover)` + background: white; + min-width: 200px; + padding: 4px 0; + box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.2); + border-radius: 4px; +`; diff --git a/src/commonComponents/SideMenuItem/index.tsx b/src/commonComponents/SideMenuItem/index.tsx new file mode 100644 index 000000000..d2e1e4cb3 --- /dev/null +++ b/src/commonComponents/SideMenuItem/index.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import { IconWrapper, SideMenuItemContainer } from './styles'; + +const SideMenuItem = ({ icon, children, ...props }) => ( + + {icon && {icon}} + {children} + +); + +export default SideMenuItem; diff --git a/src/commonComponents/SideMenuItem/styles.ts b/src/commonComponents/SideMenuItem/styles.ts new file mode 100644 index 000000000..595f54a5a --- /dev/null +++ b/src/commonComponents/SideMenuItem/styles.ts @@ -0,0 +1,29 @@ +import styled from 'styled-components'; +import { SecondaryButton } from '../Button'; + +export const SideMenuItemContainer = styled(SecondaryButton)` + display: flex; + align-items: center; + width: 100%; + padding: 5px 8px; + margin-bottom: 6px; + color: #17181c; + &:hover { + background-color: #ebecef; + } + &:disabled { + color: #abaeba; + } + ${({ active, theme }) => active && `color: ${theme.color.primary1};`} +`; + +export const IconWrapper = styled.div` + width: 40px; + height: 40px; + background: #ebecef; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 8px; +`; diff --git a/src/commonComponents/Tab/Tab.stories.tsx b/src/commonComponents/Tab/Tab.stories.tsx new file mode 100644 index 000000000..2fd9d4cc5 --- /dev/null +++ b/src/commonComponents/Tab/Tab.stories.tsx @@ -0,0 +1,16 @@ +import React, { useEffect } from 'react'; +import Tab from './index'; + +export default { + title: 'Tab', +}; + +export const Default = () => Tab text; + +export const Active = () => Tab text; + +export const Tabs = () => ( +
+ Active Tab Just Tab +
+); diff --git a/src/commonComponents/Tab/index.tsx b/src/commonComponents/Tab/index.tsx new file mode 100644 index 000000000..b5998849b --- /dev/null +++ b/src/commonComponents/Tab/index.tsx @@ -0,0 +1,3 @@ +import { Tab } from './styles'; + +export default Tab; diff --git a/src/commonComponents/Tab/styles.ts b/src/commonComponents/Tab/styles.ts new file mode 100644 index 000000000..e26348bfb --- /dev/null +++ b/src/commonComponents/Tab/styles.ts @@ -0,0 +1,27 @@ +import styled from 'styled-components'; + +export const Tab = styled.span` + display: inline-block; + ${({ theme }) => theme.typography.bodyBold} + cursor: pointer; + text-align: center; + padding: 12px; + margin-right: 8px; + ${({ active }) => + active + ? ` +border-bottom: 2px solid #1054DE; +color: #1054DE; +` + : ` + color: #abaeba; + &:hover { + color: #818698; + } + &:disabled { + color: #abaeba; + } +`} + + transition: border-bottom 0.3s; +`; From 43e2851b3fb2e6e87f7772096cd962b1704fd68b Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:59:23 +0700 Subject: [PATCH 021/740] update chat messages ui --- src/Message/Options.tsx | 3 ++- src/Message/index.tsx | 3 ++- src/Message/styles.tsx | 16 ++-------------- src/MessageComposeBar/styles.ts | 4 ++-- src/MessageList/index.tsx | 8 +++++--- 5 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/Message/Options.tsx b/src/Message/Options.tsx index a137247a1..3621ff9b6 100644 --- a/src/Message/Options.tsx +++ b/src/Message/Options.tsx @@ -6,8 +6,9 @@ import { MessageFlagRepository, } from 'eko-sdk'; +import Popover from '../commonComponents/Popover'; + import { - Popover, MessageOptionsIcon, Menu, MenuItem, diff --git a/src/Message/index.tsx b/src/Message/index.tsx index 7c9bf04f2..e68ff1f71 100644 --- a/src/Message/index.tsx +++ b/src/Message/index.tsx @@ -1,5 +1,6 @@ import React, { useState } from 'react'; import { FormattedTime } from 'react-intl'; +import Linkify from 'react-linkify'; import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; import Options from './Options'; @@ -22,7 +23,7 @@ const MessageContent = ({ message: { data, type, isDeleted } }) => { if (isDeleted) return ; switch (type) { case 'text': - return data.text || null; + return {data.text}; case 'custom': return JSON.stringify(data); diff --git a/src/Message/styles.tsx b/src/Message/styles.tsx index 623add0d9..c1dfd1b0b 100644 --- a/src/Message/styles.tsx +++ b/src/Message/styles.tsx @@ -1,11 +1,10 @@ import React from 'react'; import styled from 'styled-components'; -import ReactTinyPopover from 'react-tiny-popover'; import UiKitAvatar from '../Avatar'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faEllipsisV, faTimes } from '@fortawesome/free-solid-svg-icons'; -import { faSave, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; +import { faEllipsisV } from '@fortawesome/pro-solid-svg-icons'; +import { faSave, faTrashAlt, faTimes } from '@fortawesome/pro-regular-svg-icons'; export const SystemMessageContainer = styled.span` opacity: 0.5; @@ -49,17 +48,6 @@ export const MessageOptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisV })` cursor: pointer; `; -const ReactPopover = props => ; - -// TODO move in common components -export const Popover = styled(ReactPopover)` - background: white; - min-width: 200px; - padding: 4px 0; - box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.2); - border-radius: 4px; -`; - export const Menu = styled.div``; export const MenuItem = styled.div` diff --git a/src/MessageComposeBar/styles.ts b/src/MessageComposeBar/styles.ts index 3721299a8..45f2c42c4 100644 --- a/src/MessageComposeBar/styles.ts +++ b/src/MessageComposeBar/styles.ts @@ -1,7 +1,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faImage } from '@fortawesome/free-regular-svg-icons'; -import { faPaperclip, faArrowCircleUp } from '@fortawesome/free-solid-svg-icons'; +import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; +import { faArrowCircleUp } from '@fortawesome/pro-solid-svg-icons'; export const SendMessageIcon = styled(FaIcon).attrs({ icon: faArrowCircleUp })` font-size: 28px; diff --git a/src/MessageList/index.tsx b/src/MessageList/index.tsx index 7305c6fd0..a1977d4a7 100644 --- a/src/MessageList/index.tsx +++ b/src/MessageList/index.tsx @@ -5,18 +5,21 @@ import IncomingMessage from '../Message/IncomingMessage'; import OutgoingMessage from '../Message/OutgoingMessage'; import { customizableComponent } from '../hoks/customization'; +import withSDK from '../hoks/withSDK'; import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; const messageRepo = new MessageRepository(); -const MessageList = ({ channelId }) => { +const MessageList = ({ client, channelId }) => { const [messages, hasMore, loadMore] = usePaginatedLiveObject( () => messageRepo.messagesForChannel({ channelId }), [], ); + const { currentUserId } = client; + return ( { {messages.map((message, i) => { const nextMessage = messages[i + 1]; const consequent = nextMessage && nextMessage.userId === message.userId; - const currentUserId = 'Web-Test'; // TODO const outgoing = message.userId === currentUserId; const MessageComponent = outgoing ? OutgoingMessage : IncomingMessage; return ( @@ -43,4 +45,4 @@ const MessageList = ({ channelId }) => { ); }; -export default customizableComponent('MessageList')(MessageList); +export default withSDK(customizableComponent('MessageList')(MessageList)); From a0fd22bb33d4d1142e4e45ee3b21c69f77dc73a2 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 14:59:52 +0700 Subject: [PATCH 022/740] Community page ui --- src/Community/Community.stories.tsx | 11 +++++ src/Community/index.tsx | 66 +++++++++++++++++++++++++++++ src/Community/styles.ts | 38 +++++++++++++++++ src/CommunityAbout/index.tsx | 19 +++++++++ src/CommunityAbout/styles.tsx | 39 +++++++++++++++++ src/CommunityHeader/index.tsx | 63 +++++++++++++++++++++++++++ src/CommunityHeader/styles.ts | 53 +++++++++++++++++++++++ src/CommunityItem/index.tsx | 22 ++++++++++ src/CommunityItem/styles.ts | 28 ++++++++++++ src/SideMenu/index.tsx | 52 +++++++++++++++++++++++ src/SideMenu/styles.tsx | 39 +++++++++++++++++ 11 files changed, 430 insertions(+) create mode 100644 src/Community/Community.stories.tsx create mode 100644 src/Community/index.tsx create mode 100644 src/Community/styles.ts create mode 100644 src/CommunityAbout/index.tsx create mode 100644 src/CommunityAbout/styles.tsx create mode 100644 src/CommunityHeader/index.tsx create mode 100644 src/CommunityHeader/styles.ts create mode 100644 src/CommunityItem/index.tsx create mode 100644 src/CommunityItem/styles.ts create mode 100644 src/SideMenu/index.tsx create mode 100644 src/SideMenu/styles.tsx diff --git a/src/Community/Community.stories.tsx b/src/Community/Community.stories.tsx new file mode 100644 index 000000000..8596be49c --- /dev/null +++ b/src/Community/Community.stories.tsx @@ -0,0 +1,11 @@ +import React, { useEffect } from 'react'; +import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; + +import Community from './index'; +import UiKitProvider from '../UiKitProvider'; + +export default { + title: 'Community', +}; + +export const CommunityHome = () => ; diff --git a/src/Community/index.tsx b/src/Community/index.tsx new file mode 100644 index 000000000..7bf5217d8 --- /dev/null +++ b/src/Community/index.tsx @@ -0,0 +1,66 @@ +import React, { useState, useEffect } from 'react'; +import { ChannelRepository, FeedRepository, PostRepository, EkoPostDataType } from 'eko-sdk'; + +import { customizableComponent } from '../hoks/customization'; +import withSDK from '../hoks/withSDK'; +import useLiveObject from '../hooks/useLiveObject'; +import SideMenu from '../SideMenu'; +import CommunityAbout from '../CommunityAbout'; + +import { + CommunityContainer, + CommunityContent, + CommunityFeed, + PostCompose, + Post, + CommunityWrapper, + CommunityHeader, +} from './styles'; + +const feedRepo = new FeedRepository(); +const postRepo = new PostRepository(); + +const Community = ({ client }) => { + // const feed = useLiveObject(() => feedRepo.getUserFeed(client.currentUserId), []); + + // const textPostCreator = postRepo.createPost(EkoPostDataType.TextPost); + // textPostCreator.targetUser(client.currentUserId); + // textPostCreator.text('foobar'); + + // textPostCreator.post().then(res => console.log(res)); + const [posts, setPosts] = useState([ + { + id: 1, + author: { name: 'John' }, + text: + 'text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n', + }, + { + id: 2, + author: { name: 'John' }, + text: 'text text text', + }, + ]); + + const addPost = newPost => setPosts([newPost, ...posts]); + + return ( + + + + + + + + {posts.map(post => ( + + ))} + + + + + + ); +}; + +export default withSDK(customizableComponent('Community')(Community)); diff --git a/src/Community/styles.ts b/src/Community/styles.ts new file mode 100644 index 000000000..ded22063f --- /dev/null +++ b/src/Community/styles.ts @@ -0,0 +1,38 @@ +import styled from 'styled-components'; +import UiPost from '../Post'; +import UiPostCompose from '../PostCompose'; +import UiCommunityHeader from '../CommunityHeader'; + +export const Post = styled(UiPost)` + margin-bottom: 12px; +`; + +export const CommunityHeader = styled(UiCommunityHeader)` + margin: 24px 0 12px; +`; + +export const PostCompose = styled(UiPostCompose)` + margin-bottom: 14px; +`; + +export const CommunityContainer = styled.div` + display: flex; + background: #f7f7f8; + height: 90vh; + overflow: hidden; +`; + +export const CommunityContent = styled.div` + overflow-y: auto; + display: flex; +`; + +export const CommunityFeed = styled.div` + margin-right: 36px; +`; + +export const CommunityWrapper = styled.div` + width: 100%; + padding: 0 78px; + overflow: scroll; +`; diff --git a/src/CommunityAbout/index.tsx b/src/CommunityAbout/index.tsx new file mode 100644 index 000000000..f23f57872 --- /dev/null +++ b/src/CommunityAbout/index.tsx @@ -0,0 +1,19 @@ +import React, { useState, useEffect } from 'react'; +import { customizableComponent } from '../hoks/customization'; + +import { Container, Header, Footer, Content, RightIcon } from './styles'; + +const CommunityAbout = ({ onChannelClick, selectedChannelId }) => ( + +
About
+ + Take your place in the magical universe of Harry Poter. Everyone's welcome and feel free to + join! + +
+ View all +
+
+); + +export default customizableComponent('CommunityAbout')(CommunityAbout); diff --git a/src/CommunityAbout/styles.tsx b/src/CommunityAbout/styles.tsx new file mode 100644 index 000000000..775487e39 --- /dev/null +++ b/src/CommunityAbout/styles.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import styled from 'styled-components'; +import { SecondaryButton } from '../commonComponents/Button'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faChevronRight } from '@fortawesome/pro-regular-svg-icons'; + +import UiSideMenuItem from '../commonComponents/SideMenuItem'; + +export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` + font-size: 16px; +`; + +export const Container = styled.div` + border: 1px solid #edeef2; + border-radius: 4px; + background: #fff; + max-width: 330px; + flex-shrink: 1; + align-self: flex-start; +`; + +export const Content = styled.div` + border-top: 1px solid #e3e4e8; + border-bottom: 1px solid #e3e4e8; + overflow-y: auto; + padding: 16px; +`; + +export const Header = styled.div` + ${({ theme }) => theme.typography.title} + padding: 16px; +`; + +export const Footer = styled(SecondaryButton)` + width: 100%; + padding: 14px; + border-radius: 0; +`; diff --git a/src/CommunityHeader/index.tsx b/src/CommunityHeader/index.tsx new file mode 100644 index 000000000..0779f8504 --- /dev/null +++ b/src/CommunityHeader/index.tsx @@ -0,0 +1,63 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import { customizableComponent } from '../hoks/customization'; +import Button from '../commonComponents/Button'; +import Tab from '../commonComponents/Tab'; + +import { + Avatar, + Buttons, + CommunityHeaderContainer, + CommunityWrapper, + CommunityName, + Tabs, + Count, + ChatIcon, + PenIcon, + PrivateIcon, +} from './styles'; + +const EditProfileButton = () => ( + +); + +const ChatButton = () => ( + +); + +const CommunityHeader = ({ className }) => { + const private = true; + const name = 'Harry Poter Fans'; + const postsCount = 345; + const membersCount = 4501; + + return ( + + + +
+ {private && } + {name} +
+ {toHumanString(postsCount)} posts{' '} + {toHumanString(membersCount)} members +
+
+ + + +
+ + Timeline + About + +
+ ); +}; + +export default customizableComponent('CommunityHeader')(CommunityHeader); diff --git a/src/CommunityHeader/styles.ts b/src/CommunityHeader/styles.ts new file mode 100644 index 000000000..9057209ce --- /dev/null +++ b/src/CommunityHeader/styles.ts @@ -0,0 +1,53 @@ +import styled from 'styled-components'; +import UiAvatar from '../Avatar'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faCommentsAlt, faPen, faLockAlt } from '@fortawesome/pro-regular-svg-icons'; + +export const PrivateIcon = styled(FaIcon).attrs({ icon: faLockAlt })` + margin-right: 8px; + font-size: 16px; +`; + +export const ChatIcon = styled(FaIcon).attrs({ icon: faCommentsAlt })` + font-size: 16px; +`; + +export const PenIcon = styled(FaIcon).attrs({ icon: faPen })` + font-size: 16px; + margin-right: 10px; +`; + +export const CommunityHeaderContainer = styled.div` + background: #ffffff; + border: 1px solid #edeef2; + border-radius: 4px 4px 0 0; +`; + +export const CommunityWrapper = styled.div` + padding: 16px; + display: flex; + align-items: center; +`; + +export const Tabs = styled.div` + border-top: 1px solid #f7f7f8; + padding: 0 16px; +`; + +export const Avatar = styled(UiAvatar).attrs({ + size: 'big', +})` + margin-right: 12px; +`; + +export const CommunityName = styled.span` + ${({ theme }) => theme.typography.headline} +`; + +export const Count = styled.span` + ${({ theme }) => theme.typography.bodyBold} +`; + +export const Buttons = styled.div` + margin-left: auto; +`; diff --git a/src/CommunityItem/index.tsx b/src/CommunityItem/index.tsx new file mode 100644 index 000000000..eb134bfc4 --- /dev/null +++ b/src/CommunityItem/index.tsx @@ -0,0 +1,22 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import { + Avatar, + CommunityItemContainer, + CommunityName, + VervifiedIcon, + PrivateIcon, +} from './styles'; + +const CommunityItem = ({ community, selected, onSelect }) => ( + onSelect(channel.channelId)} selected={selected}> + + {community.private && } + {community.name} + {community.verified && } + +); + +export default customizableComponent('CommunityItem')(CommunityItem); diff --git a/src/CommunityItem/styles.ts b/src/CommunityItem/styles.ts new file mode 100644 index 000000000..58b922cdd --- /dev/null +++ b/src/CommunityItem/styles.ts @@ -0,0 +1,28 @@ +import styled from 'styled-components'; +import UiKitAvatar from '../Avatar'; +import SideMenuItem from '../commonComponents/SideMenuItem'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faBadgeCheck } from '@fortawesome/pro-solid-svg-icons'; +import { faLockAlt } from '@fortawesome/pro-regular-svg-icons'; + +export const PrivateIcon = styled(FaIcon).attrs({ icon: faLockAlt })` + margin-right: 8px; + font-size: 16px; +`; + +export const VervifiedIcon = styled(FaIcon).attrs({ icon: faBadgeCheck })` + margin-left: 8px; + font-size: 16px; + color: #1253de; +`; + +export const CommunityItemContainer = styled(SideMenuItem)``; + +export const Avatar = styled(UiKitAvatar)` + margin-right: 8px; +`; + +export const CommunityName = styled.div` + overflow: hidden; + text-overflow: ellipsis; +`; diff --git a/src/SideMenu/index.tsx b/src/SideMenu/index.tsx new file mode 100644 index 000000000..1ff6315c4 --- /dev/null +++ b/src/SideMenu/index.tsx @@ -0,0 +1,52 @@ +import React, { useState, useEffect } from 'react'; +import { ChannelRepository } from 'eko-sdk'; + +import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; +import CommunityItem from '../CommunityItem'; +import SideMenuItem from '../commonComponents/SideMenuItem'; + +import { + SideMenuListContainer, + BlockTitle, + CommunityBlock, + MyCommunityBlock, + NewsIcon, + SearchIcon, + PlusIcon, + VervifiedIcon, +} from './styles'; + +const SideMenu = ({ onChannelClick, selectedChannelId }) => { + const communities = [ + { name: 'Billie Ellish Fans' }, + { name: 'BLACKPINK TH', verified: true }, + { name: 'Breakfast Club' }, + { name: 'BTS & ARMY' }, + { name: 'Harry Potter Fans', private: true }, + ]; + + return ( + + + Community + }>NewsFeed + }>Explore + + + My Community + }>Create Community + {communities.map((community, i) => ( + + ))} + + + ); +}; + +export default customizableComponent('SideMenu')(SideMenu); diff --git a/src/SideMenu/styles.tsx b/src/SideMenu/styles.tsx new file mode 100644 index 000000000..7fb7da5ef --- /dev/null +++ b/src/SideMenu/styles.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faNewspaper, faSearch, faPlus } from '@fortawesome/pro-regular-svg-icons'; + +export const NewsIcon = styled(FaIcon).attrs({ icon: faNewspaper })` + font-size: 20px; +`; + +export const SearchIcon = styled(FaIcon).attrs({ icon: faSearch })` + font-size: 20px; +`; + +export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` + font-size: 20px; +`; + +export const BlockTitle = styled.div` + margin: 20px 0 20px 8px; +`; + +export const SideMenuListContainer = styled.div` + background-color: white; + border: 1px solid #e6e6e6; + width: 280px; + overflow: auto; + flex-shrink: 0; + ${({ theme }) => theme.typography.title} +`; + +export const CommunityBlock = styled.div` + padding: 0 16px 0 8px; +`; + +export const MyCommunityBlock = styled.div` + border-top: 1px solid #f7f7f8; + padding: 0 16px 0 8px; +`; From 2616de3f8974fd3cddc8a27aa06ff7fd0ec0f573 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 15:03:59 +0700 Subject: [PATCH 023/740] Post compose and post --- src/EngagementBar/index.tsx | 29 +++++++++ src/EngagementBar/styles.ts | 32 ++++++++++ src/Post/Post.stories.tsx | 16 +++++ src/Post/index.tsx | 61 +++++++++++++++++++ src/Post/styles.ts | 57 ++++++++++++++++++ src/PostCompose/index.tsx | 117 ++++++++++++++++++++++++++++++++++++ src/PostCompose/styles.ts | 63 +++++++++++++++++++ 7 files changed, 375 insertions(+) create mode 100644 src/EngagementBar/index.tsx create mode 100644 src/EngagementBar/styles.ts create mode 100644 src/Post/Post.stories.tsx create mode 100644 src/Post/index.tsx create mode 100644 src/Post/styles.ts create mode 100644 src/PostCompose/index.tsx create mode 100644 src/PostCompose/styles.ts diff --git a/src/EngagementBar/index.tsx b/src/EngagementBar/index.tsx new file mode 100644 index 000000000..97f15ed59 --- /dev/null +++ b/src/EngagementBar/index.tsx @@ -0,0 +1,29 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import { customizableComponent } from '../hoks/customization'; +import { SecondaryButton } from '../commonComponents/Button'; + +import { EngagementBarContainer, Counters, InteractionBar, LikeIcon, CommentIcon } from './styles'; + +const EngagementBar = () => { + const likes = 18928; + const comments = 345; + return ( + + + {toHumanString(likes)} likes + {toHumanString(comments)} comments + + + + Like + + + Comment + + + + ); +}; + +export default customizableComponent('EngagementBar')(EngagementBar); diff --git a/src/EngagementBar/styles.ts b/src/EngagementBar/styles.ts new file mode 100644 index 000000000..f4bfcbd4b --- /dev/null +++ b/src/EngagementBar/styles.ts @@ -0,0 +1,32 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faThumbsUp, faCommentAlt } from '@fortawesome/pro-regular-svg-icons'; + +export const EngagementBarContainer = styled.div` + color: #818698; + ${({ theme }) => theme.typography.body} +`; + +export const Counters = styled.div` + display: flex; + justify-content: space-between; + border-bottom: 1px solid #e3e4e8; + padding: 8px 0; +`; + +export const InteractionBar = styled.div` + display: flex; + padding-top: 2px; +`; + +export const LikeIcon = styled(FaIcon).attrs({ icon: faThumbsUp })` + font-size: 16px; + margin-right: 5px; +`; + +export const CommentIcon = styled(FaIcon).attrs({ icon: faCommentAlt })` + position: relative; + top: 2px; + font-size: 16px; + margin-right: 5px; +`; diff --git a/src/Post/Post.stories.tsx b/src/Post/Post.stories.tsx new file mode 100644 index 000000000..174d767f4 --- /dev/null +++ b/src/Post/Post.stories.tsx @@ -0,0 +1,16 @@ +import React, { useEffect } from 'react'; +import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; + +import Post from './index'; +import UiKitProvider from '../UiKitProvider'; + +export default { + title: 'Post', +}; + +const post = { + author: { name: 'John' }, + text: 'text text text', +}; + +export const JustPost = () => ; diff --git a/src/Post/index.tsx b/src/Post/index.tsx new file mode 100644 index 000000000..0ccb40934 --- /dev/null +++ b/src/Post/index.tsx @@ -0,0 +1,61 @@ +import React, { useState, useEffect } from 'react'; +import Truncate from 'react-truncate-markup'; +import Linkify from 'react-linkify'; +import { customizableComponent } from '../hoks/customization'; + +import EngagementBar from '../EngagementBar'; +import Avatar from '../Avatar'; +import Files from '../Files'; +import { + PostContainer, + PostHeader, + PostContent, + OptionsIcon, + ShowMore, + AuthorName, + PostDate, + PostInfo, + ReadMoreButton, +} from './styles'; + +const hrefDecorator = (decoratedHref, decoratedText, key) => ( + + {decoratedText} + +); + +const Post = ({ className, post: { author, text, files, images } }) => { + const [isExpanded, setIsExpanded] = useState(false); + const expand = () => setIsExpanded(true); + + return ( + + + <> + + + {author.name} + 30 min + + + + + + {isExpanded ? ( + {text} + ) : ( + Read more...} + > + {text} + + )} + + + + + ); +}; + +export default customizableComponent('Post')(Post); diff --git a/src/Post/styles.ts b/src/Post/styles.ts new file mode 100644 index 000000000..513582ccc --- /dev/null +++ b/src/Post/styles.ts @@ -0,0 +1,57 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faEllipsisH } from '@fortawesome/pro-regular-svg-icons'; +import { SecondaryButton } from '../commonComponents/Button'; + +export const OptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisH })` + font-size: 16px; + padding: 0 5px; + cursor: pointer; + margin-left: auto; + color: #17181c; +`; + +export const PostContainer = styled.div` + width: 560px; + padding: 16px; + background: #ffffff; + border: 1px solid #edeef2; + border-radius: 4px; +`; + +export const PostHeader = styled.div` + display: flex; + align-items: center; + padding-bottom: 14px; +`; + +export const PostContent = styled.div` + color: #17181c; + white-space: pre-wrap; + ${({ theme }) => theme.typography.body} +`; + +export const ShowMore = styled.div` + font-weight: bold; + cursor: pointer; +`; + +export const PostInfo = styled.div` + margin-left: 8px; +`; + +export const AuthorName = styled.div` + ${({ theme }) => theme.typography.title} +`; + +export const PostDate = styled.div` + color: #818698; + ${({ theme }) => theme.typography.caption} +`; + +export const ReadMoreButton = styled(SecondaryButton)` + display: block; + color: #1054de; + padding: 4px; +`; diff --git a/src/PostCompose/index.tsx b/src/PostCompose/index.tsx new file mode 100644 index 000000000..3402cc065 --- /dev/null +++ b/src/PostCompose/index.tsx @@ -0,0 +1,117 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; + +import { customizableComponent } from '../hoks/customization'; +import Files from '../Files'; + +import { + PostComposeContainer, + PostComposeTextarea, + PostComposeTextareaWrapper, + ImagePostIcon, + FilePostIcon, + ActionsBar, + PostContainer, + PostButton, + Avatar, +} from './styles'; + +const testFiles = [ + { + filename: 'text.txt', + size: 259, + }, + { + filename: 'book.pdf', + size: 223893, + }, + { + filename: 'podcast.ogg', + size: 2293893, + }, + { + filename: 'movie.avi', + size: 229389322, + }, + { + filename: 'page.html', + size: 1024, + }, + { + filename: 'presentation.ppt', + size: 2139232, + }, + { + filename: 'archive.zip', + size: 123123132923, + }, +]; + +const testImages = [ + { + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, +]; + +const PostComposeBar = ({ onSubmit, className }) => { + const [text, setText] = useState(''); + const [files, setFiles] = useState([]); + const [images, setImages] = useState([]); + const [isCommunityPost, setIsCommunityPost] = useState(false); + + const isEmpty = text.length === 0 && files.length === 0 && images.length === 0; + + const createPost = () => { + if (isEmpty) return; + onSubmit({ + id: Date.now(), + author: { name: 'John' }, + text, + files, + images, + }); + setText(''); + setFiles([]); + setImages([]); + }; + + const addImage = () => { + setImages([...images, testImages[0]]); + }; + + const addFile = () => { + const file = testFiles[files.length % testFiles.length]; + setFiles([...files, { id: Date.now(), ...file }]); + }; + + const onRemoveFile = file => { + setFiles(files.filter(({ id }) => id !== file.id)); + }; + + return ( + + + + + setText(e.target.value)} + /> + {!!files.length && } + + + + + + + Post + + + + ); +}; + +export default customizableComponent('PostComposeBar')(PostComposeBar); diff --git a/src/PostCompose/styles.ts b/src/PostCompose/styles.ts new file mode 100644 index 000000000..8939df0fc --- /dev/null +++ b/src/PostCompose/styles.ts @@ -0,0 +1,63 @@ +import styled from 'styled-components'; +import TextareaAutosize from 'react-autosize-textarea'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; +import { PrimaryButton } from '../commonComponents/Button'; +import UIAvatar from '../Avatar'; + +export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` + font-size: 18px; + cursor: pointer; + margin-right: 20px; + color: #17181c; +`; + +export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` + font-size: 18px; + margin-right: 12px; + cursor: pointer; + color: #17181c; +`; + +export const PostComposeContainer = styled.div` + width: 560px; + padding: 16px 20px 12px 16px; + background: #ffffff; + border: 1px solid #edeef2; + border-radius: 4px; +`; + +export const PostComposeTextarea = styled(TextareaAutosize).attrs({ rows: 1, maxRows: 15 })` + padding: 0; + outline: none; + border: none; + border-radius: 4px; + resize: none; +`; + +export const PostComposeTextareaWrapper = styled.div` + display: flex; + flex-direction: column; + padding: 10px 12px; + flex-grow: 1; + border-radius: 4px; + border: 1px solid #e3e4e8; +`; + +export const ActionsBar = styled.div` + margin-top: 12px; + display: flex; + align-items: center; +`; +export const PostContainer = styled.div` + display: flex; +`; + +export const PostButton = styled(PrimaryButton)` + padding: 10px 16px; + margin-left: auto; +`; + +export const Avatar = styled(UIAvatar)` + margin-right: 8px; +`; From 260999191dd0e094a64c629209b31d60a2337f83 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 31 Jul 2020 15:04:11 +0700 Subject: [PATCH 024/740] Files attachments --- src/Files/File.tsx | 34 +++++++++++++++++++++++ src/Files/FileIcon.tsx | 54 +++++++++++++++++++++++++++++++++++++ src/Files/icons/audio.svg | 21 +++++++++++++++ src/Files/icons/avi.svg | 14 ++++++++++ src/Files/icons/csv.svg | 14 ++++++++++ src/Files/icons/default.svg | 10 +++++++ src/Files/icons/doc.svg | 13 +++++++++ src/Files/icons/exe.svg | 14 ++++++++++ src/Files/icons/html.svg | 12 +++++++++ src/Files/icons/img.svg | 20 ++++++++++++++ src/Files/icons/mov.svg | 14 ++++++++++ src/Files/icons/mp3.svg | 9 +++++++ src/Files/icons/mp4.svg | 14 ++++++++++ src/Files/icons/mpeg.svg | 15 +++++++++++ src/Files/icons/pdf.svg | 14 ++++++++++ src/Files/icons/ppt.svg | 10 +++++++ src/Files/icons/ppx.svg | 14 ++++++++++ src/Files/icons/rar.svg | 49 +++++++++++++++++++++++++++++++++ src/Files/icons/txt.svg | 19 +++++++++++++ src/Files/icons/xls.svg | 9 +++++++ src/Files/icons/zip.svg | 31 +++++++++++++++++++++ src/Files/index.tsx | 17 ++++++++++++ src/Files/styles.ts | 51 +++++++++++++++++++++++++++++++++++ 23 files changed, 472 insertions(+) create mode 100644 src/Files/File.tsx create mode 100644 src/Files/FileIcon.tsx create mode 100644 src/Files/icons/audio.svg create mode 100644 src/Files/icons/avi.svg create mode 100644 src/Files/icons/csv.svg create mode 100644 src/Files/icons/default.svg create mode 100644 src/Files/icons/doc.svg create mode 100644 src/Files/icons/exe.svg create mode 100644 src/Files/icons/html.svg create mode 100644 src/Files/icons/img.svg create mode 100644 src/Files/icons/mov.svg create mode 100644 src/Files/icons/mp3.svg create mode 100644 src/Files/icons/mp4.svg create mode 100644 src/Files/icons/mpeg.svg create mode 100644 src/Files/icons/pdf.svg create mode 100644 src/Files/icons/ppt.svg create mode 100644 src/Files/icons/ppx.svg create mode 100644 src/Files/icons/rar.svg create mode 100644 src/Files/icons/txt.svg create mode 100644 src/Files/icons/xls.svg create mode 100644 src/Files/icons/zip.svg create mode 100644 src/Files/index.tsx create mode 100644 src/Files/styles.ts diff --git a/src/Files/File.tsx b/src/Files/File.tsx new file mode 100644 index 000000000..615a0961a --- /dev/null +++ b/src/Files/File.tsx @@ -0,0 +1,34 @@ +import React, { useState, useEffect } from 'react'; +import filesize from 'filesize'; +import { customizableComponent } from '../hoks/customization'; + +import FileIcon from './FileIcon'; + +import { FileContainer, Content, FileName, FileSize, ProgressBar, RemoveIcon } from './styles'; + +const File = ({ file, onRemove }) => { + // simulate progress animation + const [progress, setProgress] = useState(0); + useEffect( + () => { + if (progress >= 100) return; + setTimeout(() => { + setProgress(progress + 0.5); + }, 50); + }, + [progress], + ); + + return ( + + + + + {file.filename} {filesize(file.size)} + {!!onRemove && onRemove(file)} />} + + + ); +}; + +export default customizableComponent('File')(File); diff --git a/src/Files/FileIcon.tsx b/src/Files/FileIcon.tsx new file mode 100644 index 000000000..51823d93f --- /dev/null +++ b/src/Files/FileIcon.tsx @@ -0,0 +1,54 @@ +import React from 'react'; + +import defaultIcon from './icons/default.svg'; +import audioIcon from './icons/audio.svg'; +import aviIcon from './icons/avi.svg'; +import csvIcon from './icons/csv.svg'; +import docIcon from './icons/doc.svg'; +import exeIcon from './icons/exe.svg'; +import htmlIcon from './icons/html.svg'; +import imgIcon from './icons/img.svg'; +import movIcon from './icons/mov.svg'; +import mp3Icon from './icons/mp3.svg'; +import mp4Icon from './icons/mp4.svg'; +import mpegIcon from './icons/mpeg.svg'; +import pdfIcon from './icons/pdf.svg'; +import pptIcon from './icons/ppt.svg'; +import ppxIcon from './icons/ppx.svg'; +import rarIcon from './icons/rar.svg'; +import txtIcon from './icons/txt.svg'; +import xlsIcon from './icons/xls.svg'; +import zipIcon from './icons/zip.svg'; + +const extensionsToIconsMap = { + audio: audioIcon, + ogg: audioIcon, + aac: audioIcon, + avi: aviIcon, + csv: csvIcon, + doc: docIcon, + exe: exeIcon, + html: htmlIcon, + jpg: imgIcon, + png: imgIcon, + gif: imgIcon, + mov: movIcon, + mp3: mp3Icon, + mp4: mp4Icon, + mpeg: mpegIcon, + pdf: pdfIcon, + ppt: pptIcon, + ppx: ppxIcon, + rar: rarIcon, + txt: txtIcon, + xls: xlsIcon, + zip: zipIcon, +}; + +const FileIcon = ({ file }) => { + const extension = file.filename.split('.').slice(-1); + const icon = extensionsToIconsMap[extension] || defaultIcon; + return ; +}; + +export default FileIcon; diff --git a/src/Files/icons/audio.svg b/src/Files/icons/audio.svg new file mode 100644 index 000000000..69b6d625f --- /dev/null +++ b/src/Files/icons/audio.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Files/icons/avi.svg b/src/Files/icons/avi.svg new file mode 100644 index 000000000..2c042a592 --- /dev/null +++ b/src/Files/icons/avi.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/csv.svg b/src/Files/icons/csv.svg new file mode 100644 index 000000000..bc1353d22 --- /dev/null +++ b/src/Files/icons/csv.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/default.svg b/src/Files/icons/default.svg new file mode 100644 index 000000000..626861384 --- /dev/null +++ b/src/Files/icons/default.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/Files/icons/doc.svg b/src/Files/icons/doc.svg new file mode 100644 index 000000000..de37a5ca1 --- /dev/null +++ b/src/Files/icons/doc.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/Files/icons/exe.svg b/src/Files/icons/exe.svg new file mode 100644 index 000000000..a8da92717 --- /dev/null +++ b/src/Files/icons/exe.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/html.svg b/src/Files/icons/html.svg new file mode 100644 index 000000000..7dfd8dd92 --- /dev/null +++ b/src/Files/icons/html.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/Files/icons/img.svg b/src/Files/icons/img.svg new file mode 100644 index 000000000..319a38fc3 --- /dev/null +++ b/src/Files/icons/img.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/Files/icons/mov.svg b/src/Files/icons/mov.svg new file mode 100644 index 000000000..a1244e9e8 --- /dev/null +++ b/src/Files/icons/mov.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/mp3.svg b/src/Files/icons/mp3.svg new file mode 100644 index 000000000..9d881ccbd --- /dev/null +++ b/src/Files/icons/mp3.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/Files/icons/mp4.svg b/src/Files/icons/mp4.svg new file mode 100644 index 000000000..6e58d99f7 --- /dev/null +++ b/src/Files/icons/mp4.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/mpeg.svg b/src/Files/icons/mpeg.svg new file mode 100644 index 000000000..69890e795 --- /dev/null +++ b/src/Files/icons/mpeg.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/Files/icons/pdf.svg b/src/Files/icons/pdf.svg new file mode 100644 index 000000000..5f5696fc4 --- /dev/null +++ b/src/Files/icons/pdf.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/ppt.svg b/src/Files/icons/ppt.svg new file mode 100644 index 000000000..323a60283 --- /dev/null +++ b/src/Files/icons/ppt.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/Files/icons/ppx.svg b/src/Files/icons/ppx.svg new file mode 100644 index 000000000..5b3858251 --- /dev/null +++ b/src/Files/icons/ppx.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/Files/icons/rar.svg b/src/Files/icons/rar.svg new file mode 100644 index 000000000..3fbbfee7b --- /dev/null +++ b/src/Files/icons/rar.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Files/icons/txt.svg b/src/Files/icons/txt.svg new file mode 100644 index 000000000..862f0ded6 --- /dev/null +++ b/src/Files/icons/txt.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/Files/icons/xls.svg b/src/Files/icons/xls.svg new file mode 100644 index 000000000..3e5b4c668 --- /dev/null +++ b/src/Files/icons/xls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/Files/icons/zip.svg b/src/Files/icons/zip.svg new file mode 100644 index 000000000..e252c3c53 --- /dev/null +++ b/src/Files/icons/zip.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Files/index.tsx b/src/Files/index.tsx new file mode 100644 index 000000000..18a6e0822 --- /dev/null +++ b/src/Files/index.tsx @@ -0,0 +1,17 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import File from './File'; + +import { FilesContainer } from './styles'; + +const Files = ({ files = [], onRemove }) => ( + + {files.map((file, i) => ( + + ))} + +); + +export default customizableComponent('Files')(Files); diff --git a/src/Files/styles.ts b/src/Files/styles.ts new file mode 100644 index 000000000..8334358ae --- /dev/null +++ b/src/Files/styles.ts @@ -0,0 +1,51 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faTimes } from '@fortawesome/pro-regular-svg-icons'; + +export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` + padding: 0 10px; + cursor: pointer; + margin-left: auto; +`; + +export const FilesContainer = styled.div` + padding: 10px 0; +`; + +export const FileContainer = styled.div` + position: relative; + border: 1px solid #ebecef; + padding: 8px; + border-radius: 4px; + :not(:first-child) { + margin-top: 8px; + } + overflow: hidden; +`; + +export const Content = styled.div` + position: relative; + display: flex; + align-items: center; +`; + +export const ProgressBar = styled.div` + background: #ebecef; + width: ${({ progress }) => progress}%; + position: absolute; + left: 0; + top: 0; + bottom: 0; +`; + +export const FileSize = styled.div` + ${({ theme }) => theme.typography.caption} + color: #636878; +`; + +export const FileName = styled.div` + ${({ theme }) => theme.typography.bodyBold} + margin-left: 8px; + margin-right: 4px; +`; From 8b11618c09bef29fc8378062ebef505c29cba0a5 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 3 Aug 2020 12:21:43 +0700 Subject: [PATCH 025/740] add more file extensions --- src/Files/FileIcon.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Files/FileIcon.tsx b/src/Files/FileIcon.tsx index 51823d93f..4e1553b1a 100644 --- a/src/Files/FileIcon.tsx +++ b/src/Files/FileIcon.tsx @@ -38,10 +38,12 @@ const extensionsToIconsMap = { mpeg: mpegIcon, pdf: pdfIcon, ppt: pptIcon, + pptx: pptIcon, ppx: ppxIcon, rar: rarIcon, txt: txtIcon, xls: xlsIcon, + xlsx: xlsIcon, zip: zipIcon, }; From 202e36b2d1c64429dc9b435aa475cb8db067b55c Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 3 Aug 2020 12:21:57 +0700 Subject: [PATCH 026/740] mock file upload --- src/Images/Image.tsx | 28 +++++++++++ src/Images/index.tsx | 17 +++++++ src/Images/styles.ts | 94 +++++++++++++++++++++++++++++++++++++ src/Post/index.tsx | 4 +- src/PostCompose/index.tsx | 97 ++++++++++++++++++++++++++++++++++++++- 5 files changed, 238 insertions(+), 2 deletions(-) create mode 100644 src/Images/Image.tsx create mode 100644 src/Images/index.tsx create mode 100644 src/Images/styles.ts diff --git a/src/Images/Image.tsx b/src/Images/Image.tsx new file mode 100644 index 000000000..85a4d5578 --- /dev/null +++ b/src/Images/Image.tsx @@ -0,0 +1,28 @@ +import React, { useState, useEffect } from 'react'; +import { customizableComponent } from '../hoks/customization'; + +import { ImageContainer, Content, ProgressBar, RemoveIcon } from './styles'; + +const Image = ({ image, onRemove }) => { + // simulate progress animation + const [progress, setProgress] = useState(0); + useEffect( + () => { + if (progress >= 100) return; + setTimeout(() => { + setProgress(progress + 0.5); + }, 50); + }, + [progress], + ); + + return ( + + + + {!!onRemove && onRemove(image)} />} + + ); +}; + +export default customizableComponent('Image')(Image); diff --git a/src/Images/index.tsx b/src/Images/index.tsx new file mode 100644 index 000000000..88292761d --- /dev/null +++ b/src/Images/index.tsx @@ -0,0 +1,17 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import Image from './Image'; + +import { ImagesContainer } from './styles'; + +const Images = ({ images = [], onRemove }) => ( + + {images.map((image, i) => ( + + ))} + +); + +export default customizableComponent('Images')(Images); diff --git a/src/Images/styles.ts b/src/Images/styles.ts new file mode 100644 index 000000000..17ed777d9 --- /dev/null +++ b/src/Images/styles.ts @@ -0,0 +1,94 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faTimes } from '@fortawesome/pro-regular-svg-icons'; + +export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` + z-index: 2; + cursor: pointer; + margin-left: auto; + position: absolute; + right: 10px; + top: 10px; + background: rgba(17, 17, 17, 0.2); + color: white; + border-radius: 50%; + padding: 2px 6px; +`; + +export const ImageContainer = styled.div` + position: relative; + overflow: hidden; + img { + object-fit: cover; + width: 100%; + height: 100%; + } +`; + +const one = ` + grid-template-rows: 380px; +`; + +const two = ` + grid-template-columns: auto auto; + grid-template-rows: 380px; +`; + +const three = ` + grid-template-columns: auto auto; + grid-template-rows: 220px 170px; + ${ImageContainer}:first-child { + grid-column: 1 / -1; + } +`; + +const four = ` + grid-template-columns: auto auto auto; + grid-template-rows: 220px 170px; + ${ImageContainer}:first-child { + grid-column: 1 / -1; + } +`; + +const more = ` + grid-template-columns: repeat(auto-fill, 105px); + ${ImageContainer} { + border-radius: 6px; + height: 105px; + justify-content: space-evenly; + } +`; + +export const ImagesContainer = styled.div` + display: grid; + grid-gap: 8px; + width: 100%; + overflow: hidden; + border-radius: 6px; + ${({ length }) => { + switch (length) { + case 1: + return one; + case 2: + return two; + case 3: + return three; + case 4: + return four; + default: + return more; + } + }} +`; + +export const ProgressBar = styled.div` + background: #ebecef; + width: ${({ progress }) => 100 - progress}%; + position: absolute; + right: 0; + top: 0; + bottom: 0; + opacity: 0.3; + z-index: 1; +`; diff --git a/src/Post/index.tsx b/src/Post/index.tsx index 0ccb40934..7871ec7a7 100644 --- a/src/Post/index.tsx +++ b/src/Post/index.tsx @@ -6,6 +6,7 @@ import { customizableComponent } from '../hoks/customization'; import EngagementBar from '../EngagementBar'; import Avatar from '../Avatar'; import Files from '../Files'; +import Images from '../Images'; import { PostContainer, PostHeader, @@ -24,7 +25,7 @@ const hrefDecorator = (decoratedHref, decoratedText, key) => ( ); -const Post = ({ className, post: { author, text, files, images } }) => { +const Post = ({ className, post: { author, text, files = [], images = [] } }) => { const [isExpanded, setIsExpanded] = useState(false); const expand = () => setIsExpanded(true); @@ -53,6 +54,7 @@ const Post = ({ className, post: { author, text, files, images } }) => { )} + ); diff --git a/src/PostCompose/index.tsx b/src/PostCompose/index.tsx index 3402cc065..e15b91519 100644 --- a/src/PostCompose/index.tsx +++ b/src/PostCompose/index.tsx @@ -3,6 +3,7 @@ import InfiniteScroll from 'react-infinite-scroller'; import { customizableComponent } from '../hoks/customization'; import Files from '../Files'; +import Images from '../Images'; import { PostComposeContainer, @@ -45,6 +46,94 @@ const testFiles = [ filename: 'archive.zip', size: 123123132923, }, + { + filename: 'filename.audio', + size: 12323, + }, + { + filename: 'filename.ogg', + size: 12323, + }, + { + filename: 'filename.aac', + size: 12323, + }, + { + filename: 'filename.avi', + size: 12323, + }, + { + filename: 'filename.csv', + size: 12323, + }, + { + filename: 'filename.doc', + size: 12323, + }, + { + filename: 'filename.exe', + size: 12323, + }, + { + filename: 'filename.html', + size: 12323, + }, + { + filename: 'filename.jpg', + size: 12323, + }, + { + filename: 'filename.png', + size: 12323, + }, + { + filename: 'filename.gif', + size: 12323, + }, + { + filename: 'filename.mov', + size: 12323, + }, + { + filename: 'filename.mp3', + size: 12323, + }, + { + filename: 'filename.mp4', + size: 12323, + }, + { + filename: 'filename.mpeg', + size: 12323, + }, + { + filename: 'filename.pdf', + size: 12323, + }, + { + filename: 'filename.ppt', + size: 12323, + }, + { + filename: 'filename.ppx', + size: 12323, + }, + { + filename: 'filename.rar', + size: 12323, + }, + { + filename: 'filename.txt', + size: 12323, + }, + { + filename: 'filename.xls', + size: 12323, + }, + { + filename: 'filename.zip', + size: 12323, + }, ]; const testImages = [ @@ -77,7 +166,8 @@ const PostComposeBar = ({ onSubmit, className }) => { }; const addImage = () => { - setImages([...images, testImages[0]]); + const image = testImages[images.length % testImages.length]; + setImages([...images, { id: Date.now(), ...image }]); }; const addFile = () => { @@ -89,6 +179,10 @@ const PostComposeBar = ({ onSubmit, className }) => { setFiles(files.filter(({ id }) => id !== file.id)); }; + const onRemoveImage = image => { + setImages(images.filter(({ id }) => id !== image.id)); + }; + return ( @@ -101,6 +195,7 @@ const PostComposeBar = ({ onSubmit, className }) => { onChange={e => setText(e.target.value)} /> {!!files.length && } + {!!images.length && } From 74205b5ccf410cdc44863c28230f6f243a234b71 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 3 Aug 2020 15:38:43 +0700 Subject: [PATCH 027/740] Add Modal component --- src/commonComponents/Modal/index.tsx | 20 ++++++++++++ src/commonComponents/Modal/styles.ts | 48 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 src/commonComponents/Modal/index.tsx create mode 100644 src/commonComponents/Modal/styles.ts diff --git a/src/commonComponents/Modal/index.tsx b/src/commonComponents/Modal/index.tsx new file mode 100644 index 000000000..f3af3fb3a --- /dev/null +++ b/src/commonComponents/Modal/index.tsx @@ -0,0 +1,20 @@ +import React, { useState } from 'react'; + +import { Overlay, ModalWindow, Header, Content, Footer, CloseIcon } from './styles'; + +const Modal = ({ className, onOverlayClick, onClose, title, footer, clean, children }) => ( + + + {(title || onClose) && ( +
+ {title} + {onClose && } +
+ )} + {children} + {footer &&
{footer}
} +
+
+); + +export default Modal; diff --git a/src/commonComponents/Modal/styles.ts b/src/commonComponents/Modal/styles.ts new file mode 100644 index 000000000..0d1d536db --- /dev/null +++ b/src/commonComponents/Modal/styles.ts @@ -0,0 +1,48 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faTimes } from '@fortawesome/pro-regular-svg-icons'; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + padding: 0 6px; + font-size: 18px; + cursor: pointer; + margin-left: auto; +`; + +export const Overlay = styled.div` + z-index: 9999; + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + background: rgba(23, 24, 28, 0.8); + display: flex; + align-items: center; + justify-content: center; +`; + +export const ModalWindow = styled.div` + background: white; + border-radius: 6px; + max-width: 520px; + min-width: 360px; + ${({ theme }) => theme.typography.body} +`; + +export const Header = styled.div` + padding: 16px 16px 12px 16px; + ${({ clean }) => !clean && 'border-bottom: 1px solid #ebecef;'} + ${({ theme }) => theme.typography.title} + display: flex; + align-items: center; +`; + +export const Content = styled.div` + ${({ isText }) => isText && 'padding: 20px 16px;'} +`; + +export const Footer = styled.div` + ${({ clean }) => !clean && 'border-top: 1px solid #ebecef;'} + padding: 16px; +`; From e5df5d60fbe88149931936f7e24758ee51d88bf8 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 3 Aug 2020 15:39:14 +0700 Subject: [PATCH 028/740] add Confirm component and confirm function --- src/UiKitProvider/index.tsx | 2 + src/commonComponents/Confirm/index.tsx | 67 ++++++++++++++++++++++++++ src/commonComponents/Confirm/styles.ts | 15 ++++++ 3 files changed, 84 insertions(+) create mode 100644 src/commonComponents/Confirm/index.tsx create mode 100644 src/commonComponents/Confirm/styles.ts diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.tsx index ae45e0925..98dbdaf40 100644 --- a/src/UiKitProvider/index.tsx +++ b/src/UiKitProvider/index.tsx @@ -8,6 +8,7 @@ import { SDKProvider } from '../hoks/withSDK'; import { IntlProvider } from 'react-intl'; import GlobalStyle from './GlobalStyle'; import GlobalTheme from './GlobalTheme'; +import { ConfirmContainer } from '../commonComponents/Confirm'; _changeSDKDefaultConfig({ ws: { endpoint: 'https://api.staging.ekomedia.technology' }, @@ -59,6 +60,7 @@ const UiKitProvider = ({ {children} + diff --git a/src/commonComponents/Confirm/index.tsx b/src/commonComponents/Confirm/index.tsx new file mode 100644 index 000000000..22caf144b --- /dev/null +++ b/src/commonComponents/Confirm/index.tsx @@ -0,0 +1,67 @@ +import React, { useState } from 'react'; + +import { ConfirmModal, Footer, DefaultOkButton, DefaultCancelButton } from './styles'; + +const Confirm = ({ + className, + title, + content, + okText = 'Ok', + onOk, + OkButton = DefaultOkButton, + cancelText = 'Cancel', + CancelButton = DefaultCancelButton, + onCancel, +}) => ( + + {cancelText} + {okText} + + } + > + {content} + +); + +let spawnNewConfirm; + +// rendered by provider, to allow spawning of confirm from confirm function below +export const ConfirmContainer = () => { + const [confirm, setConfirm] = useState(null); + spawnNewConfirm = confirmData => { + setConfirm(confirmData); + }; + + if (!confirm) return null; + + const attachConfirmCanceling = fn => () => { + fn && fn(); + setConfirm(null); + }; + + return ( + + ); +}; + +export const confirm = confirmData => spawnNewConfirm(confirmData); + +setTimeout(() => { + confirm({ + title: 'title', + content: 'content', + }); + console.log('confirmm!!'); +}, 1000); + +export default Confirm; diff --git a/src/commonComponents/Confirm/styles.ts b/src/commonComponents/Confirm/styles.ts new file mode 100644 index 000000000..d4eab9e47 --- /dev/null +++ b/src/commonComponents/Confirm/styles.ts @@ -0,0 +1,15 @@ +import styled from 'styled-components'; +import Modal from '../Modal'; +import Button, { PrimaryButton } from '../Button'; + +export const ConfirmModal = styled(Modal)``; + +export const Footer = styled.div` + display: flex; + justify-content: flex-end; +`; + +export const DefaultOkButton = PrimaryButton; +export const DefaultCancelButton = styled(Button)` + margin-right: 5px; +`; From de0798801c605e6f82a1c7eea4366084a437f21e Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 19:57:24 +0700 Subject: [PATCH 029/740] hide files in post if > 5 --- src/Files/File.tsx | 3 ++- src/Files/index.tsx | 30 +++++++++++++++++++++--------- src/Files/styles.ts | 9 +++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/Files/File.tsx b/src/Files/File.tsx index 615a0961a..623a965fc 100644 --- a/src/Files/File.tsx +++ b/src/Files/File.tsx @@ -12,9 +12,10 @@ const File = ({ file, onRemove }) => { useEffect( () => { if (progress >= 100) return; - setTimeout(() => { + const timeout = setTimeout(() => { setProgress(progress + 0.5); }, 50); + return () => clearTimeout(timeout); }, [progress], ); diff --git a/src/Files/index.tsx b/src/Files/index.tsx index 18a6e0822..114207908 100644 --- a/src/Files/index.tsx +++ b/src/Files/index.tsx @@ -4,14 +4,26 @@ import { customizableComponent } from '../hoks/customization'; import File from './File'; -import { FilesContainer } from './styles'; - -const Files = ({ files = [], onRemove }) => ( - - {files.map((file, i) => ( - - ))} - -); +import { FilesContainer, ViewAllFilesButton } from './styles'; + +const MAX_VISIBLE_FILES = 5; + +const Files = ({ editing, files = [], onRemove }) => { + const [isOpen, setIsOpen] = useState(false); + const open = () => setIsOpen(true); + + const visibleFiles = editing || isOpen ? files : files.slice(0, MAX_VISIBLE_FILES); + + const haveHiddenFiles = visibleFiles.length < files.length; + + return ( + + {visibleFiles.map((file, i) => ( + + ))} + {haveHiddenFiles && View all files} + + ); +}; export default customizableComponent('Files')(Files); diff --git a/src/Files/styles.ts b/src/Files/styles.ts index 8334358ae..2c064f473 100644 --- a/src/Files/styles.ts +++ b/src/Files/styles.ts @@ -3,6 +3,8 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; +import { SecondaryButton } from '../commonComponents/Button'; + export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` padding: 0 10px; cursor: pointer; @@ -49,3 +51,10 @@ export const FileName = styled.div` margin-left: 8px; margin-right: 4px; `; + +export const ViewAllFilesButton = styled(SecondaryButton)` + ${({ theme }) => theme.typography.body} + display: block; + color: #1054de; + margin-top: 4px; +`; From 3f3b29527e3764a8fd6ca31461ffeebb21a3dc60 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 19:58:13 +0700 Subject: [PATCH 030/740] fix uploading animation mocking --- src/Images/Image.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Images/Image.tsx b/src/Images/Image.tsx index 85a4d5578..2612f7c59 100644 --- a/src/Images/Image.tsx +++ b/src/Images/Image.tsx @@ -9,9 +9,10 @@ const Image = ({ image, onRemove }) => { useEffect( () => { if (progress >= 100) return; - setTimeout(() => { + const timeout = setTimeout(() => { setProgress(progress + 0.5); }, 50); + return () => clearTimeout(timeout); }, [progress], ); From 931290bec4a1b1ff4823661eba58977da466eb70 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 20:00:33 +0700 Subject: [PATCH 031/740] fixes and refactoring of post and common components --- src/Post/Options.tsx | 34 ++++++++++++ src/Post/index.tsx | 73 ++++++++++++++++++++----- src/Post/styles.ts | 17 +----- src/commonComponents/Confirm/index.tsx | 18 ++---- src/commonComponents/Confirm/styles.ts | 6 +- src/commonComponents/Linkify/index.tsx | 14 +++++ src/commonComponents/Linkify/styles.ts | 9 +++ src/commonComponents/Menu/index.tsx | 5 ++ src/commonComponents/Menu/styles.tsx | 11 ++++ src/commonComponents/Modal/index.tsx | 6 +- src/commonComponents/Modal/styles.ts | 21 +++++-- src/commonComponents/Options/index.tsx | 41 ++++++++++++++ src/commonComponents/Options/styles.ts | 17 ++++++ src/commonComponents/Popover/styles.tsx | 1 + 14 files changed, 223 insertions(+), 50 deletions(-) create mode 100644 src/Post/Options.tsx create mode 100644 src/commonComponents/Linkify/index.tsx create mode 100644 src/commonComponents/Linkify/styles.ts create mode 100644 src/commonComponents/Menu/index.tsx create mode 100644 src/commonComponents/Menu/styles.tsx create mode 100644 src/commonComponents/Options/index.tsx create mode 100644 src/commonComponents/Options/styles.ts diff --git a/src/Post/Options.tsx b/src/Post/Options.tsx new file mode 100644 index 000000000..9b6ebf9eb --- /dev/null +++ b/src/Post/Options.tsx @@ -0,0 +1,34 @@ +import React, { useState, useEffect } from 'react'; + +import Popover from '../commonComponents/Popover'; +import Menu, { MenuItem } from '../commonComponents/Menu'; + +import { OptionsIcon, OptionsButton } from './styles'; + +const Options = ({ onEdit, onDelete }) => { + const [isOpen, setIsOpen] = useState(false); + const open = () => setIsOpen(true); + const close = () => setIsOpen(false); + + const attachCanceling = fn => () => { + close(); + fn && fn(); + }; + + const menu = ( + + Edit post + Delete post + + ); + + return ( + + + + + + ); +}; + +export default Options; diff --git a/src/Post/index.tsx b/src/Post/index.tsx index 7871ec7a7..dd4aeaa1b 100644 --- a/src/Post/index.tsx +++ b/src/Post/index.tsx @@ -1,36 +1,78 @@ import React, { useState, useEffect } from 'react'; import Truncate from 'react-truncate-markup'; -import Linkify from 'react-linkify'; + import { customizableComponent } from '../hoks/customization'; +import Linkify from '../commonComponents/Linkify'; +import Modal from '../commonComponents/Modal'; +import Options from '../commonComponents/Options'; +import { confirm } from '../commonComponents/Confirm'; + import EngagementBar from '../EngagementBar'; import Avatar from '../Avatar'; import Files from '../Files'; import Images from '../Images'; +import PostCompose from '../PostCompose'; + import { PostContainer, PostHeader, PostContent, - OptionsIcon, - ShowMore, AuthorName, PostDate, PostInfo, ReadMoreButton, } from './styles'; -const hrefDecorator = (decoratedHref, decoratedText, key) => ( - - {decoratedText} - -); +const TEXT_POST_MAX_LINES = 8; +const CONTENT_POST_MAX_LINES = 3; + +const usePostEditingModal = ({ post, onEdit }) => { + const [isEditing, setIsEditing] = useState(false); + const openEditingPostModal = () => setIsEditing(true); + const closeEditingPostModal = () => setIsEditing(false); + + const onSave = updatedPost => { + onEdit(updatedPost); + closeEditingPostModal(); + }; + + const postEditingModal = isEditing ? ( + + + + ) : null; -const Post = ({ className, post: { author, text, files = [], images = [] } }) => { + return { openEditingPostModal, postEditingModal }; +}; + +const Post = ({ + className, + post, + post: { author, text, files = [], images = [] }, + onEdit, + onDelete, +}) => { const [isExpanded, setIsExpanded] = useState(false); const expand = () => setIsExpanded(true); + const { openEditingPostModal, postEditingModal } = usePostEditingModal({ post, onEdit }); + + const confirmDeleting = () => + confirm({ + title: 'Delete post', + content: + 'This post will be permanently deleted. You’ll no longer to see and find this post. Continue?', + okText: 'Delete', + onOk: onDelete, + }); + + const haveContent = files.length > 0 || images.length > 0; + const postMaxLines = haveContent ? CONTENT_POST_MAX_LINES : TEXT_POST_MAX_LINES; + return ( + {postEditingModal} <> @@ -39,15 +81,20 @@ const Post = ({ className, post: { author, text, files = [], images = [] } }) => 30 min - + - + {isExpanded ? ( {text} ) : ( Read more...} + lines={postMaxLines} + ellipsis={...Read more} > {text} diff --git a/src/Post/styles.ts b/src/Post/styles.ts index 513582ccc..ce44da1cd 100644 --- a/src/Post/styles.ts +++ b/src/Post/styles.ts @@ -1,17 +1,7 @@ import styled from 'styled-components'; -import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faEllipsisH } from '@fortawesome/pro-regular-svg-icons'; import { SecondaryButton } from '../commonComponents/Button'; -export const OptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisH })` - font-size: 16px; - padding: 0 5px; - cursor: pointer; - margin-left: auto; - color: #17181c; -`; - export const PostContainer = styled.div` width: 560px; padding: 16px; @@ -27,16 +17,12 @@ export const PostHeader = styled.div` `; export const PostContent = styled.div` + overflow-wrap: break-word; color: #17181c; white-space: pre-wrap; ${({ theme }) => theme.typography.body} `; -export const ShowMore = styled.div` - font-weight: bold; - cursor: pointer; -`; - export const PostInfo = styled.div` margin-left: 8px; `; @@ -51,7 +37,6 @@ export const PostDate = styled.div` `; export const ReadMoreButton = styled(SecondaryButton)` - display: block; color: #1054de; padding: 4px; `; diff --git a/src/commonComponents/Confirm/index.tsx b/src/commonComponents/Confirm/index.tsx index 22caf144b..1a9627a86 100644 --- a/src/commonComponents/Confirm/index.tsx +++ b/src/commonComponents/Confirm/index.tsx @@ -40,28 +40,22 @@ export const ConfirmContainer = () => { if (!confirm) return null; - const attachConfirmCanceling = fn => () => { + const closeConfirm = () => setConfirm(null); + + const attachCanceling = fn => () => { + closeConfirm(); fn && fn(); - setConfirm(null); }; return ( ); }; export const confirm = confirmData => spawnNewConfirm(confirmData); -setTimeout(() => { - confirm({ - title: 'title', - content: 'content', - }); - console.log('confirmm!!'); -}, 1000); - export default Confirm; diff --git a/src/commonComponents/Confirm/styles.ts b/src/commonComponents/Confirm/styles.ts index d4eab9e47..732fdffe8 100644 --- a/src/commonComponents/Confirm/styles.ts +++ b/src/commonComponents/Confirm/styles.ts @@ -2,7 +2,9 @@ import styled from 'styled-components'; import Modal from '../Modal'; import Button, { PrimaryButton } from '../Button'; -export const ConfirmModal = styled(Modal)``; +export const ConfirmModal = styled(Modal)` + max-width: 360px; +`; export const Footer = styled.div` display: flex; @@ -11,5 +13,5 @@ export const Footer = styled.div` export const DefaultOkButton = PrimaryButton; export const DefaultCancelButton = styled(Button)` - margin-right: 5px; + margin-right: 10px; `; diff --git a/src/commonComponents/Linkify/index.tsx b/src/commonComponents/Linkify/index.tsx new file mode 100644 index 000000000..7462ac436 --- /dev/null +++ b/src/commonComponents/Linkify/index.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import Linkify from 'react-linkify'; + +import { Link } from './styles'; + +const hrefDecorator = (decoratedHref, decoratedText, key) => ( + + {decoratedText} + +); + +const UiKitLinkify = props => ; + +export default UiKitLinkify; diff --git a/src/commonComponents/Linkify/styles.ts b/src/commonComponents/Linkify/styles.ts new file mode 100644 index 000000000..fedbe0bba --- /dev/null +++ b/src/commonComponents/Linkify/styles.ts @@ -0,0 +1,9 @@ +import styled from 'styled-components'; + +export const Link = styled.a` + &, + &:visited { + color: #1054de; + text-decoration: none; + } +`; diff --git a/src/commonComponents/Menu/index.tsx b/src/commonComponents/Menu/index.tsx new file mode 100644 index 000000000..072adf344 --- /dev/null +++ b/src/commonComponents/Menu/index.tsx @@ -0,0 +1,5 @@ +import { Menu, MenuItem } from './styles'; + +export { MenuItem }; + +export default Menu; diff --git a/src/commonComponents/Menu/styles.tsx b/src/commonComponents/Menu/styles.tsx new file mode 100644 index 000000000..2de17c7c0 --- /dev/null +++ b/src/commonComponents/Menu/styles.tsx @@ -0,0 +1,11 @@ +import styled from 'styled-components'; + +export const Menu = styled.div``; + +export const MenuItem = styled.div` + padding: 8px 12px; + cursor: pointer; + &:hover { + background: #f2f2f4; + } +`; diff --git a/src/commonComponents/Modal/index.tsx b/src/commonComponents/Modal/index.tsx index f3af3fb3a..35b197fc6 100644 --- a/src/commonComponents/Modal/index.tsx +++ b/src/commonComponents/Modal/index.tsx @@ -2,13 +2,13 @@ import React, { useState } from 'react'; import { Overlay, ModalWindow, Header, Content, Footer, CloseIcon } from './styles'; -const Modal = ({ className, onOverlayClick, onClose, title, footer, clean, children }) => ( +const Modal = ({ className, onOverlayClick, onCancel, title, footer, clean, children }) => ( - {(title || onClose) && ( + {(title || onCancel) && (
{title} - {onClose && } + {onCancel && }
)} {children} diff --git a/src/commonComponents/Modal/styles.ts b/src/commonComponents/Modal/styles.ts index 0d1d536db..5afbf1495 100644 --- a/src/commonComponents/Modal/styles.ts +++ b/src/commonComponents/Modal/styles.ts @@ -16,13 +16,26 @@ export const Overlay = styled.div` bottom: 0; right: 0; left: 0; - background: rgba(23, 24, 28, 0.8); + overflow-y: auto; display: flex; - align-items: center; - justify-content: center; + padding: 20px 0; + background: rgba(23, 24, 28, 0.8); + animation-duration: 0.3s; + animation-name: appear; + + @keyframes appear { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } `; export const ModalWindow = styled.div` + margin: auto; background: white; border-radius: 6px; max-width: 520px; @@ -44,5 +57,5 @@ export const Content = styled.div` export const Footer = styled.div` ${({ clean }) => !clean && 'border-top: 1px solid #ebecef;'} - padding: 16px; + padding: 16px 12px; `; diff --git a/src/commonComponents/Options/index.tsx b/src/commonComponents/Options/index.tsx new file mode 100644 index 000000000..a4b5110d0 --- /dev/null +++ b/src/commonComponents/Options/index.tsx @@ -0,0 +1,41 @@ +import React, { useState, useEffect } from 'react'; + +import Popover from '../Popover'; +import Menu, { MenuItem } from '../Menu'; + +import { OptionsIcon, OptionsButton } from './styles'; + +const Options = ({ className, icon, options, position = 'bottom', align = 'end' }) => { + const [isOpen, setIsOpen] = useState(false); + const open = () => setIsOpen(true); + const close = () => setIsOpen(false); + + const attachCanceling = fn => () => { + close(); + fn && fn(); + }; + + const menu = ( + + {options.map(({ name, action }) => ( + {name} + ))} + + ); + + return ( + + + {icon || } + + + ); +}; + +export default Options; diff --git a/src/commonComponents/Options/styles.ts b/src/commonComponents/Options/styles.ts new file mode 100644 index 000000000..5186eb8e1 --- /dev/null +++ b/src/commonComponents/Options/styles.ts @@ -0,0 +1,17 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faEllipsisH } from '@fortawesome/pro-regular-svg-icons'; +import { SecondaryButton } from '../Button'; + +export const OptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisH })` + font-size: 16px; + cursor: pointer; + margin-left: auto; + color: #17181c; +`; + +export const OptionsButton = styled(SecondaryButton)` + padding: 5px; + margin-left: auto; +`; diff --git a/src/commonComponents/Popover/styles.tsx b/src/commonComponents/Popover/styles.tsx index 691c91725..f00b3f8a5 100644 --- a/src/commonComponents/Popover/styles.tsx +++ b/src/commonComponents/Popover/styles.tsx @@ -5,6 +5,7 @@ import ReactTinyPopover from 'react-tiny-popover'; const ReactPopover = props => ; export const Popover = styled(ReactPopover)` + z-index: 1; background: white; min-width: 200px; padding: 4px 0; From dc4c82eedb11c4e7defc8d93f4cddd51b74327f7 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 20:02:50 +0700 Subject: [PATCH 032/740] restyle chat items in recents menu, use side minu item as base --- src/ChatHome/index.tsx | 1 + src/ChatItem/index.tsx | 2 +- src/ChatItem/styles.ts | 11 ++--------- src/RecentChat/styles.tsx | 5 ++++- src/commonComponents/SideMenuItem/index.tsx | 6 +++--- src/commonComponents/SideMenuItem/styles.ts | 18 ++++++++++++++++-- 6 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/ChatHome/index.tsx b/src/ChatHome/index.tsx index debbb0ce5..8cf9d6ef9 100644 --- a/src/ChatHome/index.tsx +++ b/src/ChatHome/index.tsx @@ -11,6 +11,7 @@ import { ChatHomeContainer } from './styles'; const channelRepo = new ChannelRepository(); +// TODO add onCreateGroupChat const ChatHome = () => { const [currentChannelId, setCurrenChannelId] = useState(null); diff --git a/src/ChatItem/index.tsx b/src/ChatItem/index.tsx index 6c67baa94..c800294f2 100644 --- a/src/ChatItem/index.tsx +++ b/src/ChatItem/index.tsx @@ -5,7 +5,7 @@ import { customizableComponent } from '../hoks/customization'; import { Avatar, ChatItemContainer, UnreadCount } from './styles'; const ChatItem = ({ channel, selected, onSelect }) => ( - onSelect(channel.channelId)} selected={selected}> + onSelect(channel.channelId)} active={selected}> {channel.channelId} {!!channel.unreadCount && {channel.unreadCount}} diff --git a/src/ChatItem/styles.ts b/src/ChatItem/styles.ts index e6febd02f..cac74508a 100644 --- a/src/ChatItem/styles.ts +++ b/src/ChatItem/styles.ts @@ -1,15 +1,8 @@ import styled from 'styled-components'; +import SideMenuItem from '../commonComponents/SideMenuItem'; import UiKitAvatar from '../Avatar'; -export const ChatItemContainer = styled.div` - background-color: white; - display: flex; - align-items: center; - padding: 0; - ${({ selected }) => selected && 'border-left: 1px solid rgba(41, 203, 114, 0.74);'} - cursor: pointer; - margin-top: 20px; -`; +export const ChatItemContainer = styled(SideMenuItem)``; export const Avatar = styled(UiKitAvatar)` margin-right: 8px; diff --git a/src/RecentChat/styles.tsx b/src/RecentChat/styles.tsx index 5356cd721..886dd43f0 100644 --- a/src/RecentChat/styles.tsx +++ b/src/RecentChat/styles.tsx @@ -23,6 +23,8 @@ export const CreateNewChatIcon = styled(FaIcon).attrs({ icon: faCommentAltPlus } export const RecentChatListHeader = styled.div` display: flex; + padding-left: 8px; + margin-bottom: 5px; `; export const RecentChatListContainer = styled.div` @@ -30,7 +32,8 @@ export const RecentChatListContainer = styled.div` border: 1px solid #e6e6e6; width: 280px; overflow: auto; - padding: 28px 16px; + padding: 28px 16px 5px 8px; + flex-shrink: 0; `; diff --git a/src/commonComponents/SideMenuItem/index.tsx b/src/commonComponents/SideMenuItem/index.tsx index d2e1e4cb3..2070022f9 100644 --- a/src/commonComponents/SideMenuItem/index.tsx +++ b/src/commonComponents/SideMenuItem/index.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { IconWrapper, SideMenuItemContainer } from './styles'; -const SideMenuItem = ({ icon, children, ...props }) => ( - - {icon && {icon}} +const SideMenuItem = ({ icon, children, active, className, onClick }) => ( + + {icon && {icon}} {children} ); diff --git a/src/commonComponents/SideMenuItem/styles.ts b/src/commonComponents/SideMenuItem/styles.ts index 595f54a5a..f12bc6ec6 100644 --- a/src/commonComponents/SideMenuItem/styles.ts +++ b/src/commonComponents/SideMenuItem/styles.ts @@ -14,16 +14,30 @@ export const SideMenuItemContainer = styled(SecondaryButton)` &:disabled { color: #abaeba; } - ${({ active, theme }) => active && `color: ${theme.color.primary1};`} + ${({ active, theme }) => + active && + ` + background: #F1F5FE; + color: ${theme.color.primary1}; + `} `; export const IconWrapper = styled.div` width: 40px; height: 40px; - background: #ebecef; border-radius: 4px; display: flex; align-items: center; justify-content: center; margin-right: 8px; + ${({ active, theme }) => + active + ? ` + background: #1054DE; + color: white; + ` + : ` + background: #ebecef; + color: #898e9e; + `} `; From 422034a2ca0e52fe9bef6fed3a4899d7913bf704 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 20:05:50 +0700 Subject: [PATCH 033/740] limit images and files number, make post author variable, add post as community --- src/PostCompose/index.tsx | 95 ++++++++++++++++++++++++++++++--------- src/PostCompose/styles.ts | 77 +++++++++++++++++++++++++++---- 2 files changed, 143 insertions(+), 29 deletions(-) diff --git a/src/PostCompose/index.tsx b/src/PostCompose/index.tsx index e15b91519..142afaf4d 100644 --- a/src/PostCompose/index.tsx +++ b/src/PostCompose/index.tsx @@ -11,12 +11,19 @@ import { PostComposeTextareaWrapper, ImagePostIcon, FilePostIcon, - ActionsBar, + Footer, + FooterActionBar, PostContainer, PostButton, Avatar, + PostAsCommunityContainer, + Checkbox, + Caption, } from './styles'; +const MAX_IMAGES = 10; +const MAX_FILES = 10; + const testFiles = [ { filename: 'text.txt', @@ -143,19 +150,47 @@ const testImages = [ }, ]; -const PostComposeBar = ({ onSubmit, className }) => { - const [text, setText] = useState(''); - const [files, setFiles] = useState([]); - const [images, setImages] = useState([]); - const [isCommunityPost, setIsCommunityPost] = useState(false); +const PostAsCommunity = ({ value, onChange }) => ( + + onChange(e.target.checked)} /> +
+ Post as community + Enable this will publish the post on behalf of community account +
+
+); + +const isIdenticalAuthor = (a, b) => + (!!a.userId && a.userId == b.userId) || (!!a.communityId && a.communityId == b.communityId); + +const PostComposeBar = ({ + user = { userId: 1, name: 'John' }, + community = { communityId: 33, name: 'Harry Potter Fans' }, + communities, + inGlobalFeed, + edit, + post = {}, + onSubmit, + onSave, + className, +}) => { + const [author, setAuthor] = useState(user); + const [text, setText] = useState(post.text || ''); + const [files, setFiles] = useState(post.files || []); + const [images, setImages] = useState(post.images || []); + + const isEmpty = text.trim().length === 0 && files.length === 0 && images.length === 0; - const isEmpty = text.length === 0 && files.length === 0 && images.length === 0; + const isCommunityPost = isIdenticalAuthor(author, community); + + const setIsCommunityPost = shouldBeCommunityPost => + setAuthor(shouldBeCommunityPost ? community : user); const createPost = () => { if (isEmpty) return; onSubmit({ id: Date.now(), - author: { name: 'John' }, + author, text, files, images, @@ -165,6 +200,16 @@ const PostComposeBar = ({ onSubmit, className }) => { setImages([]); }; + const updatePost = () => { + if (isEmpty) return; + onSave({ + ...post, + text, + files, + images, + }); + }; + const addImage = () => { const image = testImages[images.length % testImages.length]; setImages([...images, { id: Date.now(), ...image }]); @@ -183,28 +228,38 @@ const PostComposeBar = ({ onSubmit, className }) => { setImages(images.filter(({ id }) => id !== image.id)); }; + const canUploadImage = files.length === 0 && images.length <= MAX_IMAGES; + const canUploadFile = images.length === 0 && files.length <= MAX_FILES; + return ( - + + {!edit && + /* (inGlobalFeed ? : ) */ + } - - + setText(e.target.value)} /> - {!!files.length && } + {!!files.length && } {!!images.length && } +
+ {!edit && !!community && ( + + )} + + + + + {edit ? 'Save' : 'Post'} + + +
- - - - - Post - -
); }; diff --git a/src/PostCompose/styles.ts b/src/PostCompose/styles.ts index 8939df0fc..f1411831f 100644 --- a/src/PostCompose/styles.ts +++ b/src/PostCompose/styles.ts @@ -5,25 +5,37 @@ import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; import { PrimaryButton } from '../commonComponents/Button'; import UIAvatar from '../Avatar'; +// TODO add icon button export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` font-size: 18px; cursor: pointer; margin-right: 20px; - color: #17181c; + color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; `; export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` font-size: 18px; margin-right: 12px; cursor: pointer; - color: #17181c; + color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; `; -export const PostComposeContainer = styled.div` +const postComposeEditStyle = ` + width: 520px; + padding: 0; + border: none; +`; + +const postComposeStyle = ` width: 560px; padding: 16px 20px 12px 16px; - background: #ffffff; border: 1px solid #edeef2; +`; + +export const PostComposeContainer = styled.div` + ${({ edit }) => (edit ? postComposeEditStyle : postComposeStyle)} + display: flex; + background: #ffffff; border-radius: 4px; `; @@ -35,22 +47,47 @@ export const PostComposeTextarea = styled(TextareaAutosize).attrs({ rows: 1, max resize: none; `; +const postComposeTextareaWrapperEditStyle = ` + border: none; + padding: 20px 16px; +`; + +const postComposeTextareaWrapperStyle = ` + border: 1px solid #e3e4e8; + padding: 10px 12px; + &:focus-within { + border: 1px solid #1054de; + } +`; + export const PostComposeTextareaWrapper = styled.div` + ${({ edit }) => (edit ? postComposeTextareaWrapperEditStyle : postComposeTextareaWrapperStyle)} display: flex; flex-direction: column; - padding: 10px 12px; flex-grow: 1; border-radius: 4px; - border: 1px solid #e3e4e8; `; -export const ActionsBar = styled.div` - margin-top: 12px; +const footerEditStyle = ` + border-top: 1px solid #EBECEF; + padding: 12px 16px; +`; + +const footerStyle = ` + padding-top: 12px; +`; + +export const Footer = styled.div` + ${({ edit }) => (edit ? footerEditStyle : footerStyle)} +`; + +export const FooterActionBar = styled.div` display: flex; align-items: center; `; + export const PostContainer = styled.div` - display: flex; + flex-grow: 1; `; export const PostButton = styled(PrimaryButton)` @@ -61,3 +98,25 @@ export const PostButton = styled(PrimaryButton)` export const Avatar = styled(UIAvatar)` margin-right: 8px; `; + +export const PostAsCommunityContainer = styled.div` + display: flex; + border-radius: 4px; + background: #ebecef; + padding: 10px; + margin-bottom: 12px; + ${({ theme }) => theme.typography.captionBold} +`; + +export const Checkbox = styled.input.attrs({ + type: 'checkbox', +})` + margin-right: 10px; + width: 18px; + height: 18px; +`; + +export const Caption = styled.div` + ${({ theme }) => theme.typography.caption} + color: #636878; +`; From 3bd2cb81e34a2076a7035bd596cfa16323b0373e Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 20:12:59 +0700 Subject: [PATCH 034/740] restyle community page(change header and move community info on right hand side) --- src/Community/index.tsx | 20 ++++++++-- src/CommunityAbout/index.tsx | 19 --------- src/CommunityAbout/styles.tsx | 39 ------------------ src/CommunityHeader/index.tsx | 33 +++++++-------- src/CommunityHeader/styles.ts | 19 --------- src/CommunityInformation/index.tsx | 42 +++++++++++++++++++ src/CommunityInformation/styles.tsx | 62 +++++++++++++++++++++++++++++ src/EmptyFeed/index.tsx | 13 ++++++ src/EmptyFeed/styles.ts | 20 ++++++++++ 9 files changed, 167 insertions(+), 100 deletions(-) delete mode 100644 src/CommunityAbout/index.tsx delete mode 100644 src/CommunityAbout/styles.tsx create mode 100644 src/CommunityInformation/index.tsx create mode 100644 src/CommunityInformation/styles.tsx create mode 100644 src/EmptyFeed/index.tsx create mode 100644 src/EmptyFeed/styles.ts diff --git a/src/Community/index.tsx b/src/Community/index.tsx index 7bf5217d8..50856817b 100644 --- a/src/Community/index.tsx +++ b/src/Community/index.tsx @@ -5,7 +5,8 @@ import { customizableComponent } from '../hoks/customization'; import withSDK from '../hoks/withSDK'; import useLiveObject from '../hooks/useLiveObject'; import SideMenu from '../SideMenu'; -import CommunityAbout from '../CommunityAbout'; +import CommunityInformation from '../CommunityInformation'; +import EmptyFeed from '../EmptyFeed'; import { CommunityContainer, @@ -28,12 +29,13 @@ const Community = ({ client }) => { // textPostCreator.text('foobar'); // textPostCreator.post().then(res => console.log(res)); + const [posts, setPosts] = useState([ { id: 1, author: { name: 'John' }, text: - 'text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n text\n', + 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', }, { id: 2, @@ -43,6 +45,10 @@ const Community = ({ client }) => { ]); const addPost = newPost => setPosts([newPost, ...posts]); + const removePost = postId => setPosts(posts.filter(({ id }) => id !== postId)); + + const editPost = updatedPost => + setPosts(posts.map(post => (post.id === updatedPost.id ? updatedPost : post))); return ( @@ -52,11 +58,17 @@ const Community = ({ client }) => { + {posts.length === 0 && } {posts.map(post => ( - + editPost(updatedPost)} + onDelete={() => removePost(post.id)} + /> ))} - + diff --git a/src/CommunityAbout/index.tsx b/src/CommunityAbout/index.tsx deleted file mode 100644 index f23f57872..000000000 --- a/src/CommunityAbout/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../hoks/customization'; - -import { Container, Header, Footer, Content, RightIcon } from './styles'; - -const CommunityAbout = ({ onChannelClick, selectedChannelId }) => ( - -
About
- - Take your place in the magical universe of Harry Poter. Everyone's welcome and feel free to - join! - -
- View all -
-
-); - -export default customizableComponent('CommunityAbout')(CommunityAbout); diff --git a/src/CommunityAbout/styles.tsx b/src/CommunityAbout/styles.tsx deleted file mode 100644 index 775487e39..000000000 --- a/src/CommunityAbout/styles.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; -import { SecondaryButton } from '../commonComponents/Button'; - -import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faChevronRight } from '@fortawesome/pro-regular-svg-icons'; - -import UiSideMenuItem from '../commonComponents/SideMenuItem'; - -export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` - font-size: 16px; -`; - -export const Container = styled.div` - border: 1px solid #edeef2; - border-radius: 4px; - background: #fff; - max-width: 330px; - flex-shrink: 1; - align-self: flex-start; -`; - -export const Content = styled.div` - border-top: 1px solid #e3e4e8; - border-bottom: 1px solid #e3e4e8; - overflow-y: auto; - padding: 16px; -`; - -export const Header = styled.div` - ${({ theme }) => theme.typography.title} - padding: 16px; -`; - -export const Footer = styled(SecondaryButton)` - width: 100%; - padding: 14px; - border-radius: 0; -`; diff --git a/src/CommunityHeader/index.tsx b/src/CommunityHeader/index.tsx index 0779f8504..51efa7bdd 100644 --- a/src/CommunityHeader/index.tsx +++ b/src/CommunityHeader/index.tsx @@ -31,27 +31,22 @@ const ChatButton = () => ( ); const CommunityHeader = ({ className }) => { - const private = true; - const name = 'Harry Poter Fans'; - const postsCount = 345; - const membersCount = 4501; - return ( - - -
- {private && } - {name} -
- {toHumanString(postsCount)} posts{' '} - {toHumanString(membersCount)} members -
-
- - - -
+ {/* */} + {/* */} + {/*
*/} + {/* {private && } */} + {/* {name} */} + {/*
*/} + {/* {toHumanString(postsCount)} posts{' '} */} + {/* {toHumanString(membersCount)} members */} + {/*
*/} + {/*
*/} + {/* */} + {/* */} + {/* */} + {/*
*/} Timeline About diff --git a/src/CommunityHeader/styles.ts b/src/CommunityHeader/styles.ts index 9057209ce..2049cc375 100644 --- a/src/CommunityHeader/styles.ts +++ b/src/CommunityHeader/styles.ts @@ -30,24 +30,5 @@ export const CommunityWrapper = styled.div` `; export const Tabs = styled.div` - border-top: 1px solid #f7f7f8; padding: 0 16px; `; - -export const Avatar = styled(UiAvatar).attrs({ - size: 'big', -})` - margin-right: 12px; -`; - -export const CommunityName = styled.span` - ${({ theme }) => theme.typography.headline} -`; - -export const Count = styled.span` - ${({ theme }) => theme.typography.bodyBold} -`; - -export const Buttons = styled.div` - margin-left: auto; -`; diff --git a/src/CommunityInformation/index.tsx b/src/CommunityInformation/index.tsx new file mode 100644 index 000000000..30e389105 --- /dev/null +++ b/src/CommunityInformation/index.tsx @@ -0,0 +1,42 @@ +import React, { useState, useEffect } from 'react'; +import { customizableComponent } from '../hoks/customization'; +import Options from '../commonComponents/Options'; + +import { Avatar, Container, CommunityName, Header, Footer, Content, RightIcon } from './styles'; + +const testCommunity = { + private: true, + name: 'Harry Poter Fans', + postsCount: 345, + membersCount: 4501, +}; + +const CommunityInformation = ({ community = testCommunity, onChannelClick, selectedChannelId }) => { + const { private, name, postsCount, membersCount } = community; + + const todo = () => console.log('TODO'); + + return ( + +
+ + +
+ {name} + {/* */} + {/* Take your place in the magical universe of Harry Poter. Everyone's welcome and feel free to */} + {/* join! */} + {/* */} + {/*
*/} + {/* View all */} + {/*
*/} +
+ ); +}; + +export default customizableComponent('CommunityInformation')(CommunityInformation); diff --git a/src/CommunityInformation/styles.tsx b/src/CommunityInformation/styles.tsx new file mode 100644 index 000000000..8f6b06227 --- /dev/null +++ b/src/CommunityInformation/styles.tsx @@ -0,0 +1,62 @@ +import React from 'react'; +import styled from 'styled-components'; +import { SecondaryButton } from '../commonComponents/Button'; +import UiAvatar from '../Avatar'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faChevronRight } from '@fortawesome/pro-regular-svg-icons'; + +import UiSideMenuItem from '../commonComponents/SideMenuItem'; + +export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` + font-size: 16px; +`; + +export const Container = styled.div` + border: 1px solid #edeef2; + border-radius: 4px; + background: #fff; + max-width: 330px; + flex-shrink: 1; + align-self: flex-start; + padding: 16px; +`; + +// export const Content = styled.div` +// border-top: 1px solid #e3e4e8; +// border-bottom: 1px solid #e3e4e8; +// overflow-y: auto; +// padding: 16px; +// `; + +export const Header = styled.div` + display: flex; + align-items: flex-start; + // ${({ theme }) => theme.typography.title} + // padding: 16px; +`; + +// export const Footer = styled(SecondaryButton)` +// width: 100%; +// padding: 14px; +// border-radius: 0; +// `; + +export const Avatar = styled(UiAvatar).attrs({ + size: 'big', +})` + margin-right: 12px; +`; + +export const CommunityName = styled.span` + ${({ theme }) => theme.typography.headline} + margin-top: 10px; +`; + +export const Count = styled.span` + ${({ theme }) => theme.typography.bodyBold} +`; + +export const Buttons = styled.div` + margin-left: auto; +`; diff --git a/src/EmptyFeed/index.tsx b/src/EmptyFeed/index.tsx new file mode 100644 index 000000000..22acc4d50 --- /dev/null +++ b/src/EmptyFeed/index.tsx @@ -0,0 +1,13 @@ +import React, { useState, useEffect } from 'react'; +import { customizableComponent } from '../hoks/customization'; + +import { EmptyFeedContainer, FeedIcon } from './styles'; + +const EmptyFeed = ({ className }) => ( + + + Your feed is empty. Add you first post + +); + +export default customizableComponent('EmptyFeed')(EmptyFeed); diff --git a/src/EmptyFeed/styles.ts b/src/EmptyFeed/styles.ts new file mode 100644 index 000000000..2fc8a0579 --- /dev/null +++ b/src/EmptyFeed/styles.ts @@ -0,0 +1,20 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faNewspaper } from '@fortawesome/pro-light-svg-icons'; + +export const FeedIcon = styled(FaIcon).attrs({ icon: faNewspaper })` + font-size: 48px; + margin: 10px; + cursor: pointer; +`; + +export const EmptyFeedContainer = styled.div` + color: #a5a9b5; + ${({ theme }) => theme.typography.bodyBold} + width: 560px; + padding-top: 90px; + display: flex; + flex-direction: column; + align-items: center; +`; From 17b1a278c93c7bb5d401fe00f6df072712c6a1ad Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 10 Aug 2020 20:13:57 +0700 Subject: [PATCH 035/740] use linkify from common components --- src/Message/Options.tsx | 3 +-- src/Message/index.tsx | 5 ++++- src/Message/styles.tsx | 10 ---------- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/Message/Options.tsx b/src/Message/Options.tsx index 3621ff9b6..afe83cca6 100644 --- a/src/Message/Options.tsx +++ b/src/Message/Options.tsx @@ -7,11 +7,10 @@ import { } from 'eko-sdk'; import Popover from '../commonComponents/Popover'; +import Menu, { MenuItem } from '../commonComponents/Menu'; import { MessageOptionsIcon, - Menu, - MenuItem, SaveIcon, DeleteIcon, CloseIcon, diff --git a/src/Message/index.tsx b/src/Message/index.tsx index e68ff1f71..4273de836 100644 --- a/src/Message/index.tsx +++ b/src/Message/index.tsx @@ -1,8 +1,11 @@ import React, { useState } from 'react'; import { FormattedTime } from 'react-intl'; -import Linkify from 'react-linkify'; + import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; + +import Linkify from '../commonComponents/Linkify'; + import Options from './Options'; import { diff --git a/src/Message/styles.tsx b/src/Message/styles.tsx index c1dfd1b0b..99b519512 100644 --- a/src/Message/styles.tsx +++ b/src/Message/styles.tsx @@ -48,16 +48,6 @@ export const MessageOptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisV })` cursor: pointer; `; -export const Menu = styled.div``; - -export const MenuItem = styled.div` - padding: 8px 12px; - cursor: pointer; - &:hover { - background: #f2f2f4; - } -`; - export const Avatar = styled(UiKitAvatar)` margin-right: auto; `; From 9bb98498de652a508187686495451742e110f12f Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Tue, 11 Aug 2020 17:26:29 +0700 Subject: [PATCH 036/740] add image gallery --- src/Community/index.tsx | 29 +++++++++++++++ src/ImageGallery/index.tsx | 59 ++++++++++++++++++++++++++++++ src/ImageGallery/styles.ts | 73 ++++++++++++++++++++++++++++++++++++++ src/Images/Image.tsx | 22 +++++++++--- src/Images/index.tsx | 44 +++++++++++++++++++---- src/Images/styles.ts | 17 +++++++++ src/Post/index.tsx | 2 +- src/PostCompose/index.tsx | 9 +++-- 8 files changed, 240 insertions(+), 15 deletions(-) create mode 100644 src/ImageGallery/index.tsx create mode 100644 src/ImageGallery/styles.ts diff --git a/src/Community/index.tsx b/src/Community/index.tsx index 50856817b..a41e1af82 100644 --- a/src/Community/index.tsx +++ b/src/Community/index.tsx @@ -36,6 +36,35 @@ const Community = ({ client }) => { author: { name: 'John' }, text: 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', + images: [ + { + id: 1, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 2, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + { + id: 3, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 4, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + { + id: 5, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 6, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + ], }, { id: 2, diff --git a/src/ImageGallery/index.tsx b/src/ImageGallery/index.tsx new file mode 100644 index 000000000..5cf02377b --- /dev/null +++ b/src/ImageGallery/index.tsx @@ -0,0 +1,59 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import Image from './Image'; + +import { + ImageGalleryContainer, + ImageContainer, + Counter, + CloseIcon, + LeftIcon, + RightIcon, +} from './styles'; + +const useKeyboardNavigation = (prev, next, onClose) => { + useEffect( + () => { + const listener = e => { + if (e.key === 'ArrowRight') next(); + if (e.key === 'ArrowLeft') prev(); + if (e.key === 'Escape') onClose(); + }; + document.addEventListener('keydown', listener); + return () => document.removeEventListener('keydown', listener); + }, + [prev, next, onClose], + ); +}; + +const ImageGallery = ({ initialImageIndex, images = [], onClose }) => { + const [currentIndex, setCurrentIndex] = useState(initialImageIndex); + + const image = images[currentIndex]; + + const isFirst = currentIndex === 0; + const isLast = currentIndex === images.length - 1; + + const next = () => !isLast && setCurrentIndex(currentIndex + 1); + const prev = () => !isFirst && setCurrentIndex(currentIndex - 1); + + useKeyboardNavigation(prev, next, onClose); + + return ( + +
{!isFirst && }
+ + + {currentIndex + 1} / {images.length} + + + +
{!isLast && }
+ +
+ ); +}; + +export default customizableComponent('ImageGallery')(ImageGallery); diff --git a/src/ImageGallery/styles.ts b/src/ImageGallery/styles.ts new file mode 100644 index 000000000..8f5c469fe --- /dev/null +++ b/src/ImageGallery/styles.ts @@ -0,0 +1,73 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faTimes, faChevronRight, faChevronLeft } from '@fortawesome/pro-regular-svg-icons'; + +export const ImageContainer = styled.div` + position: relative; + overflow: hidden; + height: 100%; + img { + object-fit: contain; + width: 100%; + height: 100%; + } +`; + +export const ImageGalleryContainer = styled.div` + display: grid; + grid-gap: 30px; + grid-template-columns: 12px auto 12px; + align-items: center; + width: 100%; + overflow: hidden; + + z-index: 9999; + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + background: rgba(23, 24, 28, 0.8); + color: white; + + padding: 60px; + user-select: none; + + animation-duration: 0.3s; + animation-name: appear; + @keyframes appear { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } +`; + +export const Counter = styled.div` + text-align: center; + padding-bottom: 10px; + ${({ theme }) => theme.typography.headline} +`; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + position: absolute; + top: 60px; + right: 60px; + font-size: 24px; + cursor: pointer; +`; + +export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` + font-size: 24px; + cursor: pointer; + justify-self: right; +`; + +export const LeftIcon = styled(FaIcon).attrs({ icon: faChevronLeft })` + font-size: 24px; + cursor: pointer; +`; diff --git a/src/Images/Image.tsx b/src/Images/Image.tsx index 2612f7c59..6313ef94d 100644 --- a/src/Images/Image.tsx +++ b/src/Images/Image.tsx @@ -1,9 +1,15 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import { ImageContainer, Content, ProgressBar, RemoveIcon } from './styles'; +import { + ImageContainer, + Content, + ProgressBar, + RemoveIcon, + NumberOfHiddenImagesOverlay, +} from './styles'; -const Image = ({ image, onRemove }) => { +const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { // simulate progress animation const [progress, setProgress] = useState(0); useEffect( @@ -17,11 +23,19 @@ const Image = ({ image, onRemove }) => { [progress], ); + const removeImage = e => { + e.stopPropagation(); + onRemove(image); + }; + return ( - + + {numberOfHiddenImages > 0 && ( + + {numberOfHiddenImages} + )} - {!!onRemove && onRemove(image)} />} + {!!onRemove && } ); }; diff --git a/src/Images/index.tsx b/src/Images/index.tsx index 88292761d..a9902e35b 100644 --- a/src/Images/index.tsx +++ b/src/Images/index.tsx @@ -3,15 +3,45 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; import Image from './Image'; +import ImageGallery from '../ImageGallery'; import { ImagesContainer } from './styles'; -const Images = ({ images = [], onRemove }) => ( - - {images.map((image, i) => ( - - ))} - -); +const MAX_IMAGES_IN_PREVIEW = 4; + +const Images = ({ editing, images = [], onRemove }) => { + const [selectedImageIndex, setSelectedImageIndex] = useState(null); + + const closeGallery = () => setSelectedImageIndex(null); + + const previewImages = editing ? images : images.slice(0, MAX_IMAGES_IN_PREVIEW); + + const numberOfHiddenImages = images.length - previewImages.length; + + return ( + + {previewImages.map((image, i) => { + const isLast = i === previewImages.length - 1; + return ( + !editing && setSelectedImageIndex(i)} + onRemove={onRemove} + /> + ); + })} + {Number.isInteger(selectedImageIndex) && ( + + )} + + ); +}; export default customizableComponent('Images')(Images); diff --git a/src/Images/styles.ts b/src/Images/styles.ts index 17ed777d9..077e7dafb 100644 --- a/src/Images/styles.ts +++ b/src/Images/styles.ts @@ -19,6 +19,7 @@ export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` export const ImageContainer = styled.div` position: relative; overflow: hidden; + ${({ editing }) => !editing && 'cursor: pointer;'} img { object-fit: cover; width: 100%; @@ -92,3 +93,19 @@ export const ProgressBar = styled.div` opacity: 0.3; z-index: 1; `; + +export const NumberOfHiddenImagesOverlay = styled.div` + position: absolute; + right: 0; + top: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.4); + width: 100%; + z-index: 2; + color: white; + display: flex; + align-items: center; + justify-content: center; + ${({ theme }) => theme.typography.headline} + font-size: 32px; +`; diff --git a/src/Post/index.tsx b/src/Post/index.tsx index dd4aeaa1b..fa063734e 100644 --- a/src/Post/index.tsx +++ b/src/Post/index.tsx @@ -101,7 +101,7 @@ const Post = ({ )}
- +
); diff --git a/src/PostCompose/index.tsx b/src/PostCompose/index.tsx index 142afaf4d..013d1e76a 100644 --- a/src/PostCompose/index.tsx +++ b/src/PostCompose/index.tsx @@ -148,6 +148,9 @@ const testImages = [ url: 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', }, + { + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, ]; const PostAsCommunity = ({ value, onChange }) => ( @@ -228,8 +231,8 @@ const PostComposeBar = ({ setImages(images.filter(({ id }) => id !== image.id)); }; - const canUploadImage = files.length === 0 && images.length <= MAX_IMAGES; - const canUploadFile = images.length === 0 && files.length <= MAX_FILES; + const canUploadImage = files.length === 0 && images.length < MAX_IMAGES; + const canUploadFile = images.length === 0 && files.length < MAX_FILES; return ( @@ -245,7 +248,7 @@ const PostComposeBar = ({ onChange={e => setText(e.target.value)} /> {!!files.length && } - {!!images.length && } + {!!images.length && }
{!edit && !!community && ( From bbd2e1442fabff924d2a63a2eb261a410201bd8b Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Tue, 18 Aug 2020 16:16:21 +0700 Subject: [PATCH 037/740] move from ts to js, change bundler from rollup to webpack --- .babelrc | 3 + .npmignore | 11 + .storybook/main.js | 17 +- CONTRIBUTE.md | 61 + README.md | 63 +- jest.config.js | 16 - jest.setup.ts | 1 - package-lock.json | 2396 +++++++++++++++-- package.json | 26 +- rollup.config.js | 29 - src/Avatar/{index.tsx => index.js} | 0 src/Avatar/{styles.ts => styles.js} | 0 src/Chat/{index.tsx => index.js} | 0 src/Chat/{styles.ts => styles.js} | 0 src/ChatDetails/{index.tsx => index.js} | 0 src/ChatDetails/{styles.ts => styles.js} | 0 src/ChatHeader/{index.tsx => index.js} | 0 src/ChatHeader/{styles.ts => styles.js} | 0 ...atHome.stories.tsx => ChatHome.stories.js} | 0 src/ChatHome/{index.tsx => index.js} | 0 src/ChatHome/{styles.ts => styles.js} | 0 src/ChatItem/{index.tsx => index.js} | 0 src/ChatItem/{styles.ts => styles.js} | 0 src/Comment/index.js | 72 + src/Comment/styles.js | 69 + src/CommentComposeBar/index.js | 41 + src/CommentComposeBar/styles.js | 32 + ...unity.stories.tsx => Community.stories.js} | 0 src/Community/{index.tsx => index.js} | 5 +- src/Community/{styles.ts => styles.js} | 0 src/CommunityHeader/{index.tsx => index.js} | 0 src/CommunityHeader/{styles.ts => styles.js} | 0 .../{index.tsx => index.js} | 4 +- .../{styles.tsx => styles.js} | 0 src/CommunityItem/{index.tsx => index.js} | 2 +- src/CommunityItem/{styles.ts => styles.js} | 0 src/EmptyFeed/{index.tsx => index.js} | 0 src/EmptyFeed/{styles.ts => styles.js} | 0 src/EngagementBar/index.js | 88 + src/EngagementBar/index.tsx | 29 - src/EngagementBar/{styles.ts => styles.js} | 2 +- src/Files/{File.tsx => File.js} | 0 src/Files/{FileIcon.tsx => FileIcon.js} | 0 src/Files/{index.tsx => index.js} | 2 + src/Files/{styles.ts => styles.js} | 0 src/ImageGallery/{index.tsx => index.js} | 2 - src/ImageGallery/{styles.ts => styles.js} | 0 src/Images/{Image.tsx => Image.js} | 0 src/Images/{index.tsx => index.js} | 0 src/Images/{styles.ts => styles.js} | 0 ...IncomingMessage.tsx => IncomingMessage.js} | 0 src/Message/{Options.tsx => Options.js} | 0 ...OutgoingMessage.tsx => OutgoingMessage.js} | 0 src/Message/{index.tsx => index.js} | 0 src/Message/{styles.tsx => styles.js} | 0 src/MessageComposeBar/{index.tsx => index.js} | 0 .../{styles.ts => styles.js} | 0 src/MessageList/{index.tsx => index.js} | 0 src/MessageList/{styles.ts => styles.js} | 0 src/Post/Options.tsx | 34 - .../{Post.stories.tsx => Post.stories.js} | 0 src/Post/{index.tsx => index.js} | 2 +- src/Post/{styles.ts => styles.js} | 0 src/PostCompose/{index.tsx => index.js} | 0 src/PostCompose/{styles.ts => styles.js} | 0 .../{CreateNewChat.tsx => CreateNewChat.js} | 0 src/RecentChat/{index.tsx => index.js} | 0 src/RecentChat/{styles.tsx => styles.js} | 0 src/SideMenu/{index.tsx => index.js} | 2 +- src/SideMenu/{styles.tsx => styles.js} | 0 src/TestComponent/TestComponent.stories.tsx | 10 - src/TestComponent/TestComponent.test.tsx | 34 - src/TestComponent/TestComponent.tsx | 31 - src/TestComponent/TestComponent.types.ts | 3 - .../{GlobalStyle.ts => GlobalStyle.js} | 0 .../{GlobalTheme.ts => GlobalTheme.js} | 0 src/UiKitProvider/{index.tsx => index.js} | 0 .../{Button.stories.tsx => Button.stories.js} | 0 .../Button/{index.tsx => index.js} | 0 .../Button/{styles.ts => styles.js} | 0 .../Confirm/{index.tsx => index.js} | 0 .../Confirm/{styles.ts => styles.js} | 0 .../Linkify/{index.tsx => index.js} | 0 .../Linkify/{styles.ts => styles.js} | 0 .../Menu/{index.tsx => index.js} | 0 .../Menu/{styles.tsx => styles.js} | 0 .../Modal/{index.tsx => index.js} | 0 .../Modal/{styles.ts => styles.js} | 0 .../Options/{index.tsx => index.js} | 0 .../Options/{styles.ts => styles.js} | 0 .../Popover/{index.tsx => index.js} | 0 .../Popover/{styles.tsx => styles.js} | 0 .../SideMenuItem/{index.tsx => index.js} | 0 .../SideMenuItem/{styles.ts => styles.js} | 0 .../Tab/{Tab.stories.tsx => Tab.stories.js} | 0 .../Tab/{index.tsx => index.js} | 0 .../Tab/{styles.ts => styles.js} | 0 .../{customization.tsx => customization.js} | 0 src/hoks/{withSdk.tsx => withSDK.js} | 0 .../{useLiveObject.ts => useLiveObject.js} | 0 ...iveObject.ts => usePaginatedLiveObject.js} | 0 src/index.js | 53 + src/index.ts | 7 - tsconfig.json | 23 - webpack.config.js | 35 + 105 files changed, 2727 insertions(+), 478 deletions(-) create mode 100644 .babelrc create mode 100644 .npmignore create mode 100644 CONTRIBUTE.md delete mode 100644 jest.config.js delete mode 100644 jest.setup.ts delete mode 100644 rollup.config.js rename src/Avatar/{index.tsx => index.js} (100%) rename src/Avatar/{styles.ts => styles.js} (100%) rename src/Chat/{index.tsx => index.js} (100%) rename src/Chat/{styles.ts => styles.js} (100%) rename src/ChatDetails/{index.tsx => index.js} (100%) rename src/ChatDetails/{styles.ts => styles.js} (100%) rename src/ChatHeader/{index.tsx => index.js} (100%) rename src/ChatHeader/{styles.ts => styles.js} (100%) rename src/ChatHome/{ChatHome.stories.tsx => ChatHome.stories.js} (100%) rename src/ChatHome/{index.tsx => index.js} (100%) rename src/ChatHome/{styles.ts => styles.js} (100%) rename src/ChatItem/{index.tsx => index.js} (100%) rename src/ChatItem/{styles.ts => styles.js} (100%) create mode 100644 src/Comment/index.js create mode 100644 src/Comment/styles.js create mode 100644 src/CommentComposeBar/index.js create mode 100644 src/CommentComposeBar/styles.js rename src/Community/{Community.stories.tsx => Community.stories.js} (100%) rename src/Community/{index.tsx => index.js} (94%) rename src/Community/{styles.ts => styles.js} (100%) rename src/CommunityHeader/{index.tsx => index.js} (100%) rename src/CommunityHeader/{styles.ts => styles.js} (100%) rename src/CommunityInformation/{index.tsx => index.js} (93%) rename src/CommunityInformation/{styles.tsx => styles.js} (100%) rename src/CommunityItem/{index.tsx => index.js} (93%) rename src/CommunityItem/{styles.ts => styles.js} (100%) rename src/EmptyFeed/{index.tsx => index.js} (100%) rename src/EmptyFeed/{styles.ts => styles.js} (100%) create mode 100644 src/EngagementBar/index.js delete mode 100644 src/EngagementBar/index.tsx rename src/EngagementBar/{styles.ts => styles.js} (97%) rename src/Files/{File.tsx => File.js} (100%) rename src/Files/{FileIcon.tsx => FileIcon.js} (100%) rename src/Files/{index.tsx => index.js} (95%) rename src/Files/{styles.ts => styles.js} (100%) rename src/ImageGallery/{index.tsx => index.js} (98%) rename src/ImageGallery/{styles.ts => styles.js} (100%) rename src/Images/{Image.tsx => Image.js} (100%) rename src/Images/{index.tsx => index.js} (100%) rename src/Images/{styles.ts => styles.js} (100%) rename src/Message/{IncomingMessage.tsx => IncomingMessage.js} (100%) rename src/Message/{Options.tsx => Options.js} (100%) rename src/Message/{OutgoingMessage.tsx => OutgoingMessage.js} (100%) rename src/Message/{index.tsx => index.js} (100%) rename src/Message/{styles.tsx => styles.js} (100%) rename src/MessageComposeBar/{index.tsx => index.js} (100%) rename src/MessageComposeBar/{styles.ts => styles.js} (100%) rename src/MessageList/{index.tsx => index.js} (100%) rename src/MessageList/{styles.ts => styles.js} (100%) delete mode 100644 src/Post/Options.tsx rename src/Post/{Post.stories.tsx => Post.stories.js} (100%) rename src/Post/{index.tsx => index.js} (98%) rename src/Post/{styles.ts => styles.js} (100%) rename src/PostCompose/{index.tsx => index.js} (100%) rename src/PostCompose/{styles.ts => styles.js} (100%) rename src/RecentChat/{CreateNewChat.tsx => CreateNewChat.js} (100%) rename src/RecentChat/{index.tsx => index.js} (100%) rename src/RecentChat/{styles.tsx => styles.js} (100%) rename src/SideMenu/{index.tsx => index.js} (96%) rename src/SideMenu/{styles.tsx => styles.js} (100%) delete mode 100644 src/TestComponent/TestComponent.stories.tsx delete mode 100644 src/TestComponent/TestComponent.test.tsx delete mode 100644 src/TestComponent/TestComponent.tsx delete mode 100644 src/TestComponent/TestComponent.types.ts rename src/UiKitProvider/{GlobalStyle.ts => GlobalStyle.js} (100%) rename src/UiKitProvider/{GlobalTheme.ts => GlobalTheme.js} (100%) rename src/UiKitProvider/{index.tsx => index.js} (100%) rename src/commonComponents/Button/{Button.stories.tsx => Button.stories.js} (100%) rename src/commonComponents/Button/{index.tsx => index.js} (100%) rename src/commonComponents/Button/{styles.ts => styles.js} (100%) rename src/commonComponents/Confirm/{index.tsx => index.js} (100%) rename src/commonComponents/Confirm/{styles.ts => styles.js} (100%) rename src/commonComponents/Linkify/{index.tsx => index.js} (100%) rename src/commonComponents/Linkify/{styles.ts => styles.js} (100%) rename src/commonComponents/Menu/{index.tsx => index.js} (100%) rename src/commonComponents/Menu/{styles.tsx => styles.js} (100%) rename src/commonComponents/Modal/{index.tsx => index.js} (100%) rename src/commonComponents/Modal/{styles.ts => styles.js} (100%) rename src/commonComponents/Options/{index.tsx => index.js} (100%) rename src/commonComponents/Options/{styles.ts => styles.js} (100%) rename src/commonComponents/Popover/{index.tsx => index.js} (100%) rename src/commonComponents/Popover/{styles.tsx => styles.js} (100%) rename src/commonComponents/SideMenuItem/{index.tsx => index.js} (100%) rename src/commonComponents/SideMenuItem/{styles.ts => styles.js} (100%) rename src/commonComponents/Tab/{Tab.stories.tsx => Tab.stories.js} (100%) rename src/commonComponents/Tab/{index.tsx => index.js} (100%) rename src/commonComponents/Tab/{styles.ts => styles.js} (100%) rename src/hoks/{customization.tsx => customization.js} (100%) rename src/hoks/{withSdk.tsx => withSDK.js} (100%) rename src/hooks/{useLiveObject.ts => useLiveObject.js} (100%) rename src/hooks/{usePaginatedLiveObject.ts => usePaginatedLiveObject.js} (100%) create mode 100644 src/index.js delete mode 100644 src/index.ts delete mode 100644 tsconfig.json create mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..0dce8c0af --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/env", "@babel/preset-react"] +} diff --git a/.npmignore b/.npmignore new file mode 100644 index 000000000..093943121 --- /dev/null +++ b/.npmignore @@ -0,0 +1,11 @@ +packaging +src +util +.storybook +.babelrc +.env +.npmrc +jest.config.js +webpack.config.js +build/report.html +CONTRIBUTE.md diff --git a/.storybook/main.js b/.storybook/main.js index c2e41bdb4..7368c291d 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -2,24 +2,11 @@ const path = require('path'); const webpack = require('webpack'); module.exports = { - stories: ['../src/**/*.stories.tsx'], + stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ addons: [], webpackFinal: async config => { - config.module.rules.push({ - test: /\.scss$/, - use: ['style-loader', 'css-loader', 'sass-loader'], - include: path.resolve(__dirname, '../'), - }); - - config.module.rules.push({ - test: /\.(ts|tsx)$/, - loader: require.resolve('babel-loader'), - options: { - presets: [['react-app', { flow: false, typescript: true }]], - }, - }); - config.resolve.extensions.push('.ts', '.tsx'); + config.resolve.extensions.push('.js'); config.plugins.push( // fix static storybook styling diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md new file mode 100644 index 000000000..41d2a9631 --- /dev/null +++ b/CONTRIBUTE.md @@ -0,0 +1,61 @@ +# EkoMessagingSDKUIKitWeb + +## Development + +### Testing + +``` +npm run test +``` + +### Building + +``` +npm run build +``` + +### Storybook + +To run a live-reload Storybook server on your local machine: + +``` +npm run storybook +``` + +To export your Storybook as static files: + +``` +npm run storybook:export +``` + +### Generating New Components + +``` +npm run generate YourComponentName +``` + +Add the component to `index.ts` exports if you want the library to export the component. + +## Publishing + +``` +npm publish +``` + +The `"prepublishOnly": "npm run build"` script in `package.json` will execute before publish occurs, ensuring the `build/` directory and the compiled component library exist. + + +## How to customize components + +### globally +``` + + + +``` + + +### per component +``` + +``` \ No newline at end of file diff --git a/README.md b/README.md index 41d2a9631..c53492c1a 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,4 @@ -# EkoMessagingSDKUIKitWeb +Installation +Add the ui kit to your repository via npm: npm install upstra-uikit --save. -## Development - -### Testing - -``` -npm run test -``` - -### Building - -``` -npm run build -``` - -### Storybook - -To run a live-reload Storybook server on your local machine: - -``` -npm run storybook -``` - -To export your Storybook as static files: - -``` -npm run storybook:export -``` - -### Generating New Components - -``` -npm run generate YourComponentName -``` - -Add the component to `index.ts` exports if you want the library to export the component. - -## Publishing - -``` -npm publish -``` - -The `"prepublishOnly": "npm run build"` script in `package.json` will execute before publish occurs, ensuring the `build/` directory and the compiled component library exist. - - -## How to customize components - -### globally -``` - - - -``` - - -### per component -``` - -``` \ No newline at end of file +Installing the web SDK requires you to use a javascript package manager such as npm or yarn. If your current build system does not use package managers, please contact us at developer@ekoapp.com. \ No newline at end of file diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index ccd649ca2..000000000 --- a/jest.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - roots: ["src"], - setupFilesAfterEnv: ["./jest.setup.ts"], - moduleFileExtensions: ["ts", "tsx", "js"], - testPathIgnorePatterns: ["node_modules/"], - transform: { - "^.+\\.tsx?$": "ts-jest" - }, - testMatch: ["**/*.test.(ts|tsx)"], - moduleNameMapper: { - // Mocks out all these file formats when tests are run. - "\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": - "identity-obj-proxy", - "\\.(css|less|scss|sass)$": "identity-obj-proxy" - } -}; diff --git a/jest.setup.ts b/jest.setup.ts deleted file mode 100644 index d0de870dc..000000000 --- a/jest.setup.ts +++ /dev/null @@ -1 +0,0 @@ -import "@testing-library/jest-dom"; diff --git a/package-lock.json b/package-lock.json index 4704e4225..618a2672a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "eko-ui-kit", + "name": "upstra-uikit", "version": "0.0.1", "lockfileVersion": 1, "requires": true, @@ -280,6 +280,34 @@ "@babel/types": "^7.10.1" } }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", + "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, "@babel/helper-split-export-declaration": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", @@ -376,6 +404,24 @@ "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", + "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, "@babel/plugin-proposal-json-strings": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", @@ -386,24 +432,67 @@ "@babel/plugin-syntax-json-strings": "^7.8.0" } }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", + "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz", - "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz", - "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-numeric-separator": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + } } }, "@babel/plugin-proposal-object-rest-spread": { @@ -428,23 +517,195 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz", - "integrity": "sha512-yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", + "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-proposal-private-methods": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz", - "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", + "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-proposal-unicode-property-regex": { @@ -467,12 +728,20 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", - "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-syntax-decorators": { @@ -493,6 +762,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-flow": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz", @@ -520,6 +798,23 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", @@ -834,12 +1129,20 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.3.tgz", - "integrity": "sha512-dOV44bnSW5KZ6kYF6xSHBth7TFiHHZReYXH/JH3XnFNV+soEL1F5d8JT7AJ3ZBncd19Qul7SN4YpBnyWOnQ8KA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", + "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.3" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-transform-react-jsx": { @@ -886,13 +1189,47 @@ } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.3.tgz", - "integrity": "sha512-n/fWYGqvTl7OLZs/QcWaKMFdADPvC3V6jYuEOpPyvz97onsW9TXn196fHnHW1ZgkO20/rxLOgKnEtN1q9jkgqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", + "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.3" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-regenerator": { @@ -984,12 +1321,20 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz", - "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-transform-unicode-regex": { @@ -1003,75 +1348,790 @@ } }, "@babel/preset-env": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.3.tgz", - "integrity": "sha512-jHaSUgiewTmly88bJtMHbOd1bJf2ocYxb5BWKSDQIP5tmgFuS/n0gl+nhSrYDhT33m0vPxp+rP8oYYgPgMNQlg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.10.3", - "@babel/helper-compilation-targets": "^7.10.2", - "@babel/helper-module-imports": "^7.10.3", - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/plugin-proposal-async-generator-functions": "^7.10.3", - "@babel/plugin-proposal-class-properties": "^7.10.1", - "@babel/plugin-proposal-dynamic-import": "^7.10.1", - "@babel/plugin-proposal-json-strings": "^7.10.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", - "@babel/plugin-proposal-numeric-separator": "^7.10.1", - "@babel/plugin-proposal-object-rest-spread": "^7.10.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.1", - "@babel/plugin-proposal-optional-chaining": "^7.10.3", - "@babel/plugin-proposal-private-methods": "^7.10.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.1", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.1", + "@babel/plugin-syntax-class-properties": "^7.10.4", "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.1", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.1", - "@babel/plugin-transform-arrow-functions": "^7.10.1", - "@babel/plugin-transform-async-to-generator": "^7.10.1", - "@babel/plugin-transform-block-scoped-functions": "^7.10.1", - "@babel/plugin-transform-block-scoping": "^7.10.1", - "@babel/plugin-transform-classes": "^7.10.3", - "@babel/plugin-transform-computed-properties": "^7.10.3", - "@babel/plugin-transform-destructuring": "^7.10.1", - "@babel/plugin-transform-dotall-regex": "^7.10.1", - "@babel/plugin-transform-duplicate-keys": "^7.10.1", - "@babel/plugin-transform-exponentiation-operator": "^7.10.1", - "@babel/plugin-transform-for-of": "^7.10.1", - "@babel/plugin-transform-function-name": "^7.10.1", - "@babel/plugin-transform-literals": "^7.10.1", - "@babel/plugin-transform-member-expression-literals": "^7.10.1", - "@babel/plugin-transform-modules-amd": "^7.10.1", - "@babel/plugin-transform-modules-commonjs": "^7.10.1", - "@babel/plugin-transform-modules-systemjs": "^7.10.3", - "@babel/plugin-transform-modules-umd": "^7.10.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.3", - "@babel/plugin-transform-new-target": "^7.10.1", - "@babel/plugin-transform-object-super": "^7.10.1", - "@babel/plugin-transform-parameters": "^7.10.1", - "@babel/plugin-transform-property-literals": "^7.10.1", - "@babel/plugin-transform-regenerator": "^7.10.3", - "@babel/plugin-transform-reserved-words": "^7.10.1", - "@babel/plugin-transform-shorthand-properties": "^7.10.1", - "@babel/plugin-transform-spread": "^7.10.1", - "@babel/plugin-transform-sticky-regex": "^7.10.1", - "@babel/plugin-transform-template-literals": "^7.10.3", - "@babel/plugin-transform-typeof-symbol": "^7.10.1", - "@babel/plugin-transform-unicode-escapes": "^7.10.1", - "@babel/plugin-transform-unicode-regex": "^7.10.1", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.3", + "@babel/types": "^7.11.0", "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", + "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "dev": true, + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", + "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", + "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", + "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-flow": { @@ -1098,18 +2158,134 @@ } }, "@babel/preset-react": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.1.tgz", - "integrity": "sha512-Rw0SxQ7VKhObmFjD/cUcKhPTtzpeviEFX1E6PgP+cYOhQ98icNqtINNFANlsdbQHrmeWnqdxA4Tmnl1jy5tp3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-transform-react-display-name": "^7.10.1", - "@babel/plugin-transform-react-jsx": "^7.10.1", - "@babel/plugin-transform-react-jsx-development": "^7.10.1", - "@babel/plugin-transform-react-jsx-self": "^7.10.1", - "@babel/plugin-transform-react-jsx-source": "^7.10.1", - "@babel/plugin-transform-react-pure-annotations": "^7.10.1" + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", + "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.10.4", + "@babel/plugin-transform-react-jsx": "^7.10.4", + "@babel/plugin-transform-react-jsx-development": "^7.10.4", + "@babel/plugin-transform-react-jsx-self": "^7.10.4", + "@babel/plugin-transform-react-jsx-source": "^7.10.4", + "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", + "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", + "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", + "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", + "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-typescript": { @@ -1793,6 +2969,16 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@rollup/plugin-babel": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.1.0.tgz", + "integrity": "sha512-zXBEYmfiLAMvB+ZBa6m/q9hsQYAq1sUFdjuP1F6C2pf6uQcpHwAWQveZgzS63zXdKPUYHD3Dr7BhjCqcr0bbLw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@rollup/pluginutils": "^3.0.8" + } + }, "@rollup/plugin-commonjs": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", @@ -3318,6 +4504,11 @@ "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -3644,12 +4835,22 @@ "is-string": "^1.0.4" } }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -3659,14 +4860,15 @@ } }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { "bn.js": { @@ -3742,8 +4944,7 @@ "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, "asynckit": { "version": "0.4.0", @@ -4455,6 +5656,11 @@ } } }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -4522,6 +5728,11 @@ } } }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -4542,6 +5753,14 @@ "tweetnacl": "^0.14.3" } }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -4549,9 +5768,9 @@ "dev": true }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true, "optional": true }, @@ -4565,6 +5784,11 @@ "file-uri-to-path": "1.0.0" } }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -4581,9 +5805,9 @@ "dev": true }, "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", "dev": true }, "body-parser": { @@ -4869,16 +6093,16 @@ } }, "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", + "elliptic": "^6.5.3", "inherits": "^2.0.4", "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", @@ -5069,6 +6293,11 @@ "caller-callsite": "^2.0.0" } }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -5195,9 +6424,9 @@ "dev": true }, "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", + "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, "optional": true, "requires": { @@ -5344,6 +6573,16 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, + "clean-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", + "dev": true, + "requires": { + "@types/webpack": "^4.4.31", + "del": "^4.1.1" + } + }, "cli-boxes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", @@ -5612,11 +6851,20 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" }, "computed-style": { "version": "0.1.4", @@ -5712,6 +6960,11 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", @@ -5800,13 +7053,13 @@ } }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" }, "dependencies": { "bn.js": { @@ -5854,6 +7107,58 @@ "warning": "^4.0.3" } }, + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -6373,7 +7678,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" } @@ -6471,6 +7775,50 @@ } } }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6511,6 +7859,12 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, "detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", @@ -6784,6 +8138,44 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, + "eko-flobx": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eko-flobx/-/eko-flobx-0.2.0.tgz", + "integrity": "sha512-S2hYxq/d59yfPc0PWG/gAMvzD5wsfC1izYwhiBf5LoEdrXROaB3EpCXevO5t8QdoBG77UqmzMPKBKmqrZ1zBfA==", + "requires": { + "flux": "^3.1.3", + "lodash.isplainobject": "^4.0.6", + "mobx": "^4.1.1" + } + }, + "eko-sdk": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eko-sdk/-/eko-sdk-1.3.0.tgz", + "integrity": "sha512-eNvxD8FLWUpbTQIZO3PnmCoW7o7Q4DxmS8dG96awxJk2WnH/0QwMGvzdC6X2Axc3cOT1SMla2t8R53KVVNcpQQ==", + "requires": { + "debug": "^3.1.0", + "eko-flobx": "^0.2.0", + "eventemitter2": "^5.0.1", + "joi": "^10.4.1", + "joi-objectid": "^2.0.0", + "localforage": "^1.7.1", + "lodash": "^4.17.15", + "mobx": "^4.1.1", + "socket.io-client": "^2.1.0", + "superagent": "^3.8.2", + "uuid": "^3.2.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "electron-to-chromium": { "version": "1.3.483", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz", @@ -6850,6 +8242,24 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -6859,10 +8269,50 @@ "once": "^1.4.0" } }, + "engine.io-client": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", + "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, "enhanced-resolve": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", - "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -7061,6 +8511,11 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" + }, "eventemitter3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", @@ -7068,9 +8523,9 @@ "dev": true }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", "dev": true }, "eventsource": { @@ -7174,6 +8629,15 @@ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, "expect": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", @@ -7512,6 +8976,35 @@ "bser": "2.1.1" } }, + "fbemitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "requires": { + "fbjs": "^0.8.4" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -7728,6 +9221,41 @@ } } }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -7738,6 +9266,15 @@ "readable-stream": "^2.3.6" } }, + "flux": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", + "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "requires": { + "fbemitter": "^2.0.0", + "fbjs": "^0.8.0" + } + }, "focus-lock": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.7.0.tgz", @@ -7918,6 +9455,11 @@ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", "dev": true }, + "formidable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -8336,6 +9878,26 @@ "ansi-regex": "^2.0.0" } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8470,6 +10032,19 @@ "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", "dev": true }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -8481,6 +10056,11 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -8489,6 +10069,15 @@ "react-is": "^16.7.0" } }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -8692,6 +10281,11 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, "immer": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", @@ -8776,6 +10370,11 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -9235,6 +10834,30 @@ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -9297,8 +10920,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { "version": "1.0.5", @@ -9352,6 +10974,11 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -9364,6 +10991,26 @@ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", "dev": true }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -9450,6 +11097,11 @@ "html-escaper": "^2.0.0" } }, + "items": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/items/-/items-2.1.2.tgz", + "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==" + }, "iterate-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", @@ -10323,6 +11975,22 @@ } } }, + "joi": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", + "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", + "requires": { + "hoek": "4.x.x", + "isemail": "2.x.x", + "items": "2.x.x", + "topo": "2.x.x" + } + }, + "joi-objectid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/joi-objectid/-/joi-objectid-2.0.0.tgz", + "integrity": "sha1-VlSVc6Zrp5Xc9rniJt5fOy027Do=" + }, "js-base64": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz", @@ -10531,6 +12199,14 @@ "type-check": "~0.3.2" } }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, "line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", @@ -10611,6 +12287,14 @@ } } }, + "localforage": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz", + "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==", + "requires": { + "lie": "3.1.1" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -10638,6 +12322,11 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -11004,8 +12693,7 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "microevent.ts": { "version": "0.1.1", @@ -11074,8 +12762,7 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.44.0", @@ -11111,6 +12798,15 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true }, + "mini-create-react-context": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", + "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", + "requires": { + "@babel/runtime": "^7.5.5", + "tiny-warning": "^1.0.3" + } + }, "mini-css-extract-plugin": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz", @@ -11273,6 +12969,11 @@ "minimist": "^1.2.5" } }, + "mobx": { + "version": "4.15.6", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.6.tgz", + "integrity": "sha512-eZVEHZLi/Fe+V4qurBBQoFHCqaGrfMuYK1Vy4t5MHYfy90f52ptAKsemHsJcYl+R5/sA3oeT3rMLiVsbB7bllA==" + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -11290,8 +12991,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==" }, "multistream": { "version": "2.1.1", @@ -11661,6 +13361,11 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -12017,14 +13722,13 @@ } }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "dev": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" @@ -12056,12 +13760,34 @@ "lines-and-columns": "^1.1.6" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -12108,6 +13834,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "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 + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -13199,6 +14931,14 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -13360,8 +15100,7 @@ "qs": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", - "dev": true + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" }, "query-string": { "version": "4.3.4", @@ -13911,6 +15650,52 @@ } } }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, "react-sizeme": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", @@ -14371,12 +16156,53 @@ } } }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + } + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -15083,8 +16909,7 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.1.1", @@ -15385,6 +17210,69 @@ } } }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + } + } + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "sockjs-client": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", @@ -15883,6 +17771,33 @@ } } }, + "superagent": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", + "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -15898,6 +17813,50 @@ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", "dev": true }, + "svg-url-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-6.0.0.tgz", + "integrity": "sha512-Qr5SCKxyxKcRnvnVrO3iQj9EX/v40UiGEMshgegzV7vpo3yc+HexELOdtWcA3MKjL8IyZZ1zOdcILmDEa/8JJQ==", + "dev": true, + "requires": { + "file-loader": "~6.0.0", + "loader-utils": "~2.0.0" + }, + "dependencies": { + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, "svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", @@ -16174,6 +18133,16 @@ "dev": true, "optional": true }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, "tlds": { "version": "1.207.0", "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.207.0.tgz", @@ -16194,6 +18163,11 @@ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -16260,6 +18234,14 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -16407,6 +18389,11 @@ "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" + }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -16715,6 +18702,12 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -16725,6 +18718,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -16781,12 +18779,12 @@ } }, "watchpack": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", - "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", "dev": true, "requires": { - "chokidar": "^3.4.0", + "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", "watchpack-chokidar2": "^2.0.0" @@ -16940,9 +18938,9 @@ "dev": true }, "webpack": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", - "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", @@ -16953,7 +18951,7 @@ "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", + "enhanced-resolve": "^4.3.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", @@ -16966,7 +18964,7 @@ "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.1", + "watchpack": "^1.7.4", "webpack-sources": "^1.4.1" }, "dependencies": { @@ -17002,6 +19000,15 @@ "to-regex": "^3.0.2" } }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -17009,16 +19016,16 @@ "dev": true }, "terser-webpack-plugin": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", - "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^3.1.0", + "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -17027,6 +19034,42 @@ } } }, + "webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "webpack-dev-middleware": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", @@ -17070,6 +19113,12 @@ "uuid": "^3.3.2" } }, + "webpack-node-externals": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.1.tgz", + "integrity": "sha512-RWxKGibUU5kuJT6JDYmXGa3QsZskqIaiBvZ2wBxHlJzWVJPOyBMnroXf23uxEHnj1rYS8jNdyUfrNAXJ2bANNw==", + "dev": true + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -17134,6 +19183,11 @@ "iconv-lite": "0.4.24" } }, + "whatwg-fetch": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz", + "integrity": "sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ==" + }, "whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", @@ -17324,6 +19378,11 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -17418,6 +19477,11 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } } diff --git a/package.json b/package.json index cfdbefba6..98480f696 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,13 @@ { - "name": "eko-ui-kit", - "version": "0.0.1", + "name": "upstra-uikit", + "version": "0.0.2", "main": "build/index.js", - "module": "build/index.esm.js", "files": [ "build" ], - "types": "build/index.d.ts", - "description": "Eko ui kit", + "description": "Upstra ui kit", "scripts": { - "build": "rollup -c", + "build": "webpack --mode production", "test": "jest", "test:watch": "jest --watch", "storybook": "start-storybook -p 6006", @@ -20,10 +18,14 @@ }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "styled-components": "^5.1.1" }, "devDependencies": { "@babel/core": "^7.10.3", + "@babel/preset-env": "^7.11.0", + "@babel/preset-react": "^7.10.4", + "@rollup/plugin-babel": "^5.1.0", "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-node-resolve": "^7.1.3", "@storybook/react": "^5.3.19", @@ -35,11 +37,14 @@ "@types/styled-components": "^5.1.0", "babel-loader": "^8.1.0", "babel-preset-react-app": "^9.1.2", + "clean-webpack-plugin": "^3.0.0", + "cross-env": "^7.0.2", "identity-obj-proxy": "^3.0.0", "jest": "^24.9.0", "node-sass": "^4.14.1", "react": "^16.13.1", "react-dom": "^16.13.1", + "react-router-dom": "^5.2.0", "rollup": "^1.27.4", "rollup-plugin-copy": "^3.3.0", "rollup-plugin-peer-deps-external": "^2.2.0", @@ -47,8 +52,12 @@ "rollup-plugin-typescript2": "^0.27.0", "sass-loader": "^8.0.0", "styled-components": "^5.1.1", + "svg-url-loader": "^6.0.0", "ts-jest": "^24.2.0", - "typescript": "^3.7.2" + "typescript": "^3.7.2", + "webpack": "^4.44.1", + "webpack-cli": "^3.3.12", + "webpack-node-externals": "^2.5.1" }, "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.29", @@ -59,6 +68,7 @@ "@fortawesome/pro-regular-svg-icons": "^5.13.1", "@fortawesome/pro-solid-svg-icons": "^5.13.1", "@fortawesome/react-fontawesome": "^0.1.11", + "eko-sdk": "^1.3.0", "filesize": "^6.1.0", "human-readable-numbers": "^0.9.5", "lodash": "^4.17.19", diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index fc61eaa05..000000000 --- a/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import peerDepsExternal from "rollup-plugin-peer-deps-external"; -import resolve from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -import typescript from "rollup-plugin-typescript2"; - -const packageJson = require("./package.json"); - -export default { - input: "src/index.ts", - output: [ - { - file: packageJson.main, - format: "cjs", - sourcemap: true - }, - { - file: packageJson.module, - format: "esm", - sourcemap: true - } - ], - external: ["styled-components"], - plugins: [ - peerDepsExternal(), - resolve(), - commonjs(), - typescript({ useTsconfigDeclarationDir: true }) - ] -}; diff --git a/src/Avatar/index.tsx b/src/Avatar/index.js similarity index 100% rename from src/Avatar/index.tsx rename to src/Avatar/index.js diff --git a/src/Avatar/styles.ts b/src/Avatar/styles.js similarity index 100% rename from src/Avatar/styles.ts rename to src/Avatar/styles.js diff --git a/src/Chat/index.tsx b/src/Chat/index.js similarity index 100% rename from src/Chat/index.tsx rename to src/Chat/index.js diff --git a/src/Chat/styles.ts b/src/Chat/styles.js similarity index 100% rename from src/Chat/styles.ts rename to src/Chat/styles.js diff --git a/src/ChatDetails/index.tsx b/src/ChatDetails/index.js similarity index 100% rename from src/ChatDetails/index.tsx rename to src/ChatDetails/index.js diff --git a/src/ChatDetails/styles.ts b/src/ChatDetails/styles.js similarity index 100% rename from src/ChatDetails/styles.ts rename to src/ChatDetails/styles.js diff --git a/src/ChatHeader/index.tsx b/src/ChatHeader/index.js similarity index 100% rename from src/ChatHeader/index.tsx rename to src/ChatHeader/index.js diff --git a/src/ChatHeader/styles.ts b/src/ChatHeader/styles.js similarity index 100% rename from src/ChatHeader/styles.ts rename to src/ChatHeader/styles.js diff --git a/src/ChatHome/ChatHome.stories.tsx b/src/ChatHome/ChatHome.stories.js similarity index 100% rename from src/ChatHome/ChatHome.stories.tsx rename to src/ChatHome/ChatHome.stories.js diff --git a/src/ChatHome/index.tsx b/src/ChatHome/index.js similarity index 100% rename from src/ChatHome/index.tsx rename to src/ChatHome/index.js diff --git a/src/ChatHome/styles.ts b/src/ChatHome/styles.js similarity index 100% rename from src/ChatHome/styles.ts rename to src/ChatHome/styles.js diff --git a/src/ChatItem/index.tsx b/src/ChatItem/index.js similarity index 100% rename from src/ChatItem/index.tsx rename to src/ChatItem/index.js diff --git a/src/ChatItem/styles.ts b/src/ChatItem/styles.js similarity index 100% rename from src/ChatItem/styles.ts rename to src/ChatItem/styles.js diff --git a/src/Comment/index.js b/src/Comment/index.js new file mode 100644 index 000000000..86ab058b5 --- /dev/null +++ b/src/Comment/index.js @@ -0,0 +1,72 @@ +import React, { useState, useEffect } from 'react'; +import Truncate from 'react-truncate-markup'; + +import { customizableComponent } from '../hoks/customization'; + +import Linkify from '../commonComponents/Linkify'; +import { SecondaryButton } from '../commonComponents/Button'; + +import Files from '../Files'; +import Images from '../Images'; + +import { + Avatar, + Content, + CommentContainer, + CommentHeader, + CommentContent, + AuthorName, + CommentDate, + CommentInfo, + ReadMoreButton, + InteractionBar, + LikeIcon, + SolidLikeIcon, +} from './styles'; + +const COMMENT_MAX_LINES = 8; + +const Comment = ({ className, comment, comment: { author, text, isLiked, likes = 0 }, onEdit }) => { + const toggleLike = () => { + onEdit({ + ...comment, + isLiked: !isLiked, + }); + }; + + const [isExpanded, setIsExpanded] = useState(false); + const expand = () => setIsExpanded(true); + + const totalLikes = likes + (isLiked ? 1 : 0); + + return ( + + + + + {author.name} + • Just now + + + {isExpanded ? ( + {text} + ) : ( + ...Read more} + > + {text} + + )} + + + + {isLiked ? : } {!!totalLikes && totalLikes} + + + + + ); +}; + +export default customizableComponent('Comment')(Comment); diff --git a/src/Comment/styles.js b/src/Comment/styles.js new file mode 100644 index 000000000..3893cbae3 --- /dev/null +++ b/src/Comment/styles.js @@ -0,0 +1,69 @@ +import styled from 'styled-components'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faThumbsUp } from '@fortawesome/pro-regular-svg-icons'; +import { faThumbsUp as faThumbsUpSolid } from '@fortawesome/pro-solid-svg-icons'; + +import { SecondaryButton } from '../commonComponents/Button'; + +import UIAvatar from '../Avatar'; + +export const Avatar = styled(UIAvatar)` + margin-right: 8px; +`; + +export const CommentContainer = styled.div` + display: flex; + color: black; + background: #ffffff; + border-top: 1px solid #e3e4e8; + padding: 16px 0; +`; + +export const Content = styled.div``; + +export const CommentHeader = styled.div` + display: flex; + align-items: center; +`; + +export const CommentContent = styled.div` + overflow-wrap: break-word; + color: #17181c; + white-space: pre-wrap; + ${({ theme }) => theme.typography.body} +`; + +export const CommentInfo = styled.div` + margin-left: 8px; +`; + +export const AuthorName = styled.div` + ${({ theme }) => theme.typography.title} +`; + +export const CommentDate = styled.div` + margin-left: 5px; + color: #818698; + ${({ theme }) => theme.typography.caption} +`; + +export const ReadMoreButton = styled(SecondaryButton)` + color: #1054de; + padding: 4px; +`; + +export const InteractionBar = styled.div` + display: flex; + padding: 2px 0; +`; + +export const LikeIcon = styled(FaIcon).attrs({ icon: faThumbsUp })` + font-size: 16px; + margin-right: 5px; +`; + +export const SolidLikeIcon = styled(FaIcon).attrs({ icon: faThumbsUpSolid })` + font-size: 16px; + margin-right: 5px; +`; diff --git a/src/CommentComposeBar/index.js b/src/CommentComposeBar/index.js new file mode 100644 index 000000000..653a4f8cb --- /dev/null +++ b/src/CommentComposeBar/index.js @@ -0,0 +1,41 @@ +import React, { useState, useEffect } from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; + +import { customizableComponent } from '../hoks/customization'; + +import { + Avatar, + CommentComposeBarContainer, + CommentComposeBarInput, + AddCommentButton, +} from './styles'; + +const CommentComposeBar = ({ onSubmit }) => { + const [comment, setComment] = useState(''); + + const AddComment = () => { + if (comment === '') return; + onSubmit(comment); + setComment(''); + }; + + const isEmpty = comment === ''; + + return ( + + + setComment(e.target.value)} + onKeyPress={e => e.key === 'Enter' && AddComment()} + /> + + Add comment + + + ); +}; + +export default customizableComponent('CommentComposeBar')(CommentComposeBar); diff --git a/src/CommentComposeBar/styles.js b/src/CommentComposeBar/styles.js new file mode 100644 index 000000000..b61d65070 --- /dev/null +++ b/src/CommentComposeBar/styles.js @@ -0,0 +1,32 @@ +import styled from 'styled-components'; + +import { PrimaryButton } from '../commonComponents/Button'; + +import UIAvatar from '../Avatar'; + +export const Avatar = styled(UIAvatar)` + margin-right: 8px; +`; + +export const CommentComposeBarContainer = styled.div` + padding-top: 16px; + background: #ffffff; + border-top: 1px solid #e3e4e8; + display: flex; + align-items: center; +`; + +export const CommentComposeBarInput = styled.input` + height: 40px; + padding: 6px; + outline: none; + border: 1px solid #e3e4e8; + border-radius: 4px; + flex-grow: 1; +`; + +export const AddCommentButton = styled(PrimaryButton)` + height: 40px; + padding: 10px 16px; + margin-left: 12px; +`; diff --git a/src/Community/Community.stories.tsx b/src/Community/Community.stories.js similarity index 100% rename from src/Community/Community.stories.tsx rename to src/Community/Community.stories.js diff --git a/src/Community/index.tsx b/src/Community/index.js similarity index 94% rename from src/Community/index.tsx rename to src/Community/index.js index a41e1af82..cba61a8b4 100644 --- a/src/Community/index.tsx +++ b/src/Community/index.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { ChannelRepository, FeedRepository, PostRepository, EkoPostDataType } from 'eko-sdk'; +import { ChannelRepository, EkoPostDataType } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; import withSDK from '../hoks/withSDK'; @@ -18,9 +18,6 @@ import { CommunityHeader, } from './styles'; -const feedRepo = new FeedRepository(); -const postRepo = new PostRepository(); - const Community = ({ client }) => { // const feed = useLiveObject(() => feedRepo.getUserFeed(client.currentUserId), []); diff --git a/src/Community/styles.ts b/src/Community/styles.js similarity index 100% rename from src/Community/styles.ts rename to src/Community/styles.js diff --git a/src/CommunityHeader/index.tsx b/src/CommunityHeader/index.js similarity index 100% rename from src/CommunityHeader/index.tsx rename to src/CommunityHeader/index.js diff --git a/src/CommunityHeader/styles.ts b/src/CommunityHeader/styles.js similarity index 100% rename from src/CommunityHeader/styles.ts rename to src/CommunityHeader/styles.js diff --git a/src/CommunityInformation/index.tsx b/src/CommunityInformation/index.js similarity index 93% rename from src/CommunityInformation/index.tsx rename to src/CommunityInformation/index.js index 30e389105..0c91d06ef 100644 --- a/src/CommunityInformation/index.tsx +++ b/src/CommunityInformation/index.js @@ -5,14 +5,14 @@ import Options from '../commonComponents/Options'; import { Avatar, Container, CommunityName, Header, Footer, Content, RightIcon } from './styles'; const testCommunity = { - private: true, + isPrivate: true, name: 'Harry Poter Fans', postsCount: 345, membersCount: 4501, }; const CommunityInformation = ({ community = testCommunity, onChannelClick, selectedChannelId }) => { - const { private, name, postsCount, membersCount } = community; + const { isPrivate, name, postsCount, membersCount } = community; const todo = () => console.log('TODO'); diff --git a/src/CommunityInformation/styles.tsx b/src/CommunityInformation/styles.js similarity index 100% rename from src/CommunityInformation/styles.tsx rename to src/CommunityInformation/styles.js diff --git a/src/CommunityItem/index.tsx b/src/CommunityItem/index.js similarity index 93% rename from src/CommunityItem/index.tsx rename to src/CommunityItem/index.js index eb134bfc4..61ede7cf0 100644 --- a/src/CommunityItem/index.tsx +++ b/src/CommunityItem/index.js @@ -13,7 +13,7 @@ import { const CommunityItem = ({ community, selected, onSelect }) => ( onSelect(channel.channelId)} selected={selected}> - {community.private && } + {community.isPrivate && } {community.name} {community.verified && } diff --git a/src/CommunityItem/styles.ts b/src/CommunityItem/styles.js similarity index 100% rename from src/CommunityItem/styles.ts rename to src/CommunityItem/styles.js diff --git a/src/EmptyFeed/index.tsx b/src/EmptyFeed/index.js similarity index 100% rename from src/EmptyFeed/index.tsx rename to src/EmptyFeed/index.js diff --git a/src/EmptyFeed/styles.ts b/src/EmptyFeed/styles.js similarity index 100% rename from src/EmptyFeed/styles.ts rename to src/EmptyFeed/styles.js diff --git a/src/EngagementBar/index.js b/src/EngagementBar/index.js new file mode 100644 index 000000000..0da44214f --- /dev/null +++ b/src/EngagementBar/index.js @@ -0,0 +1,88 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import { customizableComponent } from '../hoks/customization'; +import { SecondaryButton } from '../commonComponents/Button'; + +import CommentComposeBar from '../CommentComposeBar'; +import Comment from '../Comment'; + +import { EngagementBarContainer, Counters, InteractionBar, LikeIcon, CommentIcon } from './styles'; + +// const Comment = ({ comment, comment: { author, text, isLiked, likes }, onEdit }) => { +// const toggleLike = () => { +// onEdit({ +// ...comment, +// isLiked: !isLiked, +// }); +// }; + +// return ( +//
+// text: {text} +// {isLiked ? 'liked' : ''} +//
+// ); +// }; + +const EngagementBar = ({ post, onPostEdit }) => { + const { isLiked, likes = 0, comments = [] } = post; + + const [isOpen, setIsOpen] = useState(false); + + const open = () => setIsOpen(true); + + const toggleLike = () => { + onPostEdit({ + ...post, + isLiked: !isLiked, + }); + }; + + const addComment = text => { + onPostEdit({ + ...post, + comments: [ + ...comments, + { + id: Date.now(), + author: { userId: 1, name: 'John' }, + text, + }, + ], + }); + }; + + const editComment = updatedComment => { + onPostEdit({ + ...post, + comments: comments.map(comment => + comment.id === updatedComment.id ? updatedComment : comment, + ), + }); + }; + + const totalLikes = likes + (isLiked ? 1 : 0); + + return ( + + + {toHumanString(totalLikes)} likes + {toHumanString(comments.length)} comments + + + + Like + + + Comment + + + {comments.map(comment => ( + + ))} + {isOpen && } + + ); +}; + +export default customizableComponent('EngagementBar')(EngagementBar); diff --git a/src/EngagementBar/index.tsx b/src/EngagementBar/index.tsx deleted file mode 100644 index 97f15ed59..000000000 --- a/src/EngagementBar/index.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { toHumanString } from 'human-readable-numbers'; -import { customizableComponent } from '../hoks/customization'; -import { SecondaryButton } from '../commonComponents/Button'; - -import { EngagementBarContainer, Counters, InteractionBar, LikeIcon, CommentIcon } from './styles'; - -const EngagementBar = () => { - const likes = 18928; - const comments = 345; - return ( - - - {toHumanString(likes)} likes - {toHumanString(comments)} comments - - - - Like - - - Comment - - - - ); -}; - -export default customizableComponent('EngagementBar')(EngagementBar); diff --git a/src/EngagementBar/styles.ts b/src/EngagementBar/styles.js similarity index 97% rename from src/EngagementBar/styles.ts rename to src/EngagementBar/styles.js index f4bfcbd4b..7cc15e2ed 100644 --- a/src/EngagementBar/styles.ts +++ b/src/EngagementBar/styles.js @@ -16,7 +16,7 @@ export const Counters = styled.div` export const InteractionBar = styled.div` display: flex; - padding-top: 2px; + padding: 2px 0; `; export const LikeIcon = styled(FaIcon).attrs({ icon: faThumbsUp })` diff --git a/src/Files/File.tsx b/src/Files/File.js similarity index 100% rename from src/Files/File.tsx rename to src/Files/File.js diff --git a/src/Files/FileIcon.tsx b/src/Files/FileIcon.js similarity index 100% rename from src/Files/FileIcon.tsx rename to src/Files/FileIcon.js diff --git a/src/Files/index.tsx b/src/Files/index.js similarity index 95% rename from src/Files/index.tsx rename to src/Files/index.js index 114207908..90f14f182 100644 --- a/src/Files/index.tsx +++ b/src/Files/index.js @@ -16,6 +16,8 @@ const Files = ({ editing, files = [], onRemove }) => { const haveHiddenFiles = visibleFiles.length < files.length; + if (files.length === 0) return null; + return ( {visibleFiles.map((file, i) => ( diff --git a/src/Files/styles.ts b/src/Files/styles.js similarity index 100% rename from src/Files/styles.ts rename to src/Files/styles.js diff --git a/src/ImageGallery/index.tsx b/src/ImageGallery/index.js similarity index 98% rename from src/ImageGallery/index.tsx rename to src/ImageGallery/index.js index 5cf02377b..43082719c 100644 --- a/src/ImageGallery/index.tsx +++ b/src/ImageGallery/index.js @@ -2,8 +2,6 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import Image from './Image'; - import { ImageGalleryContainer, ImageContainer, diff --git a/src/ImageGallery/styles.ts b/src/ImageGallery/styles.js similarity index 100% rename from src/ImageGallery/styles.ts rename to src/ImageGallery/styles.js diff --git a/src/Images/Image.tsx b/src/Images/Image.js similarity index 100% rename from src/Images/Image.tsx rename to src/Images/Image.js diff --git a/src/Images/index.tsx b/src/Images/index.js similarity index 100% rename from src/Images/index.tsx rename to src/Images/index.js diff --git a/src/Images/styles.ts b/src/Images/styles.js similarity index 100% rename from src/Images/styles.ts rename to src/Images/styles.js diff --git a/src/Message/IncomingMessage.tsx b/src/Message/IncomingMessage.js similarity index 100% rename from src/Message/IncomingMessage.tsx rename to src/Message/IncomingMessage.js diff --git a/src/Message/Options.tsx b/src/Message/Options.js similarity index 100% rename from src/Message/Options.tsx rename to src/Message/Options.js diff --git a/src/Message/OutgoingMessage.tsx b/src/Message/OutgoingMessage.js similarity index 100% rename from src/Message/OutgoingMessage.tsx rename to src/Message/OutgoingMessage.js diff --git a/src/Message/index.tsx b/src/Message/index.js similarity index 100% rename from src/Message/index.tsx rename to src/Message/index.js diff --git a/src/Message/styles.tsx b/src/Message/styles.js similarity index 100% rename from src/Message/styles.tsx rename to src/Message/styles.js diff --git a/src/MessageComposeBar/index.tsx b/src/MessageComposeBar/index.js similarity index 100% rename from src/MessageComposeBar/index.tsx rename to src/MessageComposeBar/index.js diff --git a/src/MessageComposeBar/styles.ts b/src/MessageComposeBar/styles.js similarity index 100% rename from src/MessageComposeBar/styles.ts rename to src/MessageComposeBar/styles.js diff --git a/src/MessageList/index.tsx b/src/MessageList/index.js similarity index 100% rename from src/MessageList/index.tsx rename to src/MessageList/index.js diff --git a/src/MessageList/styles.ts b/src/MessageList/styles.js similarity index 100% rename from src/MessageList/styles.ts rename to src/MessageList/styles.js diff --git a/src/Post/Options.tsx b/src/Post/Options.tsx deleted file mode 100644 index 9b6ebf9eb..000000000 --- a/src/Post/Options.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, { useState, useEffect } from 'react'; - -import Popover from '../commonComponents/Popover'; -import Menu, { MenuItem } from '../commonComponents/Menu'; - -import { OptionsIcon, OptionsButton } from './styles'; - -const Options = ({ onEdit, onDelete }) => { - const [isOpen, setIsOpen] = useState(false); - const open = () => setIsOpen(true); - const close = () => setIsOpen(false); - - const attachCanceling = fn => () => { - close(); - fn && fn(); - }; - - const menu = ( - - Edit post - Delete post - - ); - - return ( - - - - - - ); -}; - -export default Options; diff --git a/src/Post/Post.stories.tsx b/src/Post/Post.stories.js similarity index 100% rename from src/Post/Post.stories.tsx rename to src/Post/Post.stories.js diff --git a/src/Post/index.tsx b/src/Post/index.js similarity index 98% rename from src/Post/index.tsx rename to src/Post/index.js index fa063734e..3a90c3a50 100644 --- a/src/Post/index.tsx +++ b/src/Post/index.js @@ -102,7 +102,7 @@ const Post = ({ - + ); }; diff --git a/src/Post/styles.ts b/src/Post/styles.js similarity index 100% rename from src/Post/styles.ts rename to src/Post/styles.js diff --git a/src/PostCompose/index.tsx b/src/PostCompose/index.js similarity index 100% rename from src/PostCompose/index.tsx rename to src/PostCompose/index.js diff --git a/src/PostCompose/styles.ts b/src/PostCompose/styles.js similarity index 100% rename from src/PostCompose/styles.ts rename to src/PostCompose/styles.js diff --git a/src/RecentChat/CreateNewChat.tsx b/src/RecentChat/CreateNewChat.js similarity index 100% rename from src/RecentChat/CreateNewChat.tsx rename to src/RecentChat/CreateNewChat.js diff --git a/src/RecentChat/index.tsx b/src/RecentChat/index.js similarity index 100% rename from src/RecentChat/index.tsx rename to src/RecentChat/index.js diff --git a/src/RecentChat/styles.tsx b/src/RecentChat/styles.js similarity index 100% rename from src/RecentChat/styles.tsx rename to src/RecentChat/styles.js diff --git a/src/SideMenu/index.tsx b/src/SideMenu/index.js similarity index 96% rename from src/SideMenu/index.tsx rename to src/SideMenu/index.js index 1ff6315c4..c9580fb73 100644 --- a/src/SideMenu/index.tsx +++ b/src/SideMenu/index.js @@ -23,7 +23,7 @@ const SideMenu = ({ onChannelClick, selectedChannelId }) => { { name: 'BLACKPINK TH', verified: true }, { name: 'Breakfast Club' }, { name: 'BTS & ARMY' }, - { name: 'Harry Potter Fans', private: true }, + { name: 'Harry Potter Fans', isPrivate: true }, ]; return ( diff --git a/src/SideMenu/styles.tsx b/src/SideMenu/styles.js similarity index 100% rename from src/SideMenu/styles.tsx rename to src/SideMenu/styles.js diff --git a/src/TestComponent/TestComponent.stories.tsx b/src/TestComponent/TestComponent.stories.tsx deleted file mode 100644 index 28cf3243d..000000000 --- a/src/TestComponent/TestComponent.stories.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; -import TestComponent from "./TestComponent"; - -export default { - title: "TestComponent" -}; - -export const Primary = () => ; - -export const Secondary = () => ; diff --git a/src/TestComponent/TestComponent.test.tsx b/src/TestComponent/TestComponent.test.tsx deleted file mode 100644 index b619424e2..000000000 --- a/src/TestComponent/TestComponent.test.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import { render } from "@testing-library/react"; - -import TestComponent from "./TestComponent"; -import { TestComponentProps } from "./TestComponent.types"; - -describe("Test Component", () => { - let props: TestComponentProps; - - beforeEach(() => { - props = { - theme: "primary" - }; - }); - - const renderComponent = () => render(); - - it("should have primary className with default props", () => { - const { getByTestId } = renderComponent(); - - const testComponent = getByTestId("test-component"); - - expect(testComponent).toHaveClass("test-component-primary"); - }); - - it("should have secondary className with theme set as secondary", () => { - props.theme = "secondary"; - const { getByTestId } = renderComponent(); - - const testComponent = getByTestId("test-component"); - - expect(testComponent).toHaveClass("test-component-secondary"); - }); -}); diff --git a/src/TestComponent/TestComponent.tsx b/src/TestComponent/TestComponent.tsx deleted file mode 100644 index 45a59b5ef..000000000 --- a/src/TestComponent/TestComponent.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from "react"; -import styled from "styled-components"; - -import { TestComponentProps } from "./TestComponent.types"; - -const StyledDiv = styled.div` - background-color: white; - border: 1px solid black; - padding: 16px; - width: 360px; - text-align: center; - - ${(props) => - props.theme === "secondary" && - `background-color: black; - color: white;`} -`; - -const StyledHeading = styled.h1` - font-size: 32px; -`; - -const StyledDescription = styled.h2``; - -const TestComponent: React.FC = ({ theme }) => ( - - I'm the test component - -); - -export default TestComponent; diff --git a/src/TestComponent/TestComponent.types.ts b/src/TestComponent/TestComponent.types.ts deleted file mode 100644 index 9f40bf426..000000000 --- a/src/TestComponent/TestComponent.types.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface TestComponentProps { - theme: "primary" | "secondary"; -} diff --git a/src/UiKitProvider/GlobalStyle.ts b/src/UiKitProvider/GlobalStyle.js similarity index 100% rename from src/UiKitProvider/GlobalStyle.ts rename to src/UiKitProvider/GlobalStyle.js diff --git a/src/UiKitProvider/GlobalTheme.ts b/src/UiKitProvider/GlobalTheme.js similarity index 100% rename from src/UiKitProvider/GlobalTheme.ts rename to src/UiKitProvider/GlobalTheme.js diff --git a/src/UiKitProvider/index.tsx b/src/UiKitProvider/index.js similarity index 100% rename from src/UiKitProvider/index.tsx rename to src/UiKitProvider/index.js diff --git a/src/commonComponents/Button/Button.stories.tsx b/src/commonComponents/Button/Button.stories.js similarity index 100% rename from src/commonComponents/Button/Button.stories.tsx rename to src/commonComponents/Button/Button.stories.js diff --git a/src/commonComponents/Button/index.tsx b/src/commonComponents/Button/index.js similarity index 100% rename from src/commonComponents/Button/index.tsx rename to src/commonComponents/Button/index.js diff --git a/src/commonComponents/Button/styles.ts b/src/commonComponents/Button/styles.js similarity index 100% rename from src/commonComponents/Button/styles.ts rename to src/commonComponents/Button/styles.js diff --git a/src/commonComponents/Confirm/index.tsx b/src/commonComponents/Confirm/index.js similarity index 100% rename from src/commonComponents/Confirm/index.tsx rename to src/commonComponents/Confirm/index.js diff --git a/src/commonComponents/Confirm/styles.ts b/src/commonComponents/Confirm/styles.js similarity index 100% rename from src/commonComponents/Confirm/styles.ts rename to src/commonComponents/Confirm/styles.js diff --git a/src/commonComponents/Linkify/index.tsx b/src/commonComponents/Linkify/index.js similarity index 100% rename from src/commonComponents/Linkify/index.tsx rename to src/commonComponents/Linkify/index.js diff --git a/src/commonComponents/Linkify/styles.ts b/src/commonComponents/Linkify/styles.js similarity index 100% rename from src/commonComponents/Linkify/styles.ts rename to src/commonComponents/Linkify/styles.js diff --git a/src/commonComponents/Menu/index.tsx b/src/commonComponents/Menu/index.js similarity index 100% rename from src/commonComponents/Menu/index.tsx rename to src/commonComponents/Menu/index.js diff --git a/src/commonComponents/Menu/styles.tsx b/src/commonComponents/Menu/styles.js similarity index 100% rename from src/commonComponents/Menu/styles.tsx rename to src/commonComponents/Menu/styles.js diff --git a/src/commonComponents/Modal/index.tsx b/src/commonComponents/Modal/index.js similarity index 100% rename from src/commonComponents/Modal/index.tsx rename to src/commonComponents/Modal/index.js diff --git a/src/commonComponents/Modal/styles.ts b/src/commonComponents/Modal/styles.js similarity index 100% rename from src/commonComponents/Modal/styles.ts rename to src/commonComponents/Modal/styles.js diff --git a/src/commonComponents/Options/index.tsx b/src/commonComponents/Options/index.js similarity index 100% rename from src/commonComponents/Options/index.tsx rename to src/commonComponents/Options/index.js diff --git a/src/commonComponents/Options/styles.ts b/src/commonComponents/Options/styles.js similarity index 100% rename from src/commonComponents/Options/styles.ts rename to src/commonComponents/Options/styles.js diff --git a/src/commonComponents/Popover/index.tsx b/src/commonComponents/Popover/index.js similarity index 100% rename from src/commonComponents/Popover/index.tsx rename to src/commonComponents/Popover/index.js diff --git a/src/commonComponents/Popover/styles.tsx b/src/commonComponents/Popover/styles.js similarity index 100% rename from src/commonComponents/Popover/styles.tsx rename to src/commonComponents/Popover/styles.js diff --git a/src/commonComponents/SideMenuItem/index.tsx b/src/commonComponents/SideMenuItem/index.js similarity index 100% rename from src/commonComponents/SideMenuItem/index.tsx rename to src/commonComponents/SideMenuItem/index.js diff --git a/src/commonComponents/SideMenuItem/styles.ts b/src/commonComponents/SideMenuItem/styles.js similarity index 100% rename from src/commonComponents/SideMenuItem/styles.ts rename to src/commonComponents/SideMenuItem/styles.js diff --git a/src/commonComponents/Tab/Tab.stories.tsx b/src/commonComponents/Tab/Tab.stories.js similarity index 100% rename from src/commonComponents/Tab/Tab.stories.tsx rename to src/commonComponents/Tab/Tab.stories.js diff --git a/src/commonComponents/Tab/index.tsx b/src/commonComponents/Tab/index.js similarity index 100% rename from src/commonComponents/Tab/index.tsx rename to src/commonComponents/Tab/index.js diff --git a/src/commonComponents/Tab/styles.ts b/src/commonComponents/Tab/styles.js similarity index 100% rename from src/commonComponents/Tab/styles.ts rename to src/commonComponents/Tab/styles.js diff --git a/src/hoks/customization.tsx b/src/hoks/customization.js similarity index 100% rename from src/hoks/customization.tsx rename to src/hoks/customization.js diff --git a/src/hoks/withSdk.tsx b/src/hoks/withSDK.js similarity index 100% rename from src/hoks/withSdk.tsx rename to src/hoks/withSDK.js diff --git a/src/hooks/useLiveObject.ts b/src/hooks/useLiveObject.js similarity index 100% rename from src/hooks/useLiveObject.ts rename to src/hooks/useLiveObject.js diff --git a/src/hooks/usePaginatedLiveObject.ts b/src/hooks/usePaginatedLiveObject.js similarity index 100% rename from src/hooks/usePaginatedLiveObject.ts rename to src/hooks/usePaginatedLiveObject.js diff --git a/src/index.js b/src/index.js new file mode 100644 index 000000000..e2aebc798 --- /dev/null +++ b/src/index.js @@ -0,0 +1,53 @@ +import EkoAvatar from './Avatar'; +import EkoChat from './Chat'; +import EkoChatDetails from './ChatDetails'; +import EkoChatHeader from './ChatHeader'; +import EkoChatHome from './ChatHome'; +import EkoChatItem from './ChatItem'; +import EkoComment from './Comment'; +import EkoCommentComposeBar from './CommentComposeBar'; +import EkoCommunity from './Community'; +import EkoCommunityHeader from './CommunityHeader'; +import EkoCommunityInformation from './CommunityInformation'; +import EkoCommunityItem from './CommunityItem'; +import EkoEmptyFeed from './EmptyFeed'; +import EkoEngagementBar from './EngagementBar'; +import EkoFiles from './Files'; +import EkoImageGallery from './ImageGallery'; +import EkoImages from './Images'; +import EkoMessage from './Message'; +import EkoMessageComposeBar from './MessageComposeBar'; +import EkoMessageList from './MessageList'; +import EkoPost from './Post'; +import EkoPostCompose from './PostCompose'; +import EkoRecentChat from './RecentChat'; +import EkoSideMenu from './SideMenu'; +import EkoUiKitProvider from './UiKitProvider'; + +export { + EkoAvatar, + EkoChat, + EkoChatDetails, + EkoChatHeader, + EkoChatHome, + EkoChatItem, + EkoComment, + EkoCommentComposeBar, + EkoCommunity, + EkoCommunityHeader, + EkoCommunityInformation, + EkoCommunityItem, + EkoEmptyFeed, + EkoEngagementBar, + EkoFiles, + EkoImageGallery, + EkoImages, + EkoMessage, + EkoMessageComposeBar, + EkoMessageList, + EkoPost, + EkoPostCompose, + EkoRecentChat, + EkoSideMenu, + EkoUiKitProvider, +}; diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index aba4568d5..000000000 --- a/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import UiKitProvider from './UiKitProvider'; -import ChatHome from './ChatHome'; -import Chat from './Chat'; -import MessageComposeBar from './MessageComposeBar'; -import MessageList from './MessageList'; - -export { UiKitProvider, ChatHome, Chat, MessageComposeBar, MessageList }; diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 5b4120cbb..000000000 --- a/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "rootDir": "src", - "declaration": true, - "declarationDir": "build", - "module": "esnext", - "target": "es5", - "lib": ["es6", "dom", "es2016", "es2017"], - "sourceMap": true, - "jsx": "react", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "esModuleInterop": true - }, - "include": ["src/**/*"], - "exclude": [ - "node_modules", - "build", - "storybook-static", - "src/**/*.stories.tsx", - "src/**/*.test.tsx" - ] -} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 000000000..e9709fe21 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,35 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); +const nodeExternals = require('webpack-node-externals'); + +module.exports = { + entry: './src/index.js', + externals: [nodeExternals()], + output: { + filename: 'index.js', + path: path.resolve(__dirname, 'build'), + library: '', + libraryTarget: 'commonjs', + }, + plugins: [new CleanWebpackPlugin()], + module: { + rules: [ + { + test: /\.(js|jsx)$/, + exclude: /node_modules/, + use: ['babel-loader'], + }, + { + test: /\.svg$/, + use: [ + { + loader: 'svg-url-loader', + options: { + limit: 10000, + }, + }, + ], + }, + ], + }, +}; From 4e78c807b64ca22d3ff8c7251e63bfce1b09edc7 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Wed, 19 Aug 2020 09:36:17 +0700 Subject: [PATCH 038/740] notifications --- package-lock.json | 22 +++++--- src/Files/File.js | 4 +- src/Files/index.js | 2 +- src/Images/Image.js | 2 +- src/PostCompose/index.js | 21 +++++++- src/UiKitProvider/index.js | 2 + src/commonComponents/Notification/index.js | 44 ++++++++++++++++ src/commonComponents/Notification/styles.js | 57 +++++++++++++++++++++ 8 files changed, 142 insertions(+), 12 deletions(-) create mode 100644 src/commonComponents/Notification/index.js create mode 100644 src/commonComponents/Notification/styles.js diff --git a/package-lock.json b/package-lock.json index 618a2672a..129380e30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "upstra-uikit", - "version": "0.0.1", + "version": "0.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10036,6 +10036,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dev": true, "requires": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -12802,6 +12803,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", + "dev": true, "requires": { "@babel/runtime": "^7.5.5", "tiny-warning": "^1.0.3" @@ -15654,6 +15656,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "dev": true, "requires": { "@babel/runtime": "^7.1.2", "history": "^4.9.0", @@ -15670,12 +15673,14 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, "requires": { "isarray": "0.0.1" } @@ -15686,6 +15691,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "dev": true, "requires": { "@babel/runtime": "^7.1.2", "history": "^4.9.0", @@ -16201,7 +16207,8 @@ "resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -18136,12 +18143,14 @@ "tiny-invariant": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==", + "dev": true }, "tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "dev": true }, "tlds": { "version": "1.207.0", @@ -18721,7 +18730,8 @@ "value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "dev": true }, "vary": { "version": "1.1.2", diff --git a/src/Files/File.js b/src/Files/File.js index 623a965fc..a8e217d98 100644 --- a/src/Files/File.js +++ b/src/Files/File.js @@ -6,9 +6,9 @@ import FileIcon from './FileIcon'; import { FileContainer, Content, FileName, FileSize, ProgressBar, RemoveIcon } from './styles'; -const File = ({ file, onRemove }) => { +const File = ({ editing, file, onRemove }) => { // simulate progress animation - const [progress, setProgress] = useState(0); + const [progress, setProgress] = useState(editing ? 0 : 100); useEffect( () => { if (progress >= 100) return; diff --git a/src/Files/index.js b/src/Files/index.js index 90f14f182..e479ad5bd 100644 --- a/src/Files/index.js +++ b/src/Files/index.js @@ -21,7 +21,7 @@ const Files = ({ editing, files = [], onRemove }) => { return ( {visibleFiles.map((file, i) => ( - + ))} {haveHiddenFiles && View all files} diff --git a/src/Images/Image.js b/src/Images/Image.js index 6313ef94d..d0a6d4f6e 100644 --- a/src/Images/Image.js +++ b/src/Images/Image.js @@ -11,7 +11,7 @@ import { const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { // simulate progress animation - const [progress, setProgress] = useState(0); + const [progress, setProgress] = useState(editing ? 0 : 100); useEffect( () => { if (progress >= 100) return; diff --git a/src/PostCompose/index.js b/src/PostCompose/index.js index 013d1e76a..219d647e6 100644 --- a/src/PostCompose/index.js +++ b/src/PostCompose/index.js @@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react'; import InfiniteScroll from 'react-infinite-scroller'; import { customizableComponent } from '../hoks/customization'; +import { notification } from '../commonComponents/Notification'; import Files from '../Files'; import Images from '../Images'; @@ -166,6 +167,16 @@ const PostAsCommunity = ({ value, onChange }) => ( const isIdenticalAuthor = (a, b) => (!!a.userId && a.userId == b.userId) || (!!a.communityId && a.communityId == b.communityId); +const maxImagesWarning = () => + notification.info({ + content: 'You reached the maximum attachment of 10', + }); + +const maxFilesWarning = () => + notification.info({ + content: 'The selected file is larger than 1GB. Plese select a new file. ', + }); + const PostComposeBar = ({ user = { userId: 1, name: 'John' }, community = { communityId: 33, name: 'Harry Potter Fans' }, @@ -255,8 +266,14 @@ const PostComposeBar = ({ )} - - + + {edit ? 'Save' : 'Post'} diff --git a/src/UiKitProvider/index.js b/src/UiKitProvider/index.js index 98dbdaf40..d778e9463 100644 --- a/src/UiKitProvider/index.js +++ b/src/UiKitProvider/index.js @@ -9,6 +9,7 @@ import { IntlProvider } from 'react-intl'; import GlobalStyle from './GlobalStyle'; import GlobalTheme from './GlobalTheme'; import { ConfirmContainer } from '../commonComponents/Confirm'; +import { NotificationsContainer } from '../commonComponents/Notification'; _changeSDKDefaultConfig({ ws: { endpoint: 'https://api.staging.ekomedia.technology' }, @@ -60,6 +61,7 @@ const UiKitProvider = ({ {children} + diff --git a/src/commonComponents/Notification/index.js b/src/commonComponents/Notification/index.js new file mode 100644 index 000000000..2b0c68a56 --- /dev/null +++ b/src/commonComponents/Notification/index.js @@ -0,0 +1,44 @@ +import React, { useState, useEffect } from 'react'; + +import { NotificationContainer, Notifications, SuccessIcon, InfoIcon, ErrorIcon } from './styles'; + +const DEFAULT_NOTIFICATION_DURATION = 5000; + +const Notification = ({ className, content, icon }) => ( + + {icon} {content} + +); + +let spawnNewNotification; + +// rendered by provider, to allow spawning of notification from notification function below +export const NotificationsContainer = () => { + const [notifications, setNotifications] = useState([]); + + const removeNotification = id => + setNotifications && + setNotifications(notifications => notifications.filter(notification => notification.id != id)); + + spawnNewNotification = ( + { duration = DEFAULT_NOTIFICATION_DURATION, ...notificationData }, + icon, + ) => { + const id = Date.now(); + + setNotifications([{ id, ...notificationData }, ...notifications]); + + setTimeout(() => removeNotification(id), duration); + }; + + return {notifications.map(Notification)}; +}; + +export const notification = { + success: data => spawnNewNotification({ ...data, icon: }), + info: data => spawnNewNotification({ ...data, icon: }), + error: data => spawnNewNotification({ ...data, icon: }), + show: data => spawnNewNotification(data), +}; + +export default Notification; diff --git a/src/commonComponents/Notification/styles.js b/src/commonComponents/Notification/styles.js new file mode 100644 index 000000000..f5a358ab9 --- /dev/null +++ b/src/commonComponents/Notification/styles.js @@ -0,0 +1,57 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faExclamationCircle, faCheck, faTimes } from '@fortawesome/pro-regular-svg-icons'; + +export const SuccessIcon = styled(FaIcon).attrs({ icon: faCheck })` + font-size: 18px; + margin-right: 8px; +`; + +export const InfoIcon = styled(FaIcon).attrs({ icon: faExclamationCircle })` + font-size: 18px; + margin-right: 8px; +`; + +export const ErrorIcon = styled(FaIcon).attrs({ icon: faTimes })` + font-size: 18px; + margin-right: 8px; +`; + +export const Notifications = styled.div` + position: fixed; + padding-top: 50px; + top: 0; + left: 0; + right: 0; + display: flex; + flex-direction: column; + align-items: center; + z-index: 3; + pointer-events: none; +`; + +export const NotificationContainer = styled.div` + width: 480px; + padding: 8px 30px; + display: flex; + justify-content: center; + align-items: center; + color: white; + background: #292b32; + border-radius: 4px; + margin-bottom: 10px; + + animation-duration: 0.3s; + animation-name: appear; + + @keyframes appear { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } + pointer-events: auto; +`; From 23329b8bd3e93a734b6da46fe7e7b3e13d279e74 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Thu, 20 Aug 2020 14:29:44 +0700 Subject: [PATCH 039/740] bugfixes --- src/Comment/index.js | 6 +- src/Comment/styles.js | 8 ++ src/Community/Community.stories.js | 79 +++++++++++++- src/Community/NewsFeed.js | 45 ++++++++ src/Community/UserFeed.js | 81 +++++++++++++++ src/Community/index.js | 114 +++++---------------- src/Community/styles.js | 24 ++--- src/CommunityHeader/index.js | 14 --- src/CommunityHeader/styles.js | 23 ----- src/CommunityInformation/index.js | 7 -- src/CommunityItem/index.js | 4 +- src/FeedLayout/index.js | 15 +++ src/FeedLayout/styles.js | 14 +++ src/FeedSideMenu/index.js | 73 +++++++++++++ src/{SideMenu => FeedSideMenu}/styles.js | 0 src/Files/styles.js | 5 + src/PostCompose/index.js | 74 +++++++++++-- src/PostCompose/styles.js | 21 ++++ src/SideMenu/index.js | 52 ---------- src/UserFeedHeader/index.js | 43 ++++++++ src/UserFeedHeader/styles.js | 11 ++ src/commonComponents/Menu/styles.js | 3 + src/commonComponents/Notification/index.js | 2 +- src/hooks/usePostsMock.js | 15 +++ src/mock/index.js | 88 ++++++++++++++++ 25 files changed, 607 insertions(+), 214 deletions(-) create mode 100644 src/Community/NewsFeed.js create mode 100644 src/Community/UserFeed.js create mode 100644 src/FeedLayout/index.js create mode 100644 src/FeedLayout/styles.js create mode 100644 src/FeedSideMenu/index.js rename src/{SideMenu => FeedSideMenu}/styles.js (100%) delete mode 100644 src/SideMenu/index.js create mode 100644 src/UserFeedHeader/index.js create mode 100644 src/UserFeedHeader/styles.js create mode 100644 src/hooks/usePostsMock.js create mode 100644 src/mock/index.js diff --git a/src/Comment/index.js b/src/Comment/index.js index 86ab058b5..23ac4b8d6 100644 --- a/src/Comment/index.js +++ b/src/Comment/index.js @@ -4,7 +4,6 @@ import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; import Linkify from '../commonComponents/Linkify'; -import { SecondaryButton } from '../commonComponents/Button'; import Files from '../Files'; import Images from '../Images'; @@ -21,6 +20,7 @@ import { ReadMoreButton, InteractionBar, LikeIcon, + LikeButton, SolidLikeIcon, } from './styles'; @@ -60,9 +60,9 @@ const Comment = ({ className, comment, comment: { author, text, isLiked, likes = )} - + {isLiked ? : } {!!totalLikes && totalLikes} - + diff --git a/src/Comment/styles.js b/src/Comment/styles.js index 3893cbae3..395eab097 100644 --- a/src/Comment/styles.js +++ b/src/Comment/styles.js @@ -63,6 +63,14 @@ export const LikeIcon = styled(FaIcon).attrs({ icon: faThumbsUp })` margin-right: 5px; `; +export const LikeButton = styled(SecondaryButton)` + padding: 12px 0; + + &:hover { + background-color: transparent; + } +`; + export const SolidLikeIcon = styled(FaIcon).attrs({ icon: faThumbsUpSolid })` font-size: 16px; margin-right: 5px; diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index 8596be49c..e61f956a7 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -1,11 +1,84 @@ import React, { useEffect } from 'react'; -import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; +import { + HashRouter as Router, + Switch, + Route, + Link, + useLocation, + useHistory, + useRouteMatch, +} from 'react-router-dom'; -import Community from './index'; import UiKitProvider from '../UiKitProvider'; +import Layout from '../Layout/'; +import SideMenu, { SELECTION_TYPES } from '../SideMenu'; + +import UserFeed from './UserFeed'; +import NewsFeed from './NewsFeed'; +import CommunityFeed from './index'; + export default { title: 'Community', }; -export const CommunityHome = () => ; +const Pages = () => { + const location = useLocation(); + const history = useHistory(); + const { params = {} } = useRouteMatch('/community/:communityId') || {}; + const { communityId } = params; + + const goToCommunity = communityId => { + history.push(`/community/${communityId}`); + }; + + const goToNewsFeed = () => history.push(`/news`); + const goToExplore = () => history.push(`/explore`); + + const pathToSelectionType = { + '/news': SELECTION_TYPES.NEWS_FEED, + '/explore': SELECTION_TYPES.EXPLORE, + }; + + const selected = { + type: pathToSelectionType[location.pathname], + communityId, + }; + + return ( + console.log('TODO')} + onCommunityClick={goToCommunity} + onNewsFeedClick={goToNewsFeed} + onExploreClick={goToExplore} + /> + } + > + + + + + + + + + Explore page, in progress + + + + + + + ); +}; + +export const App = () => { + return ( + + + + ); +}; diff --git a/src/Community/NewsFeed.js b/src/Community/NewsFeed.js new file mode 100644 index 000000000..25b52f6b3 --- /dev/null +++ b/src/Community/NewsFeed.js @@ -0,0 +1,45 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; +import withSDK from '../hoks/withSDK'; + +import EmptyFeed from '../EmptyFeed'; + +import usePostsMock from '../hooks/usePostsMock'; + +import { communities } from '../mock'; + +import { Content, Feed, PostCompose, Post, CommunityHeader } from './styles'; + +const NEWS_TEST_POSTS = [ + { + id: 2, + author: { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, + text: 'News feed text', + }, +]; + +const NewsFeed = ({ client }) => { + const { posts, addPost, removePost, editPost } = usePostsMock(NEWS_TEST_POSTS); + + return ( + <> + + + + {posts.length === 0 && } + {posts.map(post => ( + editPost(updatedPost)} + onDelete={() => removePost(post.id)} + /> + ))} + + + + ); +}; + +export default withSDK(customizableComponent('NewsFeed')(NewsFeed)); diff --git a/src/Community/UserFeed.js b/src/Community/UserFeed.js new file mode 100644 index 000000000..360b941d0 --- /dev/null +++ b/src/Community/UserFeed.js @@ -0,0 +1,81 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; +import withSDK from '../hoks/withSDK'; + +import CommunityInformation from '../CommunityInformation'; +import EmptyFeed from '../EmptyFeed'; + +import usePostsMock from '../hooks/usePostsMock'; + +import { Content, Feed, PostCompose, Post, UserFeedHeader } from './styles'; + +const USER_TEST_POSTS = [ + { + id: 1, + author: { name: 'John' }, + text: + 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', + images: [ + { + id: 1, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 2, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + { + id: 3, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 4, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + { + id: 5, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 6, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + ], + }, + { + id: 2, + author: { name: 'John' }, + text: 'text text text', + }, +]; + +const UserFeed = ({ client }) => { + const { posts, addPost, removePost, editPost } = usePostsMock(USER_TEST_POSTS); + + return ( + <> + + + + + {posts.length === 0 && } + {posts.map(post => ( + editPost(updatedPost)} + onDelete={() => removePost(post.id)} + /> + ))} + + {/* */} + + + ); +}; + +export default withSDK(customizableComponent('UserFeed')(UserFeed)); diff --git a/src/Community/index.js b/src/Community/index.js index cba61a8b4..edaf0a063 100644 --- a/src/Community/index.js +++ b/src/Community/index.js @@ -1,104 +1,44 @@ import React, { useState, useEffect } from 'react'; -import { ChannelRepository, EkoPostDataType } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; import withSDK from '../hoks/withSDK'; -import useLiveObject from '../hooks/useLiveObject'; -import SideMenu from '../SideMenu'; + import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; -import { - CommunityContainer, - CommunityContent, - CommunityFeed, - PostCompose, - Post, - CommunityWrapper, - CommunityHeader, -} from './styles'; - -const Community = ({ client }) => { - // const feed = useLiveObject(() => feedRepo.getUserFeed(client.currentUserId), []); +import usePostsMock from '../hooks/usePostsMock'; - // const textPostCreator = postRepo.createPost(EkoPostDataType.TextPost); - // textPostCreator.targetUser(client.currentUserId); - // textPostCreator.text('foobar'); +import { communities } from '../mock'; - // textPostCreator.post().then(res => console.log(res)); +import { Content, Feed, PostCompose, Post, CommunityHeader } from './styles'; - const [posts, setPosts] = useState([ - { - id: 1, - author: { name: 'John' }, - text: - 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', - images: [ - { - id: 1, - url: - 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', - }, - { - id: 2, - url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', - }, - { - id: 3, - url: - 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', - }, - { - id: 4, - url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', - }, - { - id: 5, - url: - 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', - }, - { - id: 6, - url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', - }, - ], - }, - { - id: 2, - author: { name: 'John' }, - text: 'text text text', - }, - ]); +const COMMUNITY_TEST_POSTS = []; - const addPost = newPost => setPosts([newPost, ...posts]); - const removePost = postId => setPosts(posts.filter(({ id }) => id !== postId)); +const CommunityFeed = ({ client, communityId }) => { + const { posts, addPost, removePost, editPost } = usePostsMock(COMMUNITY_TEST_POSTS); - const editPost = updatedPost => - setPosts(posts.map(post => (post.id === updatedPost.id ? updatedPost : post))); + const community = communities.find(community => community.communityId === communityId); return ( - - - - - - - - {posts.length === 0 && } - {posts.map(post => ( - editPost(updatedPost)} - onDelete={() => removePost(post.id)} - /> - ))} - - - - - + <> + + + + + {posts.length === 0 && } + {posts.map(post => ( + editPost(updatedPost)} + onDelete={() => removePost(post.id)} + /> + ))} + + + + ); }; -export default withSDK(customizableComponent('Community')(Community)); +export default withSDK(customizableComponent('CommunityFeed')(CommunityFeed)); diff --git a/src/Community/styles.js b/src/Community/styles.js index ded22063f..aeed05d71 100644 --- a/src/Community/styles.js +++ b/src/Community/styles.js @@ -2,37 +2,29 @@ import styled from 'styled-components'; import UiPost from '../Post'; import UiPostCompose from '../PostCompose'; import UiCommunityHeader from '../CommunityHeader'; +import UiUserFeedHeader from '../UserFeedHeader'; export const Post = styled(UiPost)` margin-bottom: 12px; `; export const CommunityHeader = styled(UiCommunityHeader)` - margin: 24px 0 12px; + margin-bottom: 12px; `; -export const PostCompose = styled(UiPostCompose)` - margin-bottom: 14px; +export const UserFeedHeader = styled(UiUserFeedHeader)` + margin-bottom: 12px; `; -export const CommunityContainer = styled.div` - display: flex; - background: #f7f7f8; - height: 90vh; - overflow: hidden; +export const PostCompose = styled(UiPostCompose)` + margin-bottom: 14px; `; -export const CommunityContent = styled.div` +export const Content = styled.div` overflow-y: auto; display: flex; `; -export const CommunityFeed = styled.div` +export const Feed = styled.div` margin-right: 36px; `; - -export const CommunityWrapper = styled.div` - width: 100%; - padding: 0 78px; - overflow: scroll; -`; diff --git a/src/CommunityHeader/index.js b/src/CommunityHeader/index.js index 51efa7bdd..ca7b673c9 100644 --- a/src/CommunityHeader/index.js +++ b/src/CommunityHeader/index.js @@ -33,20 +33,6 @@ const ChatButton = () => ( const CommunityHeader = ({ className }) => { return ( - {/* */} - {/* */} - {/*
*/} - {/* {private && } */} - {/* {name} */} - {/*
*/} - {/* {toHumanString(postsCount)} posts{' '} */} - {/* {toHumanString(membersCount)} members */} - {/*
*/} - {/*
*/} - {/* */} - {/* */} - {/* */} - {/*
*/} Timeline About diff --git a/src/CommunityHeader/styles.js b/src/CommunityHeader/styles.js index 2049cc375..023cc61db 100644 --- a/src/CommunityHeader/styles.js +++ b/src/CommunityHeader/styles.js @@ -1,21 +1,4 @@ import styled from 'styled-components'; -import UiAvatar from '../Avatar'; -import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faCommentsAlt, faPen, faLockAlt } from '@fortawesome/pro-regular-svg-icons'; - -export const PrivateIcon = styled(FaIcon).attrs({ icon: faLockAlt })` - margin-right: 8px; - font-size: 16px; -`; - -export const ChatIcon = styled(FaIcon).attrs({ icon: faCommentsAlt })` - font-size: 16px; -`; - -export const PenIcon = styled(FaIcon).attrs({ icon: faPen })` - font-size: 16px; - margin-right: 10px; -`; export const CommunityHeaderContainer = styled.div` background: #ffffff; @@ -23,12 +6,6 @@ export const CommunityHeaderContainer = styled.div` border-radius: 4px 4px 0 0; `; -export const CommunityWrapper = styled.div` - padding: 16px; - display: flex; - align-items: center; -`; - export const Tabs = styled.div` padding: 0 16px; `; diff --git a/src/CommunityInformation/index.js b/src/CommunityInformation/index.js index 0c91d06ef..fa76de9ca 100644 --- a/src/CommunityInformation/index.js +++ b/src/CommunityInformation/index.js @@ -28,13 +28,6 @@ const CommunityInformation = ({ community = testCommunity, onChannelClick, selec /> {name} - {/* */} - {/* Take your place in the magical universe of Harry Poter. Everyone's welcome and feel free to */} - {/* join! */} - {/* */} - {/*
*/} - {/* View all */} - {/*
*/} ); }; diff --git a/src/CommunityItem/index.js b/src/CommunityItem/index.js index 61ede7cf0..4c1c4bffd 100644 --- a/src/CommunityItem/index.js +++ b/src/CommunityItem/index.js @@ -10,8 +10,8 @@ import { PrivateIcon, } from './styles'; -const CommunityItem = ({ community, selected, onSelect }) => ( - onSelect(channel.channelId)} selected={selected}> +const CommunityItem = ({ community, active, onClick }) => ( + {community.isPrivate && } {community.name} diff --git a/src/FeedLayout/index.js b/src/FeedLayout/index.js new file mode 100644 index 000000000..a00f46126 --- /dev/null +++ b/src/FeedLayout/index.js @@ -0,0 +1,15 @@ +import React from 'react'; +import { customizableComponent } from '../hoks/customization'; + +import { LayoutContainer, FeedWrapper } from './styles'; + +const FeedLayout = ({ sideMenu, children }) => { + return ( + + {sideMenu} + {children} + + ); +}; + +export default customizableComponent('FeedLayout')(FeedLayout); diff --git a/src/FeedLayout/styles.js b/src/FeedLayout/styles.js new file mode 100644 index 000000000..ccb640ba5 --- /dev/null +++ b/src/FeedLayout/styles.js @@ -0,0 +1,14 @@ +import styled from 'styled-components'; + +export const LayoutContainer = styled.div` + display: flex; + background: #f7f7f8; + height: 90vh; + overflow: hidden; +`; + +export const FeedWrapper = styled.div` + width: 100%; + padding: 24px 78px 0; + overflow: scroll; +`; diff --git a/src/FeedSideMenu/index.js b/src/FeedSideMenu/index.js new file mode 100644 index 000000000..6246198c3 --- /dev/null +++ b/src/FeedSideMenu/index.js @@ -0,0 +1,73 @@ +import React, { useState, useEffect } from 'react'; +import { ChannelRepository } from 'eko-sdk'; + +import { customizableComponent } from '../hoks/customization'; +import useLiveObject from '../hooks/useLiveObject'; +import CommunityItem from '../CommunityItem'; +import SideMenuItem from '../commonComponents/SideMenuItem'; + +import { communities } from '../mock'; + +import { + SideMenuListContainer, + BlockTitle, + CommunityBlock, + MyCommunityBlock, + NewsIcon, + SearchIcon, + PlusIcon, + VervifiedIcon, +} from './styles'; + +export const SELECTION_TYPES = { + NEWS_FEED: 'NEWS_FEED', + EXPLORE: 'EXPLORE', + COMMUNITY: 'COMMUNITY', +}; + +const FeedSideMenu = ({ + selected: { type, communityId } = {}, + onCreateCommunityClick, + onCommunityClick, + onNewsFeedClick, + onExploreClick, + selectedChannelId, +}) => { + return ( + + + Community + } + > + NewsFeed + + } + > + Explore + + + + My Community + }> + Create Community + + {communities.map((community, i) => ( + onCommunityClick(community.communityId)} + key={i} + community={community} + /> + ))} + + + ); +}; + +export default customizableComponent('FeedSideMenu')(FeedSideMenu); diff --git a/src/SideMenu/styles.js b/src/FeedSideMenu/styles.js similarity index 100% rename from src/SideMenu/styles.js rename to src/FeedSideMenu/styles.js diff --git a/src/Files/styles.js b/src/Files/styles.js index 2c064f473..c90e0c402 100644 --- a/src/Files/styles.js +++ b/src/Files/styles.js @@ -57,4 +57,9 @@ export const ViewAllFilesButton = styled(SecondaryButton)` display: block; color: #1054de; margin-top: 4px; + padding: 12px 0; + + &:hover { + background-color: transparent; + } `; diff --git a/src/PostCompose/index.js b/src/PostCompose/index.js index 219d647e6..4a4dd3ae6 100644 --- a/src/PostCompose/index.js +++ b/src/PostCompose/index.js @@ -6,12 +6,18 @@ import { notification } from '../commonComponents/Notification'; import Files from '../Files'; import Images from '../Images'; +import Popover from '../commonComponents/Popover/'; +import Menu, { MenuItem } from '../commonComponents/Menu'; + import { + AuthorSelectorContainer, + CommunitySeparator, PostComposeContainer, PostComposeTextarea, PostComposeTextareaWrapper, ImagePostIcon, FilePostIcon, + SelectIcon, Footer, FooterActionBar, PostContainer, @@ -165,7 +171,9 @@ const PostAsCommunity = ({ value, onChange }) => ( ); const isIdenticalAuthor = (a, b) => - (!!a.userId && a.userId == b.userId) || (!!a.communityId && a.communityId == b.communityId); + !!a && + !!b && + ((!!a.userId && a.userId == b.userId) || (!!a.communityId && a.communityId == b.communityId)); const maxImagesWarning = () => notification.info({ @@ -177,11 +185,59 @@ const maxFilesWarning = () => content: 'The selected file is larger than 1GB. Plese select a new file. ', }); +const AuthorSelector = ({ author, user, communities, onChange }) => { + if (!communities || !communities.length) return ; + + const [isOpen, setIsOpen] = useState(false); + const open = () => setIsOpen(true); + const close = () => setIsOpen(false); + + const menu = ( + + { + onChange(user); + close(); + }} + > + My Timeline + + Community + {communities.map(community => ( + { + onChange(community); + close(); + }} + > + {community.name} + + ))} + + ); + + return ( +
+ + + + + +
+ ); +}; + const PostComposeBar = ({ user = { userId: 1, name: 'John' }, - community = { communityId: 33, name: 'Harry Potter Fans' }, + community, communities, - inGlobalFeed, edit, post = {}, onSubmit, @@ -247,9 +303,14 @@ const PostComposeBar = ({ return ( - {!edit && - /* (inGlobalFeed ? : ) */ - } + {!edit && ( + + )} setText(e.target.value)} /> + {!!files.length && } {!!images.length && } diff --git a/src/PostCompose/styles.js b/src/PostCompose/styles.js index f1411831f..a2d4a946a 100644 --- a/src/PostCompose/styles.js +++ b/src/PostCompose/styles.js @@ -2,6 +2,7 @@ import styled from 'styled-components'; import TextareaAutosize from 'react-autosize-textarea'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; +import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; import { PrimaryButton } from '../commonComponents/Button'; import UIAvatar from '../Avatar'; @@ -13,6 +14,12 @@ export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; `; +export const SelectIcon = styled(FaIcon).attrs({ icon: faSortDown })` + font-size: 18px; + margin-right: 8px; + margin-top: -4px; +`; + export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` font-size: 18px; margin-right: 12px; @@ -66,6 +73,7 @@ export const PostComposeTextareaWrapper = styled.div` flex-direction: column; flex-grow: 1; border-radius: 4px; + min-height: 40px; `; const footerEditStyle = ` @@ -120,3 +128,16 @@ export const Caption = styled.div` ${({ theme }) => theme.typography.caption} color: #636878; `; + +export const AuthorSelectorContainer = styled.div` + display: flex; + align-items: center; + cursor: pointer; +`; + +export const CommunitySeparator = styled.div` + ${({ theme }) => theme.typography.caption} + border-top: 1px solid #e3e4e8; + color: #636878; + padding: 12px; +`; diff --git a/src/SideMenu/index.js b/src/SideMenu/index.js deleted file mode 100644 index c9580fb73..000000000 --- a/src/SideMenu/index.js +++ /dev/null @@ -1,52 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { ChannelRepository } from 'eko-sdk'; - -import { customizableComponent } from '../hoks/customization'; -import useLiveObject from '../hooks/useLiveObject'; -import CommunityItem from '../CommunityItem'; -import SideMenuItem from '../commonComponents/SideMenuItem'; - -import { - SideMenuListContainer, - BlockTitle, - CommunityBlock, - MyCommunityBlock, - NewsIcon, - SearchIcon, - PlusIcon, - VervifiedIcon, -} from './styles'; - -const SideMenu = ({ onChannelClick, selectedChannelId }) => { - const communities = [ - { name: 'Billie Ellish Fans' }, - { name: 'BLACKPINK TH', verified: true }, - { name: 'Breakfast Club' }, - { name: 'BTS & ARMY' }, - { name: 'Harry Potter Fans', isPrivate: true }, - ]; - - return ( - - - Community - }>NewsFeed - }>Explore - - - My Community - }>Create Community - {communities.map((community, i) => ( - - ))} - - - ); -}; - -export default customizableComponent('SideMenu')(SideMenu); diff --git a/src/UserFeedHeader/index.js b/src/UserFeedHeader/index.js new file mode 100644 index 000000000..8982c233c --- /dev/null +++ b/src/UserFeedHeader/index.js @@ -0,0 +1,43 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import { customizableComponent } from '../hoks/customization'; +import Button from '../commonComponents/Button'; +import Tab from '../commonComponents/Tab'; + +import { + Avatar, + Buttons, + UserFeedHeaderContainer, + CommunityWrapper, + CommunityName, + Tabs, + Count, + ChatIcon, + PenIcon, + PrivateIcon, +} from './styles'; + +const EditProfileButton = () => ( + +); + +const ChatButton = () => ( + +); + +const UserFeedHeader = ({ className }) => { + return ( + + + Timeline + + + ); +}; + +export default customizableComponent('UserFeedHeader')(UserFeedHeader); diff --git a/src/UserFeedHeader/styles.js b/src/UserFeedHeader/styles.js new file mode 100644 index 000000000..16ed01f04 --- /dev/null +++ b/src/UserFeedHeader/styles.js @@ -0,0 +1,11 @@ +import styled from 'styled-components'; + +export const UserFeedHeaderContainer = styled.div` + background: #ffffff; + border: 1px solid #edeef2; + border-radius: 4px 4px 0 0; +`; + +export const Tabs = styled.div` + padding: 0 16px; +`; diff --git a/src/commonComponents/Menu/styles.js b/src/commonComponents/Menu/styles.js index 2de17c7c0..2ae5c76fa 100644 --- a/src/commonComponents/Menu/styles.js +++ b/src/commonComponents/Menu/styles.js @@ -3,9 +3,12 @@ import styled from 'styled-components'; export const Menu = styled.div``; export const MenuItem = styled.div` + display: flex; + align-items: center; padding: 8px 12px; cursor: pointer; &:hover { background: #f2f2f4; } + ${({ active, theme }) => active && `color: ${theme.color.primary1};`} `; diff --git a/src/commonComponents/Notification/index.js b/src/commonComponents/Notification/index.js index 2b0c68a56..b96d7d308 100644 --- a/src/commonComponents/Notification/index.js +++ b/src/commonComponents/Notification/index.js @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import { NotificationContainer, Notifications, SuccessIcon, InfoIcon, ErrorIcon } from './styles'; -const DEFAULT_NOTIFICATION_DURATION = 5000; +const DEFAULT_NOTIFICATION_DURATION = 3000; const Notification = ({ className, content, icon }) => ( diff --git a/src/hooks/usePostsMock.js b/src/hooks/usePostsMock.js new file mode 100644 index 000000000..c8eb6bfdd --- /dev/null +++ b/src/hooks/usePostsMock.js @@ -0,0 +1,15 @@ +import { useState } from 'react'; + +const usePostsMock = (initialPosts = []) => { + const [posts, setPosts] = useState(initialPosts); + + const addPost = newPost => setPosts([newPost, ...posts]); + const removePost = postId => setPosts(posts.filter(({ id }) => id !== postId)); + + const editPost = updatedPost => + setPosts(posts.map(post => (post.id === updatedPost.id ? updatedPost : post))); + + return { posts, addPost, removePost, editPost }; +}; + +export default usePostsMock; diff --git a/src/mock/index.js b/src/mock/index.js new file mode 100644 index 000000000..b92c85850 --- /dev/null +++ b/src/mock/index.js @@ -0,0 +1,88 @@ +import React, { useContext, useMemo, useState } from 'react'; + +const userFeed = [ + { + id: 1, + author: { name: 'John' }, + text: + 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', + images: [ + { + id: 1, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 2, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + { + id: 3, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 4, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + { + id: 5, + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + id: 6, + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, + ], + }, + { + id: 2, + author: { name: 'John' }, + text: 'text text text', + }, +]; + +const newsFeed = [ + { + id: 2, + author: { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, + text: 'News feed post', + }, +]; + +const defaultCommunityFeed = [ + { + id: 1, + text: 'News feed post', + }, +]; + +export const communities = [ + { communityId: '1', name: 'Billie Ellish Fans' }, + { communityId: '2', name: 'BLACKPINK TH', verified: true }, + { communityId: '3', name: 'Breakfast Club' }, + { communityId: '4', name: 'BTS & ARMY' }, + { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, +]; + +const communityFeeds = communities.map(community => [ + { + id: '1', + author: community, + text: 'Community post', + }, +]); + +export const MockDataContext = React.createContext(); + +export const MockDataProvider = props => { + const [data, setData] = useState({ + communities, + communityFeeds, + userFeed, + newsFeed, + }); + + ; +}; From 6d97c0ebee8606d0c23d4a681f90359825e7c9c3 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Thu, 20 Aug 2020 14:39:57 +0700 Subject: [PATCH 040/740] correctly show long community names --- src/CommunityItem/index.js | 2 +- src/CommunityItem/styles.js | 1 + src/mock/index.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/CommunityItem/index.js b/src/CommunityItem/index.js index 4c1c4bffd..e543432d7 100644 --- a/src/CommunityItem/index.js +++ b/src/CommunityItem/index.js @@ -14,7 +14,7 @@ const CommunityItem = ({ community, active, onClick }) => ( {community.isPrivate && } - {community.name} + {community.name} {community.verified && } ); diff --git a/src/CommunityItem/styles.js b/src/CommunityItem/styles.js index 58b922cdd..497a1ea4d 100644 --- a/src/CommunityItem/styles.js +++ b/src/CommunityItem/styles.js @@ -25,4 +25,5 @@ export const Avatar = styled(UiKitAvatar)` export const CommunityName = styled.div` overflow: hidden; text-overflow: ellipsis; + white-space: nowrap; `; diff --git a/src/mock/index.js b/src/mock/index.js index b92c85850..241be0d12 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -64,6 +64,7 @@ export const communities = [ { communityId: '3', name: 'Breakfast Club' }, { communityId: '4', name: 'BTS & ARMY' }, { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, + { communityId: '6', name: 'Very long name very very long name name', isPrivate: true }, ]; const communityFeeds = communities.map(community => [ From 4b484ef7a5380860d89ada2b48d987b6a7b7b22e Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Thu, 20 Aug 2020 15:12:33 +0700 Subject: [PATCH 041/740] fix dependencies --- src/Community/Community.stories.js | 10 +++++----- src/CommunityHeader/index.js | 28 ++-------------------------- src/UserFeedHeader/index.js | 26 +------------------------- 3 files changed, 8 insertions(+), 56 deletions(-) diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index e61f956a7..1d3e7b58a 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -11,8 +11,8 @@ import { import UiKitProvider from '../UiKitProvider'; -import Layout from '../Layout/'; -import SideMenu, { SELECTION_TYPES } from '../SideMenu'; +import FeedLayout from '../FeedLayout/'; +import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; import UserFeed from './UserFeed'; import NewsFeed from './NewsFeed'; @@ -46,9 +46,9 @@ const Pages = () => { }; return ( - console.log('TODO')} onCommunityClick={goToCommunity} @@ -71,7 +71,7 @@ const Pages = () => { - + ); }; diff --git a/src/CommunityHeader/index.js b/src/CommunityHeader/index.js index ca7b673c9..e4ef9c500 100644 --- a/src/CommunityHeader/index.js +++ b/src/CommunityHeader/index.js @@ -4,38 +4,14 @@ import { customizableComponent } from '../hoks/customization'; import Button from '../commonComponents/Button'; import Tab from '../commonComponents/Tab'; -import { - Avatar, - Buttons, - CommunityHeaderContainer, - CommunityWrapper, - CommunityName, - Tabs, - Count, - ChatIcon, - PenIcon, - PrivateIcon, -} from './styles'; - -const EditProfileButton = () => ( - -); - -const ChatButton = () => ( - -); +import { CommunityHeaderContainer, Tabs } from './styles'; const CommunityHeader = ({ className }) => { return ( Timeline - About + Members ); diff --git a/src/UserFeedHeader/index.js b/src/UserFeedHeader/index.js index 8982c233c..bce610a29 100644 --- a/src/UserFeedHeader/index.js +++ b/src/UserFeedHeader/index.js @@ -4,31 +4,7 @@ import { customizableComponent } from '../hoks/customization'; import Button from '../commonComponents/Button'; import Tab from '../commonComponents/Tab'; -import { - Avatar, - Buttons, - UserFeedHeaderContainer, - CommunityWrapper, - CommunityName, - Tabs, - Count, - ChatIcon, - PenIcon, - PrivateIcon, -} from './styles'; - -const EditProfileButton = () => ( - -); - -const ChatButton = () => ( - -); +import { CommunityHeaderContainer, Tabs } from './styles'; const UserFeedHeader = ({ className }) => { return ( From d7e51cfb37db29a45a2198a4920e65e73c8d780b Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Thu, 20 Aug 2020 15:14:38 +0700 Subject: [PATCH 042/740] one more fix --- src/UserFeedHeader/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UserFeedHeader/index.js b/src/UserFeedHeader/index.js index bce610a29..30dadef65 100644 --- a/src/UserFeedHeader/index.js +++ b/src/UserFeedHeader/index.js @@ -4,7 +4,7 @@ import { customizableComponent } from '../hoks/customization'; import Button from '../commonComponents/Button'; import Tab from '../commonComponents/Tab'; -import { CommunityHeaderContainer, Tabs } from './styles'; +import { UserFeedHeaderContainer, Tabs } from './styles'; const UserFeedHeader = ({ className }) => { return ( From 21508ecfb23627736e87c54ccd12dceee464dfa8 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Fri, 21 Aug 2020 16:18:15 +0700 Subject: [PATCH 043/740] separate mock data --- package-lock.json | 5 + package.json | 3 +- src/Avatar/index.js | 8 +- src/Avatar/styles.js | 7 + src/Community/NewsFeed.js | 16 +- src/Community/UserFeed.js | 46 +--- src/Community/index.js | 21 +- src/Community/styles.js | 16 +- src/CommunityHeader/index.js | 20 -- src/CommunityInformation/index.js | 2 +- src/CommunityItem/index.js | 2 +- src/FeedSideMenu/index.js | 4 +- src/Post/index.js | 2 +- src/PostCompose/index.js | 141 +----------- src/commonComponents/FeedHeaderTabs/index.js | 23 ++ .../FeedHeaderTabs}/styles.js | 2 +- src/commonComponents/Tab/styles.js | 2 +- src/index.js | 2 - src/mock/index.js | 214 ++++++++++++++++-- 19 files changed, 279 insertions(+), 257 deletions(-) delete mode 100644 src/CommunityHeader/index.js create mode 100644 src/commonComponents/FeedHeaderTabs/index.js rename src/{CommunityHeader => commonComponents/FeedHeaderTabs}/styles.js (77%) diff --git a/package-lock.json b/package-lock.json index 129380e30..a4f1adecb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15877,6 +15877,11 @@ "resolve": "^1.1.6" } }, + "recoil": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.0.10.tgz", + "integrity": "sha512-+9gRqehw3yKETmoZbhSnWu4GO10HDb5xYf1CjLF1oXGK2uT6GX5Lu9mfTXwjxV/jXxEKx8MIRUUbgPxvbJ8SEw==" + }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", diff --git a/package.json b/package.json index 98480f696..94440bfcc 100644 --- a/package.json +++ b/package.json @@ -79,6 +79,7 @@ "react-intl": "^4.7.6", "react-linkify": "^1.0.0-alpha", "react-tiny-popover": "^5.1.0", - "react-truncate-markup": "^5.0.0" + "react-truncate-markup": "^5.0.0", + "recoil": "0.0.10" } } diff --git a/src/Avatar/index.js b/src/Avatar/index.js index 357a28d23..63b5ac4a6 100644 --- a/src/Avatar/index.js +++ b/src/Avatar/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; -import { AvatarContainer } from './styles'; +import { AvatarContainer, Img } from './styles'; const STANDARD_SIZE = 40; @@ -11,8 +11,10 @@ const SIZES = { tiny: 28, }; -const Avatar = ({ className, size }) => ( - +const Avatar = ({ className, size, avatar }) => ( + + {avatar && } + ); export default customizableComponent('Avatar')(Avatar); diff --git a/src/Avatar/styles.js b/src/Avatar/styles.js index 7dcc4952d..025868801 100644 --- a/src/Avatar/styles.js +++ b/src/Avatar/styles.js @@ -8,4 +8,11 @@ height: ${size}px; width: ${size}px; `} flex-shrink: 0; + overflow: hidden; +`; + +export const Img = styled.img` + height: 100%; + width: 100%; + object-fit: cover; `; diff --git a/src/Community/NewsFeed.js b/src/Community/NewsFeed.js index 25b52f6b3..278688f0f 100644 --- a/src/Community/NewsFeed.js +++ b/src/Community/NewsFeed.js @@ -7,26 +7,18 @@ import EmptyFeed from '../EmptyFeed'; import usePostsMock from '../hooks/usePostsMock'; -import { communities } from '../mock'; +import { myCommunities, testNewsFeed } from '../mock'; -import { Content, Feed, PostCompose, Post, CommunityHeader } from './styles'; - -const NEWS_TEST_POSTS = [ - { - id: 2, - author: { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, - text: 'News feed text', - }, -]; +import { Content, Feed, PostCompose, Post } from './styles'; const NewsFeed = ({ client }) => { - const { posts, addPost, removePost, editPost } = usePostsMock(NEWS_TEST_POSTS); + const { posts, addPost, removePost, editPost } = usePostsMock(testNewsFeed); return ( <> - + {posts.length === 0 && } {posts.map(post => ( { - const { posts, addPost, removePost, editPost } = usePostsMock(USER_TEST_POSTS); + const { posts, addPost, removePost, editPost } = usePostsMock(userFeed); return ( <> diff --git a/src/Community/index.js b/src/Community/index.js index edaf0a063..c0e14334b 100644 --- a/src/Community/index.js +++ b/src/Community/index.js @@ -8,22 +8,35 @@ import EmptyFeed from '../EmptyFeed'; import usePostsMock from '../hooks/usePostsMock'; -import { communities } from '../mock'; +import { myCommunities } from '../mock'; -import { Content, Feed, PostCompose, Post, CommunityHeader } from './styles'; +import { Content, Feed, PostCompose, Post, FeedHeaderTabs } from './styles'; + +// TODO replace with translations keys +const tabs = { + TIMELINE: 'Timeline', + MEMBERS: 'Members', +}; const COMMUNITY_TEST_POSTS = []; const CommunityFeed = ({ client, communityId }) => { const { posts, addPost, removePost, editPost } = usePostsMock(COMMUNITY_TEST_POSTS); - const community = communities.find(community => community.communityId === communityId); + const community = myCommunities.find(community => community.communityId === communityId); + + const [activeTab, setActiveTab] = useState(tabs.TIMELINE); return ( <> - + + {posts.length === 0 && } {posts.map(post => ( diff --git a/src/Community/styles.js b/src/Community/styles.js index aeed05d71..038830007 100644 --- a/src/Community/styles.js +++ b/src/Community/styles.js @@ -1,22 +1,22 @@ import styled from 'styled-components'; -import UiPost from '../Post'; -import UiPostCompose from '../PostCompose'; -import UiCommunityHeader from '../CommunityHeader'; -import UiUserFeedHeader from '../UserFeedHeader'; +import UIPost from '../Post'; +import UIPostCompose from '../PostCompose'; +import UIFeedHeaderTabs from '../commonComponents/FeedHeaderTabs'; +import UIUserFeedHeader from '../UserFeedHeader'; -export const Post = styled(UiPost)` +export const Post = styled(UIPost)` margin-bottom: 12px; `; -export const CommunityHeader = styled(UiCommunityHeader)` +export const FeedHeaderTabs = styled(UIFeedHeaderTabs)` margin-bottom: 12px; `; -export const UserFeedHeader = styled(UiUserFeedHeader)` +export const UserFeedHeader = styled(UIUserFeedHeader)` margin-bottom: 12px; `; -export const PostCompose = styled(UiPostCompose)` +export const PostCompose = styled(UIPostCompose)` margin-bottom: 14px; `; diff --git a/src/CommunityHeader/index.js b/src/CommunityHeader/index.js deleted file mode 100644 index e4ef9c500..000000000 --- a/src/CommunityHeader/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { toHumanString } from 'human-readable-numbers'; -import { customizableComponent } from '../hoks/customization'; -import Button from '../commonComponents/Button'; -import Tab from '../commonComponents/Tab'; - -import { CommunityHeaderContainer, Tabs } from './styles'; - -const CommunityHeader = ({ className }) => { - return ( - - - Timeline - Members - - - ); -}; - -export default customizableComponent('CommunityHeader')(CommunityHeader); diff --git a/src/CommunityInformation/index.js b/src/CommunityInformation/index.js index fa76de9ca..9c38acf19 100644 --- a/src/CommunityInformation/index.js +++ b/src/CommunityInformation/index.js @@ -19,7 +19,7 @@ const CommunityInformation = ({ community = testCommunity, onChannelClick, selec return (
- + ( - + {community.isPrivate && } {community.name} {community.verified && } diff --git a/src/FeedSideMenu/index.js b/src/FeedSideMenu/index.js index 6246198c3..8a9963a2b 100644 --- a/src/FeedSideMenu/index.js +++ b/src/FeedSideMenu/index.js @@ -6,7 +6,7 @@ import useLiveObject from '../hooks/useLiveObject'; import CommunityItem from '../CommunityItem'; import SideMenuItem from '../commonComponents/SideMenuItem'; -import { communities } from '../mock'; +import { myCommunities } from '../mock'; import { SideMenuListContainer, @@ -57,7 +57,7 @@ const FeedSideMenu = ({ }> Create Community - {communities.map((community, i) => ( + {myCommunities.map((community, i) => ( onCommunityClick(community.communityId)} diff --git a/src/Post/index.js b/src/Post/index.js index 3a90c3a50..98df0259c 100644 --- a/src/Post/index.js +++ b/src/Post/index.js @@ -75,7 +75,7 @@ const Post = ({ {postEditingModal} <> - + {author.name} 30 min diff --git a/src/PostCompose/index.js b/src/PostCompose/index.js index 4a4dd3ae6..fb0120734 100644 --- a/src/PostCompose/index.js +++ b/src/PostCompose/index.js @@ -9,6 +9,8 @@ import Images from '../Images'; import Popover from '../commonComponents/Popover/'; import Menu, { MenuItem } from '../commonComponents/Menu'; +import { testUser, testFiles, testImages } from '../mock'; + import { AuthorSelectorContainer, CommunitySeparator, @@ -31,135 +33,6 @@ import { const MAX_IMAGES = 10; const MAX_FILES = 10; -const testFiles = [ - { - filename: 'text.txt', - size: 259, - }, - { - filename: 'book.pdf', - size: 223893, - }, - { - filename: 'podcast.ogg', - size: 2293893, - }, - { - filename: 'movie.avi', - size: 229389322, - }, - { - filename: 'page.html', - size: 1024, - }, - { - filename: 'presentation.ppt', - size: 2139232, - }, - { - filename: 'archive.zip', - size: 123123132923, - }, - { - filename: 'filename.audio', - size: 12323, - }, - { - filename: 'filename.ogg', - size: 12323, - }, - { - filename: 'filename.aac', - size: 12323, - }, - { - filename: 'filename.avi', - size: 12323, - }, - { - filename: 'filename.csv', - size: 12323, - }, - { - filename: 'filename.doc', - size: 12323, - }, - { - filename: 'filename.exe', - size: 12323, - }, - { - filename: 'filename.html', - size: 12323, - }, - { - filename: 'filename.jpg', - size: 12323, - }, - { - filename: 'filename.png', - size: 12323, - }, - { - filename: 'filename.gif', - size: 12323, - }, - { - filename: 'filename.mov', - size: 12323, - }, - { - filename: 'filename.mp3', - size: 12323, - }, - { - filename: 'filename.mp4', - size: 12323, - }, - { - filename: 'filename.mpeg', - size: 12323, - }, - { - filename: 'filename.pdf', - size: 12323, - }, - { - filename: 'filename.ppt', - size: 12323, - }, - { - filename: 'filename.ppx', - size: 12323, - }, - { - filename: 'filename.rar', - size: 12323, - }, - { - filename: 'filename.txt', - size: 12323, - }, - { - filename: 'filename.xls', - size: 12323, - }, - { - filename: 'filename.zip', - size: 12323, - }, -]; - -const testImages = [ - { - url: - 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', - }, - { - url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', - }, -]; - const PostAsCommunity = ({ value, onChange }) => ( onChange(e.target.checked)} /> @@ -186,7 +59,7 @@ const maxFilesWarning = () => }); const AuthorSelector = ({ author, user, communities, onChange }) => { - if (!communities || !communities.length) return ; + if (!communities || !communities.length) return ; const [isOpen, setIsOpen] = useState(false); const open = () => setIsOpen(true); @@ -200,7 +73,7 @@ const AuthorSelector = ({ author, user, communities, onChange }) => { close(); }} > - My Timeline + My Timeline Community {communities.map(community => ( @@ -211,7 +84,7 @@ const AuthorSelector = ({ author, user, communities, onChange }) => { close(); }} > - {community.name} + {community.name} ))} @@ -227,7 +100,7 @@ const AuthorSelector = ({ author, user, communities, onChange }) => { content={menu} > - + @@ -235,7 +108,7 @@ const AuthorSelector = ({ author, user, communities, onChange }) => { }; const PostComposeBar = ({ - user = { userId: 1, name: 'John' }, + user = testUser, community, communities, edit, diff --git a/src/commonComponents/FeedHeaderTabs/index.js b/src/commonComponents/FeedHeaderTabs/index.js new file mode 100644 index 000000000..3720dd957 --- /dev/null +++ b/src/commonComponents/FeedHeaderTabs/index.js @@ -0,0 +1,23 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import { customizableComponent } from '../../hoks/customization'; +import Button from '../Button'; +import Tab from '../Tab'; + +import { FeedHeaderContainer, Tabs } from './styles'; + +const FeedHeaderTabs = ({ className, tabs, activeTab, onChange }) => { + return ( + + + {tabs.map(tab => ( + onChange(tab)}> + {tab} + + ))} + + + ); +}; + +export default customizableComponent('FeedHeaderTabs')(FeedHeaderTabs); diff --git a/src/CommunityHeader/styles.js b/src/commonComponents/FeedHeaderTabs/styles.js similarity index 77% rename from src/CommunityHeader/styles.js rename to src/commonComponents/FeedHeaderTabs/styles.js index 023cc61db..f82304abd 100644 --- a/src/CommunityHeader/styles.js +++ b/src/commonComponents/FeedHeaderTabs/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -export const CommunityHeaderContainer = styled.div` +export const FeedHeaderContainer = styled.div` background: #ffffff; border: 1px solid #edeef2; border-radius: 4px 4px 0 0; diff --git a/src/commonComponents/Tab/styles.js b/src/commonComponents/Tab/styles.js index e26348bfb..7ff07a659 100644 --- a/src/commonComponents/Tab/styles.js +++ b/src/commonComponents/Tab/styles.js @@ -23,5 +23,5 @@ color: #1054DE; } `} - transition: border-bottom 0.3s; + transition: border-color 0.3s; `; diff --git a/src/index.js b/src/index.js index e2aebc798..b12032d4f 100644 --- a/src/index.js +++ b/src/index.js @@ -7,7 +7,6 @@ import EkoChatItem from './ChatItem'; import EkoComment from './Comment'; import EkoCommentComposeBar from './CommentComposeBar'; import EkoCommunity from './Community'; -import EkoCommunityHeader from './CommunityHeader'; import EkoCommunityInformation from './CommunityInformation'; import EkoCommunityItem from './CommunityItem'; import EkoEmptyFeed from './EmptyFeed'; @@ -34,7 +33,6 @@ export { EkoComment, EkoCommentComposeBar, EkoCommunity, - EkoCommunityHeader, EkoCommunityInformation, EkoCommunityItem, EkoEmptyFeed, diff --git a/src/mock/index.js b/src/mock/index.js index 241be0d12..f2f3b85e2 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,9 +1,15 @@ import React, { useContext, useMemo, useState } from 'react'; -const userFeed = [ +export const testUser = { + name: 'Donald Trump', + avatar: + 'https://www.thenation.com/wp-content/uploads/2020/08/donald-trump-spacex-speech-gty-img.jpg', +}; + +export const userFeed = [ { id: 1, - author: { name: 'John' }, + author: testUser, text: 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', images: [ @@ -38,36 +44,51 @@ const userFeed = [ }, { id: 2, - author: { name: 'John' }, + author: testUser, text: 'text text text', }, ]; -const newsFeed = [ +export const myCommunities = [ { - id: 2, - author: { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, - text: 'News feed post', + communityId: '1', + name: 'Billie Ellish Fans', + avatar: + 'https://cdn.vox-cdn.com/thumbor/VetxE6rRTJt5tLhQ2Z99QFA9zcI=/1400x1400/filters:format(jpeg)/cdn.vox-cdn.com/uploads/chorus_asset/file/16127988/56973906_1031440620389086_5150401069125206016_o.jpg', }, -]; - -const defaultCommunityFeed = [ { - id: 1, - text: 'News feed post', + communityId: '2', + name: 'BLACKPINK TH', + verified: true, + avatar: 'https://i.pinimg.com/originals/2c/69/c5/2c69c5959858e4119322698da738bb44.jpg', + }, + { + communityId: '3', + name: 'Breakfast Club', + avatar: + 'https://simply-delicious-food.com/wp-content/uploads/2018/10/breakfast-board-500x500.jpg', + }, + { + communityId: '4', + name: 'BTS & ARMY', + avatar: 'https://pbs.twimg.com/profile_images/1219274759034363905/BfWdIBVk.jpg', + }, + { + communityId: '5', + name: 'Harry Potter Fans', + isPrivate: true, + avatar: 'https://static3.srcdn.com/wordpress/wp-content/uploads/2019/09/voldemort-3.jpg', + }, + { + communityId: '6', + name: 'Very long name very very long name name', + isPrivate: true, + avatar: + 'https://i.guim.co.uk/img/media/788dbbce44c1846fab9da460f64d23d02754a143/362_0_776_1626/master/776.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=91c98c71c708b039e9fc3eed87177d6c', }, ]; -export const communities = [ - { communityId: '1', name: 'Billie Ellish Fans' }, - { communityId: '2', name: 'BLACKPINK TH', verified: true }, - { communityId: '3', name: 'Breakfast Club' }, - { communityId: '4', name: 'BTS & ARMY' }, - { communityId: '5', name: 'Harry Potter Fans', isPrivate: true }, - { communityId: '6', name: 'Very long name very very long name name', isPrivate: true }, -]; - -const communityFeeds = communities.map(community => [ +const communityFeeds = myCommunities.map(community => [ { id: '1', author: community, @@ -75,6 +96,26 @@ const communityFeeds = communities.map(community => [ }, ]); +export const testNewsFeed = [ + { + id: 1, + author: myCommunities[3], + text: 'News feed post', + }, + { + id: 2, + author: myCommunities[2], + text: 'News feed post', + }, +]; + +const defaultCommunityFeed = [ + // { + // id: 1, + // text: 'News feed post', + // }, +]; + export const MockDataContext = React.createContext(); export const MockDataProvider = props => { @@ -87,3 +128,132 @@ export const MockDataProvider = props => { ; }; + +export const testFiles = [ + { + filename: 'text.txt', + size: 259, + }, + { + filename: 'book.pdf', + size: 223893, + }, + { + filename: 'podcast.ogg', + size: 2293893, + }, + { + filename: 'movie.avi', + size: 229389322, + }, + { + filename: 'page.html', + size: 1024, + }, + { + filename: 'presentation.ppt', + size: 2139232, + }, + { + filename: 'archive.zip', + size: 123123132923, + }, + { + filename: 'filename.audio', + size: 12323, + }, + { + filename: 'filename.ogg', + size: 12323, + }, + { + filename: 'filename.aac', + size: 12323, + }, + { + filename: 'filename.avi', + size: 12323, + }, + { + filename: 'filename.csv', + size: 12323, + }, + { + filename: 'filename.doc', + size: 12323, + }, + { + filename: 'filename.exe', + size: 12323, + }, + { + filename: 'filename.html', + size: 12323, + }, + { + filename: 'filename.jpg', + size: 12323, + }, + { + filename: 'filename.png', + size: 12323, + }, + { + filename: 'filename.gif', + size: 12323, + }, + { + filename: 'filename.mov', + size: 12323, + }, + { + filename: 'filename.mp3', + size: 12323, + }, + { + filename: 'filename.mp4', + size: 12323, + }, + { + filename: 'filename.mpeg', + size: 12323, + }, + { + filename: 'filename.pdf', + size: 12323, + }, + { + filename: 'filename.ppt', + size: 12323, + }, + { + filename: 'filename.ppx', + size: 12323, + }, + { + filename: 'filename.rar', + size: 12323, + }, + { + filename: 'filename.txt', + size: 12323, + }, + { + filename: 'filename.xls', + size: 12323, + }, + { + filename: 'filename.zip', + size: 12323, + }, +]; + +export const testImages = [ + { + url: + 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + }, + { + url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + }, +]; From 8b96a432c8fa79b0faa59a7cb454b93c68ca4c1c Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Wed, 26 Aug 2020 13:55:50 +0700 Subject: [PATCH 044/740] explore page --- .eslintrc | 10 + .storybook/main.js | 2 +- .storybook/{config.js => preview.js} | 0 package-lock.json | 3497 ++++++++++++----- package.json | 8 +- src/ChatHeader/styles.js | 1 - src/Comment/index.js | 131 +- src/Comment/styles.js | 78 +- src/CommentComposeBar/index.js | 35 +- src/CommentComposeBar/styles.js | 9 +- src/Community/Community.stories.js | 59 +- src/Community/CommunityMembers.js | 79 + src/Community/NewsFeed.js | 17 +- src/Community/UserFeed.js | 9 +- src/Community/index.js | 74 +- src/Community/styles.js | 47 + src/CommunityItem/index.js | 13 +- src/CommunityItem/styles.js | 20 - src/EngagementBar/index.js | 23 +- src/EngagementBar/styles.js | 1 - src/ExploreHome/CategoryPage.js | 51 + src/ExploreHome/Community.js | 22 + src/ExploreHome/CommunitySearch.js | 84 + src/ExploreHome/ExploreHeader.js | 21 + src/ExploreHome/TrendingCommunity.js | 29 + src/ExploreHome/index.js | 110 + src/ExploreHome/styles.js | 224 ++ src/FeedLayout/index.js | 2 +- src/FeedLayout/styles.js | 6 - src/FeedSideMenu/index.js | 4 +- src/Message/index.js | 9 +- src/Post/index.js | 14 +- src/Post/styles.js | 16 +- src/PostCompose/AuthorSelector.js | 58 + src/PostCompose/index.js | 72 +- src/PostCompose/styles.js | 1 - src/UiKitProvider/GlobalTheme.js | 2 +- src/UiKitProvider/Localisation/index.js | 11 + src/UiKitProvider/index.js | 9 +- src/commonComponents/Button/styles.js | 5 +- src/commonComponents/CommunityName/index.js | 13 + src/commonComponents/CommunityName/styles.js | 28 + src/commonComponents/Confirm/styles.js | 8 +- src/commonComponents/FeedHeaderTabs/index.js | 19 +- src/commonComponents/FeedHeaderTabs/styles.js | 9 +- src/commonComponents/Modal/styles.js | 8 +- src/commonComponents/Notification/styles.js | 3 +- src/commonComponents/Options/styles.js | 3 +- src/commonComponents/Tabs/index.js | 17 + src/commonComponents/Tabs/styles.js | 6 + src/commonComponents/Time/index.js | 19 + src/commonComponents/Time/styles.js | 6 + src/mock/index.js | 194 +- 53 files changed, 3828 insertions(+), 1368 deletions(-) create mode 100644 .eslintrc rename .storybook/{config.js => preview.js} (100%) create mode 100644 src/Community/CommunityMembers.js create mode 100644 src/ExploreHome/CategoryPage.js create mode 100644 src/ExploreHome/Community.js create mode 100644 src/ExploreHome/CommunitySearch.js create mode 100644 src/ExploreHome/ExploreHeader.js create mode 100644 src/ExploreHome/TrendingCommunity.js create mode 100644 src/ExploreHome/index.js create mode 100644 src/ExploreHome/styles.js create mode 100644 src/PostCompose/AuthorSelector.js create mode 100644 src/UiKitProvider/Localisation/index.js create mode 100644 src/commonComponents/CommunityName/index.js create mode 100644 src/commonComponents/CommunityName/styles.js create mode 100644 src/commonComponents/Tabs/index.js create mode 100644 src/commonComponents/Tabs/styles.js create mode 100644 src/commonComponents/Time/index.js create mode 100644 src/commonComponents/Time/styles.js diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..b496dd362 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,10 @@ +{ + "parser": "babel-eslint", + "extends": ["eko/react"], + "settings": { + "import/resolver": "babel-plugin-root-import", + }, + "env": { + "jest": true, + }, +} diff --git a/.storybook/main.js b/.storybook/main.js index 7368c291d..1c63cd83a 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,7 +4,7 @@ const webpack = require('webpack'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: [], + addons: ['@storybook/addon-storysource'], webpackFinal: async config => { config.resolve.extensions.push('.js'); diff --git a/.storybook/config.js b/.storybook/preview.js similarity index 100% rename from .storybook/config.js rename to .storybook/preview.js diff --git a/package-lock.json b/package-lock.json index a4f1adecb..c342a0a73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -374,13 +374,176 @@ } }, "@babel/plugin-proposal-class-properties": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz", - "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz", + "integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz", + "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-proposal-decorators": { @@ -404,6 +567,24 @@ "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz", + "integrity": "sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-default-from": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, "@babel/plugin-proposal-export-namespace-from": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", @@ -762,6 +943,23 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz", + "integrity": "sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, "@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", @@ -981,13 +1179,30 @@ } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.1.tgz", - "integrity": "sha512-i4o0YwiJBIsIx7/liVCZ3Q2WkWr1/Yu39PksBOnh/khW2SwIFsGa5Ze+MSon5KbDfrEHP9NeyefAgvUSXzaEkw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", + "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-flow": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-flow": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/plugin-syntax-flow": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", + "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + } } }, "@babel/plugin-transform-for-of": { @@ -1120,12 +1335,20 @@ } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.1.tgz", - "integrity": "sha512-V4os6bkWt/jbrzfyVcZn2ZpuHZkvj3vyBU0U/dtS8SZuMS7Rfx5oknTrtfyXJ2/QZk8gX7Yls5Z921ItNpE30Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", + "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-transform-react-display-name": { @@ -2135,13 +2358,21 @@ } }, "@babel/preset-flow": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.1.tgz", - "integrity": "sha512-FuQsibb5PaX07fF1XUO5gjjxdEZbcJv8+ugPDaeFEsBIvUTib8hCtEJow/c2F0jq9ZUjpHCQ8IQKNHRvKE1kJQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz", + "integrity": "sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-transform-flow-strip-types": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-flow-strip-types": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/preset-modules": { @@ -2298,6 +2529,32 @@ "@babel/plugin-transform-typescript": "^7.9.0" } }, + "@babel/register": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz", + "integrity": "sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + } + } + }, "@babel/runtime": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", @@ -2614,6 +2871,12 @@ "prop-types": "^15.7.2" } }, + "@icons/material": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", + "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==", + "dev": true + }, "@jest/console": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", @@ -2957,9 +3220,26 @@ "fastq": "^1.6.0" } }, - "@reach/router": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@reach/router": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", "dev": true, "requires": { @@ -3018,190 +3298,483 @@ "picomatch": "^2.2.2" } }, + "@storybook/addon-storysource": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", + "integrity": "sha512-9ZvWc7BLLmmEGkfdmMN5/iu5xXqpm46ucSml9K6m3L6w1y7opvELrhk4dzGd0ggSCrGfljaraJXUBeyAYYG+Pg==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.16", + "@storybook/api": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/components": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/source-loader": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "estraverse": "^4.2.0", + "loader-utils": "^2.0.0", + "prettier": "^2.0.5", + "prop-types": "^15.7.2", + "react": "^16.9.17", + "react-syntax-highlighter": "^12.2.1", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/addons": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "dev": true, + "requires": { + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "global": "^4.3.2", + "regenerator-runtime": "^0.13.3" + } + }, + "@storybook/api": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.16.tgz", + "integrity": "sha512-RTC4BKmH5i8bJUQejOHEtjebVKtOaHkmEagI2HQRalsokBc1GLAf84EGrO2TaZiRrItAPL5zZQgEnKUblsGJGw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.16", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.16", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.16.tgz", + "integrity": "sha512-TsI4GA7lKD4L2w6IjODMRfnEOkmvEp4eJDgf3MKm7+sMbxwi1y1d6yrW1UQbnmwoNJWk60ArMN2yqDBV+5MNJQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.16.tgz", + "integrity": "sha512-xM61Aewxqoo8500UxV7iPpfqwikITojiCX3+w8ZiCJ2NizSaXkis95TEFAeHqyozfNym5CqG+6v2NWvGYV3ncQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.16.tgz", + "integrity": "sha512-zpYGt3tWiN0yT7V0VhBl2T5Mr0COiNnTQUGCpA9Gl3pUBmAov2jCVf1sUxsIcBcMMZmDRcfo6NbJ/LqCFeUg+Q==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.16", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.16", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.16.tgz", + "integrity": "sha512-ib+58N4OY8AOix2qcBH9ICRmVHUocpGaGRVlIo79WxJrpnB/HNQ8pEaniD+OAavDRq1B7uJqFlMkTXCC0GoFiQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.16.tgz", + "integrity": "sha512-zijPJ3CR4ytHE0v+pGdaWT3H+es+mLHRkR6hkqcD0ABT5HVfwMlmXJ9FkQGCVpnnNeBOz7+QKCdE13HMelQpqg==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "highlight.js": { + "version": "9.15.10", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", + "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "lowlight": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz", + "integrity": "sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w==", + "dev": true, + "requires": { + "fault": "^1.0.2", + "highlight.js": "~9.15.0" + } + }, + "react-syntax-highlighter": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz", + "integrity": "sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.1", + "highlight.js": "~9.15.1", + "lowlight": "1.12.1", + "prismjs": "^1.8.4", + "refractor": "^2.4.1" + } + }, + "react-textarea-autosize": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.2.0.tgz", + "integrity": "sha512-grajUlVbkx6VdtSxCgzloUIphIZF5bKr21OYMceWPKkniy7H0mRAT/AXPrRtObAe+zUePnNlBwUc4ivVjUGIjw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "use-composed-ref": "^1.0.0", + "use-latest": "^1.0.0" + } + }, + "telejson": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", + "integrity": "sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw==", + "dev": true, + "requires": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.2", + "is-regex": "^1.1.1", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.19", + "memoizerific": "^1.11.3" + } + } + } + }, "@storybook/addons": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.19.tgz", - "integrity": "sha512-Ky/k22p6i6FVNvs1VhuFyGvYJdcp+FgXqFgnPyY/OXJW/vPDapdElpTpHJZLFI9I2FQBDcygBPU5RXkumQ+KUQ==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", "dev": true, "requires": { - "@storybook/api": "5.3.19", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", "core-js": "^3.0.1", "global": "^4.3.2", - "util-deprecate": "^1.0.2" + "regenerator-runtime": "^0.13.3" } }, "@storybook/api": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.19.tgz", - "integrity": "sha512-U/VzDvhNCPmw2igvJYNNM+uwJCL+3teiL6JmuoL4/cmcqhI6IqqG9dZmMP1egoCd19wXEP7rnAfB/VcYVg41dQ==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.16.tgz", + "integrity": "sha512-RTC4BKmH5i8bJUQejOHEtjebVKtOaHkmEagI2HQRalsokBc1GLAf84EGrO2TaZiRrItAPL5zZQgEnKUblsGJGw==", "dev": true, "requires": { - "@reach/router": "^1.2.1", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", "@storybook/csf": "0.0.1", - "@storybook/router": "5.3.19", - "@storybook/theming": "5.3.19", - "@types/reach__router": "^1.2.3", + "@storybook/router": "6.0.16", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.16", + "@types/reach__router": "^1.3.5", "core-js": "^3.0.1", - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "global": "^4.3.2", "lodash": "^4.17.15", "memoizerific": "^1.11.3", - "prop-types": "^15.6.2", "react": "^16.8.3", - "semver": "^6.0.0", - "shallow-equal": "^1.1.0", + "regenerator-runtime": "^0.13.3", "store2": "^2.7.1", - "telejson": "^3.2.0", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", "util-deprecate": "^1.0.2" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } } } }, "@storybook/channel-postmessage": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.19.tgz", - "integrity": "sha512-Iq0f4NPHR0UVVFCWt0cI7Myadk4/SATXYJPT6sv95KhnLjKEeYw571WBlThfp8a9FM80887xG+eIRe93c8dleA==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.16.tgz", + "integrity": "sha512-66B4FH5R7k9i7LBhGsr/hYOxwE4UBM1JMPGV0rhAnFY8m91GiUWl4YWTRdbYIkeaZxf/0oT4sgPScqz44hnw6Q==", "dev": true, "requires": { - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", "core-js": "^3.0.1", "global": "^4.3.2", - "telejson": "^3.2.0" + "qs": "^6.6.0", + "telejson": "^5.0.2" } }, "@storybook/channels": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.19.tgz", - "integrity": "sha512-38seaeyshRGotTEZJppyYMg/Vx2zRKgFv1L6uGqkJT0LYoNSYtJhsiNFCJ2/KUJu2chAJ/j8h80bpVBVLQ/+WA==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.16.tgz", + "integrity": "sha512-TsI4GA7lKD4L2w6IjODMRfnEOkmvEp4eJDgf3MKm7+sMbxwi1y1d6yrW1UQbnmwoNJWk60ArMN2yqDBV+5MNJQ==", "dev": true, "requires": { - "core-js": "^3.0.1" + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" } }, "@storybook/client-api": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.19.tgz", - "integrity": "sha512-Dh8ZLrLH91j9Fa28Gmp0KFUvvgK348aNMrDNAUdj4m4witz/BWQ2pxz6qq9/xFVErk/GanVC05kazGElqgYCRQ==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.16.tgz", + "integrity": "sha512-fFsp53lt9W2QHSumqdfFRbh+DI9fvd7li0GDxqLeNESXaUVw48yg8lQiyRNK+j5Pl4VBS3AqytLugJ+0MGm2cA==", "dev": true, "requires": { - "@storybook/addons": "5.3.19", - "@storybook/channel-postmessage": "5.3.19", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", + "@storybook/addons": "6.0.16", + "@storybook/channel-postmessage": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", "@storybook/csf": "0.0.1", - "@types/webpack-env": "^1.15.0", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", "core-js": "^3.0.1", - "eventemitter3": "^4.0.0", "global": "^4.3.2", - "is-plain-object": "^3.0.0", "lodash": "^4.17.15", "memoizerific": "^1.11.3", "qs": "^6.6.0", "stable": "^0.1.8", - "ts-dedent": "^1.1.0", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", "util-deprecate": "^1.0.2" } }, "@storybook/client-logger": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.19.tgz", - "integrity": "sha512-nHftT9Ow71YgAd2/tsu79kwKk30mPuE0sGRRUHZVyCRciGFQweKNOS/6xi2Aq+WwBNNjPKNlbgxwRt1yKe1Vkg==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.16.tgz", + "integrity": "sha512-xM61Aewxqoo8500UxV7iPpfqwikITojiCX3+w8ZiCJ2NizSaXkis95TEFAeHqyozfNym5CqG+6v2NWvGYV3ncQ==", "dev": true, "requires": { - "core-js": "^3.0.1" + "core-js": "^3.0.1", + "global": "^4.3.2" } }, "@storybook/components": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.19.tgz", - "integrity": "sha512-3g23/+ktlocaHLJKISu9Neu3XKa6aYP2ctDYkRtGchSB0Q55hQsUVGO+BEVuT7Pk2D59mVCxboBjxcRoPUY4pw==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.16.tgz", + "integrity": "sha512-zpYGt3tWiN0yT7V0VhBl2T5Mr0COiNnTQUGCpA9Gl3pUBmAov2jCVf1sUxsIcBcMMZmDRcfo6NbJ/LqCFeUg+Q==", "dev": true, "requires": { - "@storybook/client-logger": "5.3.19", - "@storybook/theming": "5.3.19", + "@storybook/client-logger": "6.0.16", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.16", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", "@types/react-syntax-highlighter": "11.0.4", - "@types/react-textarea-autosize": "^4.3.3", "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", "global": "^4.3.2", "lodash": "^4.17.15", "markdown-to-jsx": "^6.11.4", "memoizerific": "^1.11.3", - "polished": "^3.3.1", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", "popper.js": "^1.14.7", - "prop-types": "^15.7.2", "react": "^16.8.3", + "react-color": "^2.17.0", "react-dom": "^16.8.3", - "react-focus-lock": "^2.1.0", - "react-helmet-async": "^1.0.2", - "react-popper-tooltip": "^2.8.3", - "react-syntax-highlighter": "^11.0.2", - "react-textarea-autosize": "^7.1.0", - "simplebar-react": "^1.0.0-alpha.6", - "ts-dedent": "^1.1.0" + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" } }, "@storybook/core": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.19.tgz", - "integrity": "sha512-4EYzglqb1iD6x9gxtAYpRGwGP6qJGiU2UW4GiYrErEmeu6y6tkyaqW5AwGlIo9+6jAfwD0HjaK8afvjKTtmmMQ==", - "dev": true, - "requires": { - "@babel/plugin-proposal-class-properties": "^7.7.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-transform-react-constant-elements": "^7.2.0", - "@babel/preset-env": "^7.4.5", - "@storybook/addons": "5.3.19", - "@storybook/channel-postmessage": "5.3.19", - "@storybook/client-api": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/core-events": "5.3.19", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.0.16.tgz", + "integrity": "sha512-dVgw03bB8rSMrYDw+v07Yiqyy4yas1olnXpytscWCWdbBuflSAQU+mtqcHMIH9YlhucIT2dYiErDDDNmqP+6tw==", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-proposal-export-default-from": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-object-rest-spread": "^7.9.6", + "@babel/plugin-proposal-optional-chaining": "^7.10.1", + "@babel/plugin-proposal-private-methods": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.5", + "@babel/plugin-transform-destructuring": "^7.9.5", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-parameters": "^7.9.5", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/preset-env": "^7.9.6", + "@babel/preset-react": "^7.8.3", + "@babel/preset-typescript": "^7.9.0", + "@babel/register": "^7.10.5", + "@storybook/addons": "6.0.16", + "@storybook/api": "6.0.16", + "@storybook/channel-postmessage": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-api": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/components": "6.0.16", + "@storybook/core-events": "6.0.16", "@storybook/csf": "0.0.1", - "@storybook/node-logger": "5.3.19", - "@storybook/router": "5.3.19", - "@storybook/theming": "5.3.19", - "@storybook/ui": "5.3.19", + "@storybook/node-logger": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.16", + "@storybook/ui": "6.0.16", + "@types/glob-base": "^0.3.0", + "@types/micromatch": "^4.0.1", + "@types/node-fetch": "^2.5.4", "airbnb-js-shims": "^2.2.1", "ansi-to-html": "^0.6.11", "autoprefixer": "^9.7.2", - "babel-plugin-add-react-displayname": "^0.0.5", + "babel-loader": "^8.0.6", "babel-plugin-emotion": "^10.0.20", - "babel-plugin-macros": "^2.7.0", + "babel-plugin-macros": "^2.8.0", "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5", + "better-opn": "^2.0.0", "boxen": "^4.1.0", "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^3.0.0", - "cli-table3": "0.5.1", - "commander": "^4.0.1", + "chalk": "^4.0.0", + "cli-table3": "0.6.0", + "commander": "^5.0.0", "core-js": "^3.0.1", - "corejs-upgrade-webpack-plugin": "^2.2.0", - "css-loader": "^3.0.0", + "css-loader": "^3.5.3", "detect-port": "^1.3.0", "dotenv-webpack": "^1.7.0", - "ejs": "^2.7.4", + "ejs": "^3.1.2", "express": "^4.17.0", - "file-loader": "^4.2.0", + "file-loader": "^6.0.0", "file-system-cache": "^1.0.5", - "find-cache-dir": "^3.0.0", "find-up": "^4.1.0", - "fs-extra": "^8.0.1", + "fork-ts-checker-webpack-plugin": "^4.1.4", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", "glob-base": "^0.3.0", + "glob-promise": "^3.4.0", "global": "^4.3.2", - "html-webpack-plugin": "^4.0.0-beta.2", + "html-webpack-plugin": "^4.2.1", "inquirer": "^7.0.0", "interpret": "^2.0.0", "ip": "^1.1.5", @@ -3209,32 +3782,41 @@ "lazy-universal-dotenv": "^3.0.1", "micromatch": "^4.0.2", "node-fetch": "^2.6.0", - "open": "^7.0.0", - "pnp-webpack-plugin": "1.5.0", + "pkg-dir": "^4.2.0", + "pnp-webpack-plugin": "1.6.4", "postcss-flexbugs-fixes": "^4.1.0", "postcss-loader": "^3.0.0", "pretty-hrtime": "^1.0.3", "qs": "^6.6.0", - "raw-loader": "^3.1.0", - "react-dev-utils": "^9.0.0", + "raw-loader": "^4.0.1", + "react-dev-utils": "^10.0.0", "regenerator-runtime": "^0.13.3", - "resolve": "^1.11.0", "resolve-from": "^5.0.0", - "semver": "^6.0.0", "serve-favicon": "^2.5.0", "shelljs": "^0.8.3", - "style-loader": "^1.0.0", - "terser-webpack-plugin": "^2.1.2", - "ts-dedent": "^1.1.0", + "stable": "^0.1.8", + "style-loader": "^1.2.1", + "terser-webpack-plugin": "^3.0.0", + "ts-dedent": "^1.1.1", "unfetch": "^4.1.0", - "url-loader": "^2.0.1", + "url-loader": "^4.0.0", "util-deprecate": "^1.0.2", - "webpack": "^4.33.0", + "webpack": "^4.43.0", "webpack-dev-middleware": "^3.7.0", "webpack-hot-middleware": "^2.25.0", - "webpack-virtual-modules": "^0.2.0" + "webpack-virtual-modules": "^0.2.2" }, "dependencies": { + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", @@ -3246,9 +3828,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3270,17 +3852,42 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } }, "supports-color": { "version": "7.1.0", @@ -3290,13 +3897,19 @@ "requires": { "has-flag": "^4.0.0" } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true } } }, "@storybook/core-events": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.19.tgz", - "integrity": "sha512-lh78ySqMS7pDdMJAQAe35d1I/I4yPTqp09Cq0YIYOxx9BQZhah4DZTV1QIZt22H5p2lPb5MWLkWSxBaexZnz8A==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.16.tgz", + "integrity": "sha512-ib+58N4OY8AOix2qcBH9ICRmVHUocpGaGRVlIo79WxJrpnB/HNQ8pEaniD+OAavDRq1B7uJqFlMkTXCC0GoFiQ==", "dev": true, "requires": { "core-js": "^3.0.1" @@ -3312,17 +3925,16 @@ } }, "@storybook/node-logger": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.19.tgz", - "integrity": "sha512-hKshig/u5Nj9fWy0OsyU04yqCxr0A9pydOHIassr4fpLAaePIN2YvqCqE2V+TxQHjZUnowSSIhbXrGt0DI5q2A==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.16.tgz", + "integrity": "sha512-mD6so/puFV5oByBkDp9rv2mV/WyGy21QdrwXpXdtLDKNgqPuJjHZuF1RA/+MmDK4P1CjvP1no2H5WDKg+aW4QQ==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", - "chalk": "^3.0.0", + "chalk": "^4.0.0", "core-js": "^3.0.1", "npmlog": "^4.1.2", - "pretty-hrtime": "^1.0.3", - "regenerator-runtime": "^0.13.3" + "pretty-hrtime": "^1.0.3" }, "dependencies": { "ansi-styles": { @@ -3336,9 +3948,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3378,106 +3990,287 @@ } }, "@storybook/react": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.19.tgz", - "integrity": "sha512-OBRUqol3YLQi/qE55x2pWkv4YpaAmmfj6/Km+7agx+og+oNQl0nnlXy7r27X/4j3ERczzURa5pJHtSjwiNaJNw==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.0.16.tgz", + "integrity": "sha512-cxnBwewx37rL1BjXo3TQFIvvCv9z26r3yuRRWh527/0QODfwGz8TT+/sJHeqBA5JIQzLwAHNqNJhLp6xzfr5Dw==", "dev": true, "requires": { - "@babel/plugin-transform-react-constant-elements": "^7.6.3", "@babel/preset-flow": "^7.0.0", "@babel/preset-react": "^7.0.0", - "@storybook/addons": "5.3.19", - "@storybook/core": "5.3.19", - "@storybook/node-logger": "5.3.19", - "@svgr/webpack": "^4.0.3", - "@types/webpack-env": "^1.15.0", + "@storybook/addons": "6.0.16", + "@storybook/core": "6.0.16", + "@storybook/node-logger": "6.0.16", + "@storybook/semver": "^7.3.2", + "@svgr/webpack": "^5.4.0", + "@types/webpack-env": "^1.15.2", "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-named-asset-import": "^0.3.1", - "babel-plugin-react-docgen": "^4.0.0", + "babel-plugin-react-docgen": "^4.1.0", "core-js": "^3.0.1", "global": "^4.3.2", "lodash": "^4.17.15", - "mini-css-extract-plugin": "^0.7.0", "prop-types": "^15.7.2", - "react-dev-utils": "^9.0.0", + "react-dev-utils": "^10.0.0", + "react-docgen-typescript-plugin": "^0.5.2", "regenerator-runtime": "^0.13.3", - "semver": "^6.0.0", - "ts-dedent": "^1.1.0", - "webpack": "^4.33.0" + "ts-dedent": "^1.1.1", + "webpack": "^4.43.0" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } } } }, "@storybook/router": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.19.tgz", - "integrity": "sha512-yNClpuP7BXQlBTRf6Ggle3/R349/k6kvI5Aim4jf6X/2cFVg2pzBXDAF41imNm9PcvdxwabQLm6I48p7OvKr/w==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.16.tgz", + "integrity": "sha512-zijPJ3CR4ytHE0v+pGdaWT3H+es+mLHRkR6hkqcD0ABT5HVfwMlmXJ9FkQGCVpnnNeBOz7+QKCdE13HMelQpqg==", "dev": true, "requires": { - "@reach/router": "^1.2.1", + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "@storybook/source-loader": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.0.16.tgz", + "integrity": "sha512-Ub6bU7o2JJUigzu9MSrFH1RD2SmpZZnym+WEidWI9A1gseKp1Rd4KDq36AqJo/oL3hAzoAOirrv3ZixIwXLFMg==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.16", + "@storybook/client-logger": "6.0.16", "@storybook/csf": "0.0.1", - "@types/reach__router": "^1.2.3", "core-js": "^3.0.1", + "estraverse": "^4.2.0", "global": "^4.3.2", + "loader-utils": "^2.0.0", "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "util-deprecate": "^1.0.2" + "prettier": "^2.0.5", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/addons": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "dev": true, + "requires": { + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "global": "^4.3.2", + "regenerator-runtime": "^0.13.3" + } + }, + "@storybook/api": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.16.tgz", + "integrity": "sha512-RTC4BKmH5i8bJUQejOHEtjebVKtOaHkmEagI2HQRalsokBc1GLAf84EGrO2TaZiRrItAPL5zZQgEnKUblsGJGw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.16", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.16", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.16.tgz", + "integrity": "sha512-TsI4GA7lKD4L2w6IjODMRfnEOkmvEp4eJDgf3MKm7+sMbxwi1y1d6yrW1UQbnmwoNJWk60ArMN2yqDBV+5MNJQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.16.tgz", + "integrity": "sha512-xM61Aewxqoo8500UxV7iPpfqwikITojiCX3+w8ZiCJ2NizSaXkis95TEFAeHqyozfNym5CqG+6v2NWvGYV3ncQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/core-events": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.16.tgz", + "integrity": "sha512-ib+58N4OY8AOix2qcBH9ICRmVHUocpGaGRVlIo79WxJrpnB/HNQ8pEaniD+OAavDRq1B7uJqFlMkTXCC0GoFiQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.16.tgz", + "integrity": "sha512-zijPJ3CR4ytHE0v+pGdaWT3H+es+mLHRkR6hkqcD0ABT5HVfwMlmXJ9FkQGCVpnnNeBOz7+QKCdE13HMelQpqg==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "telejson": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", + "integrity": "sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw==", + "dev": true, + "requires": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.2", + "is-regex": "^1.1.1", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.19", + "memoizerific": "^1.11.3" + } + } } }, "@storybook/theming": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.19.tgz", - "integrity": "sha512-ecG+Rq3hc1GOzKHamYnD4wZ0PEP9nNg0mXbC3RhbxfHj+pMMCWWmx9B2Uu75SL1PTT8WcfkFO0hU/0IO84Pzlg==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", "dev": true, "requires": { "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "5.3.19", + "@storybook/client-logger": "6.0.16", "core-js": "^3.0.1", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.19", "global": "^4.3.2", "memoizerific": "^1.11.3", - "polished": "^3.3.1", - "prop-types": "^15.7.2", + "polished": "^3.4.4", "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.0" + "ts-dedent": "^1.1.1" } }, "@storybook/ui": { - "version": "5.3.19", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.19.tgz", - "integrity": "sha512-r0VxdWab49nm5tzwvveVDnsHIZHMR76veYOu/NHKDUZ5hnQl1LMG1YyMCFFa7KiwD/OrZxRWr6/Ma7ep9kR4Gw==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.0.16.tgz", + "integrity": "sha512-4F21kwQVaMwgqoJmO+566j7MXmvPp+7jfWBMPAvyGsf5uIZ4q6V29h5mMLvTOFA4qHw0lHZk2k8V0g5gk/tjCA==", "dev": true, "requires": { "@emotion/core": "^10.0.20", - "@storybook/addons": "5.3.19", - "@storybook/api": "5.3.19", - "@storybook/channels": "5.3.19", - "@storybook/client-logger": "5.3.19", - "@storybook/components": "5.3.19", - "@storybook/core-events": "5.3.19", - "@storybook/router": "5.3.19", - "@storybook/theming": "5.3.19", + "@storybook/addons": "6.0.16", + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/components": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.16", + "@types/markdown-to-jsx": "^6.11.0", "copy-to-clipboard": "^3.0.8", "core-js": "^3.0.1", "core-js-pure": "^3.0.1", "emotion-theming": "^10.0.19", - "fast-deep-equal": "^2.0.1", - "fuse.js": "^3.4.6", + "fuse.js": "^3.6.1", "global": "^4.3.2", "lodash": "^4.17.15", "markdown-to-jsx": "^6.11.4", "memoizerific": "^1.11.3", - "polished": "^3.3.1", - "prop-types": "^15.7.2", + "polished": "^3.4.4", "qs": "^6.6.0", "react": "^16.8.3", "react-dom": "^16.8.3", @@ -3485,225 +4278,167 @@ "react-helmet-async": "^1.0.2", "react-hotkeys": "2.0.0", "react-sizeme": "^2.6.7", - "regenerator-runtime": "^0.13.2", + "regenerator-runtime": "^0.13.3", "resolve-from": "^5.0.0", - "semver": "^6.0.0", - "store2": "^2.7.1", - "telejson": "^3.2.0", - "util-deprecate": "^1.0.2" + "store2": "^2.7.1" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } } } }, "@svgr/babel-plugin-add-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", "dev": true }, "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", "dev": true }, "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", - "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", "dev": true }, "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", - "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", "dev": true }, "@svgr/babel-plugin-svg-dynamic-title": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", - "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", "dev": true }, "@svgr/babel-plugin-svg-em-dimensions": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", - "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", "dev": true }, "@svgr/babel-plugin-transform-react-native-svg": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", - "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", "dev": true }, "@svgr/babel-plugin-transform-svg-component": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", - "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz", + "integrity": "sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A==", "dev": true }, "@svgr/babel-preset": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", - "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz", + "integrity": "sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A==", "dev": true, "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", - "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", - "@svgr/babel-plugin-transform-svg-component": "^4.2.0" + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.4.0" } }, "@svgr/core": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", - "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz", + "integrity": "sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ==", "dev": true, "requires": { - "@svgr/plugin-jsx": "^4.3.3", - "camelcase": "^5.3.1", - "cosmiconfig": "^5.2.1" + "@svgr/plugin-jsx": "^5.4.0", + "camelcase": "^6.0.0", + "cosmiconfig": "^6.0.0" }, "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "camelcase": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", "dev": true } } }, "@svgr/hast-util-to-babel-ast": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", - "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz", + "integrity": "sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.9.5" } }, "@svgr/plugin-jsx": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", - "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz", + "integrity": "sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw==", "dev": true, "requires": { - "@babel/core": "^7.4.5", - "@svgr/babel-preset": "^4.3.3", - "@svgr/hast-util-to-babel-ast": "^4.3.2", - "svg-parser": "^2.0.0" + "@babel/core": "^7.7.5", + "@svgr/babel-preset": "^5.4.0", + "@svgr/hast-util-to-babel-ast": "^5.4.0", + "svg-parser": "^2.0.2" } }, "@svgr/plugin-svgo": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", - "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz", + "integrity": "sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA==", "dev": true, "requires": { - "cosmiconfig": "^5.2.1", + "cosmiconfig": "^6.0.0", "merge-deep": "^3.0.2", "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz", + "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==", + "dev": true, + "requires": { + "@babel/core": "^7.9.0", + "@babel/plugin-transform-react-constant-elements": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/preset-react": "^7.9.4", + "@svgr/core": "^5.4.0", + "@svgr/plugin-jsx": "^5.4.0", + "@svgr/plugin-svgo": "^5.4.0", + "loader-utils": "^2.0.0" }, "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { + "loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true } } }, - "@svgr/webpack": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", - "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", - "dev": true, - "requires": { - "@babel/core": "^7.4.5", - "@babel/plugin-transform-react-constant-elements": "^7.0.0", - "@babel/preset-env": "^7.4.5", - "@babel/preset-react": "^7.0.0", - "@svgr/core": "^4.3.3", - "@svgr/plugin-jsx": "^4.3.3", - "@svgr/plugin-svgo": "^4.3.1", - "loader-utils": "^1.2.3" - } - }, "@testing-library/dom": { "version": "7.18.1", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.18.1.tgz", @@ -3934,6 +4669,12 @@ "@babel/types": "^7.3.0" } }, + "@types/braces": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz", + "integrity": "sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -3964,6 +4705,12 @@ "@types/node": "*" } }, + "@types/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@types/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0=", + "dev": true + }, "@types/history": { "version": "4.7.6", "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.6.tgz", @@ -4050,6 +4797,24 @@ "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", "dev": true }, + "@types/markdown-to-jsx": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.1.tgz", + "integrity": "sha512-fm/II24OzSx7J7CzXnHjEIf0d+s82bmdcokbyzY7PFMUnhyhnuGJgedt8R+yZgDn1mqhCLHmMjBPMsL8K4Xp9g==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/micromatch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.1.tgz", + "integrity": "sha512-my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw==", + "dev": true, + "requires": { + "@types/braces": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -4062,12 +4827,41 @@ "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==", "dev": true }, + "@types/node-fetch": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz", + "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==", + "dev": true, + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, "@types/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-4QQmOF5KlwfxJ5IGXFIudkeLCdMABz03RcUXu+LCb24zmln8QW6aDjuGl4d4XPVLf2j+FnjelHTP7dvceAFbhA==", "dev": true }, + "@types/overlayscrollbars": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.0.tgz", + "integrity": "sha512-h/pScHNKi4mb+TrJGDon8Yb06ujFG0mSg12wIO0sWMUF3dQIe2ExRRdNRviaNt9IjxIiOfnRr7FsQAdHwK4sMg==", + "dev": true + }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -4085,6 +4879,12 @@ "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, + "@types/qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ==", + "dev": true + }, "@types/reach__router": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz", @@ -4104,6 +4904,16 @@ "csstype": "^2.2.0" } }, + "@types/react-color": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/react-color/-/react-color-3.0.4.tgz", + "integrity": "sha512-EswbYJDF1kkrx93/YU+BbBtb46CCtDMvTiGmcOa/c5PETnwTiSWoseJ1oSWeRl/4rUXkhME9bVURvvPg0W5YQw==", + "dev": true, + "requires": { + "@types/react": "*", + "@types/reactcss": "*" + } + }, "@types/react-dom": { "version": "16.9.8", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", @@ -4131,10 +4941,10 @@ "@types/react": "*" } }, - "@types/react-textarea-autosize": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.5.tgz", - "integrity": "sha512-PiDL83kPMTolyZAWW3lyzO6ktooTb9tFTntVy7CA83/qFLWKLJ5bLeRboy6J6j3b1e8h2Eec6gBTEOOJRjV14A==", + "@types/reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-d2gQQ0IL6hXLnoRfVYZukQNWHuVsE75DzFTLPUuyyEhJS8G2VvlE+qfQQ91SJjaMqlURRCNIsX7Jcsw6cEuJlA==", "dev": true, "requires": { "@types/react": "*" @@ -4442,6 +5252,49 @@ "@xtuc/long": "4.2.2" } }, + "@webpack-contrib/schema-utils": { + "version": "1.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", + "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chalk": "^2.3.2", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "webpack-log": "^1.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + }, + "webpack-log": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", + "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" + } + } + } + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4492,6 +5345,12 @@ "acorn-walk": "^6.0.1" } }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, "acorn-walk": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", @@ -4510,9 +5369,9 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { "clean-stack": "^2.0.0", @@ -4687,7 +5546,6 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, - "optional": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4929,11 +5787,18 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "dev": true, + "optional": true }, "async-foreach": { "version": "0.1.3", @@ -4951,6 +5816,12 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -4958,18 +5829,32 @@ "dev": true }, "autoprefixer": { - "version": "9.8.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz", - "integrity": "sha512-84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==", + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "dev": true, "requires": { "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001087", - "colorette": "^1.2.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^7.0.32", "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "caniuse-lite": { + "version": "1.0.30001117", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001117.tgz", + "integrity": "sha512-4tY0Fatzdx59kYjQs+bNxUwZB03ZEBgVmJ1UkFPz/Q8OLiUUbjct2EdpnXj0fvFTPej2EkbPIG0w8BWsjAyk1Q==", + "dev": true + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + } } }, "autosize": { @@ -5761,6 +6646,15 @@ "callsite": "1.0.0" } }, + "better-opn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.0.0.tgz", + "integrity": "sha512-PPbGRgO/K0LowMHbH/JNvaV3qY3Vt+A2nH28fzJxy16h/DfR5OsVti6ldGl6S9SMsyUqT13sltikiAVtI6tKLA==", + "dev": true, + "requires": { + "open": "^7.0.3" + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -5771,8 +6665,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true + "dev": true }, "bindings": { "version": "1.5.0", @@ -6344,12 +7237,6 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", "dev": true }, - "can-use-dom": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", - "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=", - "dev": true - }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -6428,7 +7315,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, - "optional": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", @@ -6445,7 +7331,6 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "optional": true, "requires": { "fill-range": "^7.0.1" } @@ -6455,7 +7340,6 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "optional": true, "requires": { "to-regex-range": "^5.0.1" } @@ -6464,15 +7348,13 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true + "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "optional": true, "requires": { "is-number": "^7.0.0" } @@ -6599,53 +7481,60 @@ } }, "cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", "dev": true, "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "string-width": "^4.2.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.0" } } } }, "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "clipboard": { @@ -6840,9 +7729,9 @@ "dev": true }, "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true }, "commondir": { @@ -7029,16 +7918,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "corejs-upgrade-webpack-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz", - "integrity": "sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0", - "webpack": "^4.38.0" - } - }, "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", @@ -7642,6 +8521,16 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -7694,6 +8583,12 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -7871,12 +8766,6 @@ "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", "dev": true }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, "detect-port": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", @@ -8100,9 +8989,9 @@ } }, "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "duplexify": { @@ -8133,10 +9022,13 @@ "dev": true }, "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", + "dev": true, + "requires": { + "jake": "^10.6.1" + } }, "eko-flobx": { "version": "0.2.0", @@ -8269,6 +9161,17 @@ "once": "^1.4.0" } }, + "endent": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-2.0.1.tgz", + "integrity": "sha512-mADztvcC+vCk4XEZaCz6xIPO2NHQuprv5CAEjuVAu6aZwqAj7nVNlMyl1goPFYqCCpS2OJV9jwpumJLkotZrNw==", + "dev": true, + "requires": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.4" + } + }, "engine.io-client": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", @@ -8332,6 +9235,23 @@ } } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + } + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -8415,18 +9335,50 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, "es5-shim": { "version": "4.5.14", "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.14.tgz", "integrity": "sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg==", "dev": true }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-shim": { "version": "0.35.5", "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz", "integrity": "sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==", "dev": true }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "escalade": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", @@ -8465,6 +9417,234 @@ } } }, + "eslint": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz", + "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.0", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^1.3.0", + "espree": "^7.2.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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 + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-config-eko": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-eko/-/eslint-config-eko-2.0.0.tgz", + "integrity": "sha512-RAFzqZUU48Hl1ASdrPW47XewFlvQ8VE1rFD1FHmARbrChndeLNk3BQ4Rl5WgjKbumLfugeMqwN0QNm47I4/6nw==", + "dev": true + }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -8475,11 +9655,62 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", + "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", + "dev": true + } + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", @@ -8528,15 +9759,6 @@ "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", "dev": true }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -8739,6 +9961,23 @@ } } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -8862,9 +10101,9 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "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=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { @@ -8925,6 +10164,12 @@ } } }, + "fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "dev": true + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -8958,15 +10203,6 @@ "format": "^0.2.0" } }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -9020,16 +10256,36 @@ "escape-string-regexp": "^1.0.5" } }, + "file-entry-cache": { + "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" + } + }, "file-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", - "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", "dev": true, "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" }, "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -9082,6 +10338,15 @@ "dev": true, "optional": true }, + "filelist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "filesize": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", @@ -9256,6 +10521,34 @@ } } }, + "flat-cache": { + "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", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "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" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -9275,12 +10568,6 @@ "fbjs": "^0.8.0" } }, - "focus-lock": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.7.0.tgz", - "integrity": "sha512-LI7v2mH02R55SekHYdv9pRHR9RajVNyIJ2N5IEkWbg7FT5ZmJ9Hw4mWxHeEUcd+dJo0QmzztHvDvWcc7prVFsw==", - "dev": true - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -9302,14 +10589,13 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "fork-ts-checker-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", + "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", + "@babel/code-frame": "^7.5.5", "chalk": "^2.4.1", - "chokidar": "^2.0.4", "micromatch": "^3.1.10", "minimatch": "^3.0.4", "semver": "^5.6.0", @@ -9317,94 +10603,6 @@ "worker-rpc": "^0.1.0" }, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9425,17 +10623,6 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } } } }, @@ -9573,6 +10760,12 @@ "functions-have-names": "^1.2.0" } }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "functions-have-names": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz", @@ -9718,6 +10911,15 @@ "is-glob": "^4.0.1" } }, + "glob-promise": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", + "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "dev": true, + "requires": { + "@types/glob": "*" + } + }, "glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", @@ -10027,9 +11229,9 @@ "dev": true }, "highlight.js": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", - "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", + "version": "9.15.10", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", + "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==", "dev": true }, "history": { @@ -10137,6 +11339,14 @@ "param-case": "^3.0.3", "relateurl": "^0.2.7", "terser": "^4.6.3" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + } } }, "html-webpack-plugin": { @@ -10204,12 +11414,6 @@ } } }, - "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", - "dev": true - }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -10404,21 +11608,21 @@ "dev": true }, "inquirer": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz", - "integrity": "sha512-E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" @@ -10441,9 +11645,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -10642,7 +11846,6 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "optional": true, "requires": { "binary-extensions": "^2.0.0" } @@ -10740,9 +11943,9 @@ "dev": true }, "is-docker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", - "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true }, "is-extendable": { @@ -10859,12 +12062,6 @@ "path-is-inside": "^1.0.2" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, "is-plain-object": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", @@ -11119,6 +12316,26 @@ "iterate-iterator": "^1.0.1" } }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "javascript-time-ago": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.0.13.tgz", + "integrity": "sha512-zH+obXUQ4vlc9UlERFe637rNJQaVYLizwODUfGzYN/cNW/owkk5wzb327gAfEXFpI4yhFcStEaoqoJtMGAmrAg==", + "requires": { + "relative-time-format": "^0.1.3" + } + }, "jest": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", @@ -11950,11 +13167,12 @@ } }, "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", "dev": true, "requires": { + "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, @@ -12082,17 +13300,17 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, + "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 + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -12317,12 +13535,6 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -12340,18 +13552,31 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", - "dev": true - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevelnext": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", + "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", + "dev": true, + "requires": { + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -12380,13 +13605,13 @@ } }, "lowlight": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz", - "integrity": "sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz", + "integrity": "sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w==", "dev": true, "requires": { "fault": "^1.0.2", - "highlight.js": "~9.13.0" + "highlight.js": "~9.15.0" } }, "lru-cache": { @@ -12469,6 +13694,12 @@ "unquote": "^1.1.0" } }, + "material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", + "dev": true + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -12809,18 +14040,6 @@ "tiny-warning": "^1.0.3" } }, - "mini-css-extract-plugin": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz", - "integrity": "sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -12882,13 +14101,31 @@ "minipass": "^3.0.0" } }, - "minipass-pipeline": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz", - "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==", + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { - "minipass": "^3.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mississippi": { @@ -13053,6 +14290,12 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -13293,18 +14536,6 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -13512,6 +14743,12 @@ "has": "^1.0.3" } }, + "objectorarray": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", + "dev": true + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -13531,18 +14768,18 @@ } }, "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "open": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", - "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", + "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", "dev": true, "requires": { "is-docker": "^2.0.0", @@ -13573,15 +14810,6 @@ "word-wrap": "~1.2.3" } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -13609,6 +14837,12 @@ "os-tmpdir": "^1.0.0" } }, + "overlayscrollbars": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.0.tgz", + "integrity": "sha512-p8oHrMeRAKxXDMPI/EBNITj/zTVHKNnAnM59Im+xnoZUlV07FyTg46wom2286jJlXGGfcPFG/ba5NUiCwWNd4w==", + "dev": true + }, "p-each-series": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", @@ -13648,9 +14882,9 @@ } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -14127,56 +15361,22 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "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" - } - }, - "locate-path": { - "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" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "locate-path": "^3.0.0" } - }, - "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 } } }, @@ -14187,12 +15387,12 @@ "dev": true }, "pnp-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", "dev": true, "requires": { - "ts-pnp": "^1.1.2" + "ts-pnp": "^1.1.6" } }, "polished": { @@ -14556,15 +15756,15 @@ } }, "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", "dev": true, "requires": { "icss-utils": "^4.1.1", - "postcss": "^7.0.16", + "postcss": "^7.0.32", "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" + "postcss-value-parser": "^4.1.0" } }, "postcss-modules-scope": { @@ -14860,10 +16060,10 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "prettier": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", "dev": true }, "pretty-error": { @@ -15104,16 +16304,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -15126,12 +16316,6 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true - }, "ramda": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz", @@ -15175,15 +16359,26 @@ } }, "raw-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", - "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^2.0.1" + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" }, "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -15218,87 +16413,94 @@ "prop-types": "^15.5.6" } }, - "react-clientside-effect": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz", - "integrity": "sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A==", + "react-color": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.1.tgz", + "integrity": "sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ==", "dev": true, "requires": { - "@babel/runtime": "^7.0.0" + "@icons/material": "^0.2.4", + "lodash": "^4.17.11", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" } }, "react-dev-utils": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", - "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", + "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", "dev": true, "requires": { - "@babel/code-frame": "7.5.5", + "@babel/code-frame": "7.8.3", "address": "1.1.2", - "browserslist": "4.7.0", + "browserslist": "4.10.0", "chalk": "2.4.2", - "cross-spawn": "6.0.5", + "cross-spawn": "7.0.1", "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.6.1", - "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.5.0", + "escape-string-regexp": "2.0.0", + "filesize": "6.0.1", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "3.1.1", "global-modules": "2.0.0", "globby": "8.0.2", "gzip-size": "5.1.1", "immer": "1.10.0", - "inquirer": "6.5.0", + "inquirer": "7.0.4", "is-root": "2.1.0", "loader-utils": "1.2.3", - "open": "^6.3.0", - "pkg-up": "2.0.0", - "react-error-overlay": "^6.0.3", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "react-error-overlay": "^6.0.7", "recursive-readdir": "2.2.2", "shell-quote": "1.7.2", - "sockjs-client": "1.4.0", - "strip-ansi": "5.2.0", + "strip-ansi": "6.0.0", "text-table": "0.2.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, - "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 - }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "debug": { @@ -15320,61 +16522,88 @@ "debug": "^2.6.0" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "figures": { + "escape-string-regexp": { "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" - } + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true }, "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", + "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==", "dev": true }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "fork-ts-checker-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^3.3.0", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" } }, "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", + "ansi-escapes": "^4.2.1", "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", + "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" + }, + "dependencies": { + "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 + }, + "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" + } + } } }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "json5": { @@ -15397,11 +16626,26 @@ "json5": "^1.0.1" } }, - "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 + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } }, "ms": { "version": "2.0.0", @@ -15409,76 +16653,54 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "shebang-regex": "^3.0.0" } }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "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" - } - } + "ansi-regex": "^5.0.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "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 - } + "isexe": "^2.0.0" } } } @@ -15499,10 +16721,49 @@ "strip-indent": "^3.0.0" }, "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "react-docgen-typescript": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.20.2.tgz", + "integrity": "sha512-tW1cZErh4AxDJIFiTxny9AfMeSwm+NI7BsXXuAXPvoIxToglFWvmJWsJF6sYhSA3zNu3zhFOIMdRMXTzQAyCpA==", + "dev": true + }, + "react-docgen-typescript-loader": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/react-docgen-typescript-loader/-/react-docgen-typescript-loader-3.7.2.tgz", + "integrity": "sha512-fNzUayyUGzSyoOl7E89VaPKJk9dpvdSgyXg81cUkwy0u+NBvkzQG3FC5WBIlXda0k/iaxS+PWi+OC+tUiGxzPA==", + "dev": true, + "requires": { + "@webpack-contrib/schema-utils": "^1.0.0-beta.0", + "loader-utils": "^1.2.3", + "react-docgen-typescript": "^1.15.0" + } + }, + "react-docgen-typescript-plugin": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-0.5.2.tgz", + "integrity": "sha512-NQfWyWLmzUnedkiN2nPDb6Nkm68ik6fqbC3UvgjqYSeZsbKijXUA4bmV6aU7qICOXdop9PevPdjEgJuAN0nNVQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "endent": "^2.0.1", + "micromatch": "^4.0.2", + "react-docgen-typescript": "^1.20.1", + "react-docgen-typescript-loader": "^3.7.2", + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", "dev": true } } @@ -15541,20 +16802,6 @@ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", "dev": true }, - "react-focus-lock": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.4.0.tgz", - "integrity": "sha512-mue/boxdfNhfxnQcZtEBvqwZ5XQxk0uRoAMwLGl8j6XolFV3UIlt6iGFBGqRdJsvVHhtyKC5i8fkLnBidxCTbA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.0.0", - "focus-lock": "^0.7.0", - "prop-types": "^15.6.2", - "react-clientside-effect": "^1.2.2", - "use-callback-ref": "^1.2.1", - "use-sidecar": "^1.0.1" - } - }, "react-helmet-async": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.6.tgz", @@ -15714,26 +16961,44 @@ "throttle-debounce": "^2.1.0" } }, + "react-switch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-switch/-/react-switch-5.0.1.tgz", + "integrity": "sha512-Pa5kvqRfX85QUCK1Jv0rxyeElbC3aNpCP5hV0LoJpU/Y6kydf0t4kRriQ6ZYA4kxWwAYk/cH51T4/sPzV9mCgQ==", + "requires": { + "prop-types": "^15.6.2" + } + }, "react-syntax-highlighter": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz", - "integrity": "sha512-kqmpM2OH5OodInbEADKARwccwSQWBfZi0970l5Jhp4h39q9Q65C4frNcnd6uHE5pR00W8pOWj9HDRntj2G4Rww==", + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz", + "integrity": "sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA==", "dev": true, "requires": { "@babel/runtime": "^7.3.1", - "highlight.js": "~9.13.0", - "lowlight": "~1.11.0", + "highlight.js": "~9.15.1", + "lowlight": "1.12.1", "prismjs": "^1.8.4", "refractor": "^2.4.1" } }, "react-textarea-autosize": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz", - "integrity": "sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.2.0.tgz", + "integrity": "sha512-grajUlVbkx6VdtSxCgzloUIphIZF5bKr21OYMceWPKkniy7H0mRAT/AXPrRtObAe+zUePnNlBwUc4ivVjUGIjw==", "dev": true, "requires": { - "@babel/runtime": "^7.1.2", + "@babel/runtime": "^7.10.2", + "use-composed-ref": "^1.0.0", + "use-latest": "^1.0.0" + } + }, + "react-time-ago": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-6.0.1.tgz", + "integrity": "sha512-ivRY3ooB52PXoDdm4sbpdAkEYnw91Lhz8IRQ951L9iSv5dmGonQ225u3cm0XfF7aaEQhpEf+U8YS268WhzIa9w==", + "requires": { + "javascript-time-ago": "^2.0.2", "prop-types": "^15.6.0" } }, @@ -15760,6 +17025,15 @@ } } }, + "reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "dev": true, + "requires": { + "lodash": "^4.0.1" + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -15828,7 +17102,6 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, - "optional": true, "requires": { "picomatch": "^2.2.1" } @@ -15973,6 +17246,12 @@ "es-abstract": "^1.17.0-next.1" } }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, "regexpu-core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", @@ -16016,6 +17295,11 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, + "relative-time-format": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-0.1.3.tgz", + "integrity": "sha512-0O6i4fKjsx8qhz57zorG+LrIDnF9pSvP5s7H9R1Nb5nSqih5dvRyKzNKs6MxhL3bv4iwsz4DuDwAyw+c47QFIA==" + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -16130,18 +17414,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "dev": true - }, "resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", @@ -16548,9 +17820,9 @@ } }, "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -16827,9 +18099,9 @@ } }, "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -17058,30 +18330,6 @@ } } }, - "simplebar": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz", - "integrity": "sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g==", - "dev": true, - "requires": { - "can-use-dom": "^0.1.0", - "core-js": "^3.0.1", - "lodash.debounce": "^4.0.8", - "lodash.memoize": "^4.1.2", - "lodash.throttle": "^4.1.1", - "resize-observer-polyfill": "^1.5.1" - } - }, - "simplebar-react": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz", - "integrity": "sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg==", - "dev": true, - "requires": { - "prop-types": "^15.6.1", - "simplebar": "^4.2.3" - } - }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -17094,6 +18342,25 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "slice-ansi": { + "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", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -17285,40 +18552,6 @@ } } }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -17559,12 +18792,6 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, "string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", @@ -17701,6 +18928,12 @@ "min-indent": "^1.0.0" } }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, "style-inject": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", @@ -17936,6 +19169,52 @@ "has-symbols": "^1.0.1" } }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "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 + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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", + "strip-ansi": "^5.1.0" + } + }, + "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" + } + } + } + }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -17954,19 +19233,30 @@ } }, "telejson": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz", - "integrity": "sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", + "integrity": "sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw==", "dev": true, "requires": { "@types/is-function": "^1.0.0", "global": "^4.4.0", - "is-function": "^1.0.1", - "is-regex": "^1.0.4", + "is-function": "^1.0.2", + "is-regex": "^1.1.1", "is-symbol": "^1.0.3", "isobject": "^4.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "memoizerific": "^1.11.3" + }, + "dependencies": { + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "term-size": { @@ -18001,48 +19291,86 @@ } }, "terser-webpack-plugin": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz", - "integrity": "sha512-xzYyaHUNhzgaAdBsXxk2Yvo/x1NJdslUaussK3fdpBbvttm1iIwU+c26dj9UxJcwk2c5UWt5F55MUTIA8BE7Dg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.1.0.tgz", + "integrity": "sha512-cjdZte66fYkZ65rQ2oJfrdCAkkhJA7YLYk5eGOcGCSGlq0ieZupRdjedSQXYknMPo2IveQL+tPdrxUkERENCFA==", "dev": true, "requires": { - "cacache": "^13.0.1", + "cacache": "^15.0.5", "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", + "jest-worker": "^26.2.1", + "p-limit": "^3.0.2", "schema-utils": "^2.6.6", - "serialize-javascript": "^3.1.0", + "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", - "terser": "^4.6.12", + "terser": "^4.8.0", "webpack-sources": "^1.4.3" }, "dependencies": { "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", "dev": true, "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.2", "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", "unique-filename": "^1.1.1" } }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -18061,14 +19389,33 @@ "dev": true }, "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1", "minipass": "^3.1.1" } + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -18097,9 +19444,9 @@ "dev": true }, "throttle-debounce": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.2.1.tgz", - "integrity": "sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==", "dev": true }, "throttleit": { @@ -18157,6 +19504,12 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "dev": true }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "dev": true + }, "tlds": { "version": "1.207.0", "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.207.0.tgz", @@ -18295,6 +19648,12 @@ "integrity": "sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg==", "dev": true }, + "ts-essentials": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-2.0.12.tgz", + "integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==", + "dev": true + }, "ts-jest": { "version": "24.3.0", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", @@ -18361,6 +19720,12 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -18571,7 +19936,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true + "dev": true, + "optional": true }, "uri-js": { "version": "4.2.2", @@ -18606,21 +19972,26 @@ } }, "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.0.tgz", + "integrity": "sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw==", "dev": true, "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" + "loader-utils": "^2.0.0", + "mime-types": "^2.1.26", + "schema-utils": "^2.6.5" }, "dependencies": { - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } }, "schema-utils": { "version": "2.7.0", @@ -18635,36 +20006,34 @@ } } }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "use-callback-ref": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.4.tgz", - "integrity": "sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==", + "use-composed-ref": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.0.0.tgz", + "integrity": "sha512-RVqY3NFNjZa0xrmK3bIMWNmQ01QjKPDc7DeWR3xa/N8aliVppuutOE5bZzPkQfvL+5NRWMMp0DJ99Trd974FIw==", + "dev": true, + "requires": { + "ts-essentials": "^2.0.3" + } + }, + "use-isomorphic-layout-effect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.0.0.tgz", + "integrity": "sha512-JMwJ7Vd86NwAt1jH7q+OIozZSIxA4ND0fx6AsOe2q1H8ooBUp5aN6DvVCqZiIaYU6JaMRJGyR0FO7EBCIsb/Rg==", "dev": true }, - "use-sidecar": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz", - "integrity": "sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA==", + "use-latest": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.1.0.tgz", + "integrity": "sha512-gF04d0ZMV3AMB8Q7HtfkAWe+oq1tFXP6dZKwBHQF5nVXtGsh2oAYeeqma5ZzxtlpOcW8Ro/tLcfmEodjDeqtuw==", "dev": true, "requires": { - "detect-node": "^2.0.4", - "tslib": "^1.9.3" + "use-isomorphic-layout-effect": "^1.0.0" } }, "util": { @@ -19172,23 +20541,6 @@ } } }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -19367,6 +20719,15 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write": { + "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" + } + }, "write-file-atomic": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", diff --git a/package.json b/package.json index 94440bfcc..068464413 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "@rollup/plugin-babel": "^5.1.0", "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-node-resolve": "^7.1.3", - "@storybook/react": "^5.3.19", + "@storybook/addon-storysource": "^6.0.16", + "@storybook/react": "^6.0.16", "@testing-library/jest-dom": "^5.5.0", "@testing-library/react": "^10.0.2", "@types/jest": "^24.0.24", @@ -39,6 +40,8 @@ "babel-preset-react-app": "^9.1.2", "clean-webpack-plugin": "^3.0.0", "cross-env": "^7.0.2", + "eslint": "^7.7.0", + "eslint-config-eko": "^2.0.0", "identity-obj-proxy": "^3.0.0", "jest": "^24.9.0", "node-sass": "^4.14.1", @@ -71,6 +74,7 @@ "eko-sdk": "^1.3.0", "filesize": "^6.1.0", "human-readable-numbers": "^0.9.5", + "javascript-time-ago": "^2.0.13", "lodash": "^4.17.19", "pkg": "^4.4.9", "ramda": "^0.27.0", @@ -78,6 +82,8 @@ "react-infinite-scroller": "^1.2.4", "react-intl": "^4.7.6", "react-linkify": "^1.0.0-alpha", + "react-switch": "^5.0.1", + "react-time-ago": "^6.0.1", "react-tiny-popover": "^5.1.0", "react-truncate-markup": "^5.0.0", "recoil": "0.0.10" diff --git a/src/ChatHeader/styles.js b/src/ChatHeader/styles.js index 7882469a1..6a73cb7cd 100644 --- a/src/ChatHeader/styles.js +++ b/src/ChatHeader/styles.js @@ -14,7 +14,6 @@ export const DetailsIcon = styled(FaIcon).attrs({ icon: faBars })` export const ChatHeaderContainer = styled.div` height: 76px; - flex-shrink: 0; padding: 0 20px; background: #ffffff; border-top: 1px solid #e3e4e8; diff --git a/src/Comment/index.js b/src/Comment/index.js index 23ac4b8d6..177a52d8b 100644 --- a/src/Comment/index.js +++ b/src/Comment/index.js @@ -4,14 +4,18 @@ import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; import Linkify from '../commonComponents/Linkify'; +import { notification } from '../commonComponents/Notification'; import Files from '../Files'; import Images from '../Images'; import { Avatar, + CommentComposeBar, Content, + CommentBlock, CommentContainer, + ReplyContainer, CommentHeader, CommentContent, AuthorName, @@ -22,11 +26,47 @@ import { LikeIcon, LikeButton, SolidLikeIcon, + ReplyIcon, + ReplyButton, + Options, } from './styles'; const COMMENT_MAX_LINES = 8; -const Comment = ({ className, comment, comment: { author, text, isLiked, likes = 0 }, onEdit }) => { +const onReportClick = () => + notification.success({ + content: 'Report Sent', + }); + +const CommentText = ({ children }) => { + const [isExpanded, setIsExpanded] = useState(false); + const expand = () => setIsExpanded(true); + + return ( + + {isExpanded ? ( + {children} + ) : ( + ...Read more} + > + {children} + + )} + + ); +}; + +const ReplyComment = ({ + className, + comment, + comment: { author, createdAt, updatedAt, text, isLiked, likes = 0 }, + onEdit, +}) => { + const [userToReply, setUserToReply] = useState(null); + const reply = user => setUserToReply(user); + const toggleLike = () => { onEdit({ ...comment, @@ -40,32 +80,89 @@ const Comment = ({ className, comment, comment: { author, text, isLiked, likes = const totalLikes = likes + (isLiked ? 1 : 0); return ( - - + + {author.name} - • Just now + - - {isExpanded ? ( - {text} - ) : ( - ...Read more} - > - {text} - - )} - + {text} {isLiked ? : } {!!totalLikes && totalLikes} + - + + ); +}; + +const Comment = ({ + className, + comment, + comment: { author, createdAt, replies, updatedAt, text, isLiked, likes = 0 }, + onEdit, +}) => { + const [userToReply, setUserToReply] = useState(null); + const reply = user => setUserToReply(user); + + const toggleLike = () => { + onEdit({ + ...comment, + isLiked: !isLiked, + }); + }; + + const addReply = replyComment => { + onEdit({ + ...comment, + replies: [ + ...comment.replies, + { + id: Date.now(), + ...replyComment, + }, + ], + }); + }; + + const editReply = updatedReply => { + onEdit({ + ...comment, + replies: replies.map(reply => (reply.id === updatedReply.id ? updatedReply : reply)), + }); + }; + + const totalLikes = likes + (isLiked ? 1 : 0); + + return ( + + + + + + {author.name} + + + {text} + + + {isLiked ? : } {!!totalLikes && totalLikes} + + reply(author)}> + Reply + + + + + + {replies.map(reply => ( + + ))} + {userToReply && } + ); }; diff --git a/src/Comment/styles.js b/src/Comment/styles.js index 395eab097..3add94423 100644 --- a/src/Comment/styles.js +++ b/src/Comment/styles.js @@ -1,10 +1,13 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faThumbsUp } from '@fortawesome/pro-regular-svg-icons'; +import { faThumbsUp, faShare } from '@fortawesome/pro-regular-svg-icons'; import { faThumbsUp as faThumbsUpSolid } from '@fortawesome/pro-solid-svg-icons'; import { SecondaryButton } from '../commonComponents/Button'; +import Time from '../commonComponents/Time'; +import UIOptions from '../commonComponents/Options'; +import UICommentComposeBar from '../CommentComposeBar'; import UIAvatar from '../Avatar'; @@ -12,12 +15,58 @@ export const Avatar = styled(UIAvatar)` margin-right: 8px; `; +export const Options = styled(UIOptions).attrs({ align: 'start' })` + color: #898e9e; + &:hover { + background-color: transparent; + } +`; + +export const CommentBlock = styled.div` + border-top: 1px solid #e3e4e8; +`; + +const encodeHexColor = hex => hex.replace('#', '%23'); + +//svg embeded in order to make theamed stroke color export const CommentContainer = styled.div` display: flex; color: black; - background: #ffffff; - border-top: 1px solid #e3e4e8; - padding: 16px 0; + padding-top: 16px; + :not(:last-child) { + background-position: 0 20px; + background-repeat: no-repeat; + background-image: url('data:image/svg+xml;utf8, + + '); +} +`; + +export const ReplyContainer = styled.div` + display: flex; + color: black; + padding-top: 16px; + &:last-child { + background-repeat: no-repeat; + background-image: url('data:image/svg+xml;utf8, + + '); + } + :not(:last-child) { + background-repeat: repeat-y; + background-image: url('data:image/svg+xml;utf8, + + '); +} +`; + +export const CommentComposeBar = styled(UICommentComposeBar)` + border: none; + padding: 8px 0 16px; + background-repeat: no-repeat; + background-image: url('data:image/svg+xml;utf8, + + '); `; export const Content = styled.div``; @@ -42,9 +91,12 @@ export const AuthorName = styled.div` ${({ theme }) => theme.typography.title} `; -export const CommentDate = styled.div` +export const CommentDate = styled(Time)` margin-left: 5px; color: #818698; + &::before { + content: '• '; + } ${({ theme }) => theme.typography.caption} `; @@ -55,6 +107,7 @@ export const ReadMoreButton = styled(SecondaryButton)` export const InteractionBar = styled.div` display: flex; + align-items: center; padding: 2px 0; `; @@ -64,7 +117,20 @@ export const LikeIcon = styled(FaIcon).attrs({ icon: faThumbsUp })` `; export const LikeButton = styled(SecondaryButton)` - padding: 12px 0; + margin-left: -10px; + + &:hover { + background-color: transparent; + } +`; + +export const ReplyIcon = styled(FaIcon).attrs({ icon: faShare })` + font-size: 16px; + margin-right: 5px; +`; + +export const ReplyButton = styled(SecondaryButton)` + margin-left: -10px; &:hover { background-color: transparent; diff --git a/src/CommentComposeBar/index.js b/src/CommentComposeBar/index.js index 653a4f8cb..98c94ac50 100644 --- a/src/CommentComposeBar/index.js +++ b/src/CommentComposeBar/index.js @@ -3,6 +3,8 @@ import InfiniteScroll from 'react-infinite-scroller'; import { customizableComponent } from '../hoks/customization'; +import { testUser } from '../mock'; + import { Avatar, CommentComposeBarContainer, @@ -10,29 +12,36 @@ import { AddCommentButton, } from './styles'; -const CommentComposeBar = ({ onSubmit }) => { - const [comment, setComment] = useState(''); +const CommentComposeBar = ({ className, userToReply, onSubmit, user = testUser }) => { + const [text, setText] = useState(''); const AddComment = () => { - if (comment === '') return; - onSubmit(comment); - setComment(''); + if (text === '') return; + onSubmit({ + author: user, + text, + createdAt: Date.now(), + }); + setText(''); }; - const isEmpty = comment === ''; + const isEmpty = text === ''; + + const placeholder = userToReply ? `Reply to ${userToReply.name}` : 'Say something nice'; + const submitButtonText = userToReply ? 'Reply' : 'Add comment'; return ( - - + + setComment(e.target.value)} - onKeyPress={e => e.key === 'Enter' && AddComment()} + value={text} + onChange={e => setText(e.target.value)} + /* onKeyPress={e => e.key === 'Enter' && AddComment()} */ /> - Add comment + {submitButtonText} ); diff --git a/src/CommentComposeBar/styles.js b/src/CommentComposeBar/styles.js index b61d65070..afa5ada7f 100644 --- a/src/CommentComposeBar/styles.js +++ b/src/CommentComposeBar/styles.js @@ -1,6 +1,7 @@ import styled from 'styled-components'; import { PrimaryButton } from '../commonComponents/Button'; +import TextareaAutosize from 'react-autosize-textarea'; import UIAvatar from '../Avatar'; @@ -16,13 +17,15 @@ export const CommentComposeBarContainer = styled.div` align-items: center; `; -export const CommentComposeBarInput = styled.input` - height: 40px; - padding: 6px; +export const CommentComposeBarInput = styled(TextareaAutosize).attrs({ rows: 1, maxRows: 15 })` + height: 22px; + padding: 10px 6px 6px; outline: none; border: 1px solid #e3e4e8; border-radius: 4px; flex-grow: 1; + font-size: 14px; + resize: vertical; `; export const AddCommentButton = styled(PrimaryButton)` diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index 1d3e7b58a..14afddf13 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -16,6 +16,8 @@ import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; import UserFeed from './UserFeed'; import NewsFeed from './NewsFeed'; +import ExploreHome from '../ExploreHome'; +import CategoryPage from '../ExploreHome/CategoryPage'; import CommunityFeed from './index'; export default { @@ -25,32 +27,45 @@ export default { const Pages = () => { const location = useLocation(); const history = useHistory(); - const { params = {} } = useRouteMatch('/community/:communityId') || {}; - const { communityId } = params; + const { params = {} } = + useRouteMatch('/community/:communityId') || useRouteMatch('/category/:categoryId') || {}; + const { communityId, categoryId } = params; + + const goToUserFeed = () => history.push(`/`); + const goToNewsFeed = () => history.push(`/news`); + const goToExplore = () => history.push(`/explore`); + const onCategoryClick = categoryId => { + history.push(`/category/${categoryId}`); + }; const goToCommunity = communityId => { history.push(`/community/${communityId}`); }; - const goToNewsFeed = () => history.push(`/news`); - const goToExplore = () => history.push(`/explore`); - const pathToSelectionType = { - '/news': SELECTION_TYPES.NEWS_FEED, - '/explore': SELECTION_TYPES.EXPLORE, + news: SELECTION_TYPES.NEWS_FEED, + explore: SELECTION_TYPES.EXPLORE, + category: SELECTION_TYPES.EXPLORE, }; const selected = { - type: pathToSelectionType[location.pathname], + type: pathToSelectionType[location.pathname.split('/')[1]], communityId, }; + const navigateTo = userOrCommunity => { + if (userOrCommunity.userId) goToUserFeed(userOrCommunity.userId); + if (userOrCommunity.communityId) goToCommunity(userOrCommunity.communityId); + }; + + const onCreateCommunityClick = () => console.log('TODO'); + return ( console.log('TODO')} + onCreateCommunityClick={onCreateCommunityClick} onCommunityClick={goToCommunity} onNewsFeedClick={goToNewsFeed} onExploreClick={goToExplore} @@ -59,16 +74,34 @@ const Pages = () => { > - + - + - Explore page, in progress + + + + - + diff --git a/src/Community/CommunityMembers.js b/src/Community/CommunityMembers.js new file mode 100644 index 000000000..f18a96577 --- /dev/null +++ b/src/Community/CommunityMembers.js @@ -0,0 +1,79 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; +import Options from '../commonComponents/Options'; +import { confirm } from '../commonComponents/Confirm'; +import { notification } from '../commonComponents/Notification'; +import { testMembers, testModerators } from '../mock'; + +import { + Avatar, + MemberInfo, + MemberName, + Caption, + CommunityMembersContainer, + CommunityMembersHeader, + CommunityMemberContainer, + CommunityMembersTabs, +} from './styles'; + +// TODO replace with translations keys +const tabs = { + MEMBERS: 'Members', + MODERATORS: 'Moderators', +}; + +const CommunityMember = ({ user, onMemberClick }) => { + const confirmRemoving = () => + confirm({ + title: 'Remove user from community', + content: + 'This user won’t no longer be able to search, post and interact in this community. Are you sure you want tocontinue?', + okText: 'Remove', + onOk: () => console.log('onRemove'), + }); + + const onReportClick = () => + notification.success({ + content: 'Report Sent', + }); + + return ( + + onMemberClick(user)}> + +
+ {user.name} + @useraccount +
+
+ +
+ ); +}; + +const CommunityMembers = ({ communityId, onMemberClick }) => { + const [activeTab, setActiveTab] = useState(tabs.MEMBERS); + + return ( + + Community Members • 243 + + {activeTab === tabs.MEMBERS && + testMembers.map(user => )} + {activeTab === tabs.MODERATORS && + testModerators.map(user => )} + + ); +}; + +export default customizableComponent('CommunityMembers')(CommunityMembers); diff --git a/src/Community/NewsFeed.js b/src/Community/NewsFeed.js index 278688f0f..ef551f5bb 100644 --- a/src/Community/NewsFeed.js +++ b/src/Community/NewsFeed.js @@ -5,27 +5,28 @@ import withSDK from '../hoks/withSDK'; import EmptyFeed from '../EmptyFeed'; -import usePostsMock from '../hooks/usePostsMock'; - -import { myCommunities, testNewsFeed } from '../mock'; +import { getMyCommunities, testNewsFeed, usePostsMock } from '../mock'; import { Content, Feed, PostCompose, Post } from './styles'; -const NewsFeed = ({ client }) => { - const { posts, addPost, removePost, editPost } = usePostsMock(testNewsFeed); +const NewsFeed = ({ client, onPostAuthorClick }) => { + const { posts, addPost, removePost, editPost } = usePostsMock(); + + const myCommunities = getMyCommunities(); return ( <> - + {posts.length === 0 && } {posts.map(post => ( editPost(updatedPost)} - onDelete={() => removePost(post.id)} + onDelete={() => removePost(post.postId)} /> ))} diff --git a/src/Community/UserFeed.js b/src/Community/UserFeed.js index feadc36fb..e94a52bc6 100644 --- a/src/Community/UserFeed.js +++ b/src/Community/UserFeed.js @@ -6,13 +6,12 @@ import withSDK from '../hoks/withSDK'; import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; -import usePostsMock from '../hooks/usePostsMock'; -import { userFeed } from '../mock'; +import { testUser, userFeed, usePostsMock } from '../mock'; import { Content, Feed, PostCompose, Post, UserFeedHeader } from './styles'; const UserFeed = ({ client }) => { - const { posts, addPost, removePost, editPost } = usePostsMock(userFeed); + const { posts, addPost, removePost, editPost } = usePostsMock(testUser.id); return ( <> @@ -23,10 +22,10 @@ const UserFeed = ({ client }) => { {posts.length === 0 && } {posts.map(post => ( editPost(updatedPost)} - onDelete={() => removePost(post.id)} + onDelete={() => removePost(post.postId)} /> ))} diff --git a/src/Community/index.js b/src/Community/index.js index c0e14334b..5bcd04a0f 100644 --- a/src/Community/index.js +++ b/src/Community/index.js @@ -6,9 +6,9 @@ import withSDK from '../hoks/withSDK'; import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; -import usePostsMock from '../hooks/usePostsMock'; +import CommunityMembers from './CommunityMembers'; -import { myCommunities } from '../mock'; +import { getCommunities, usePostsMock } from '../mock'; import { Content, Feed, PostCompose, Post, FeedHeaderTabs } from './styles'; @@ -18,39 +18,59 @@ const tabs = { MEMBERS: 'Members', }; -const COMMUNITY_TEST_POSTS = []; +const CommunityPosts = ({ communityId = { communityId }, community, onPostAuthorClick }) => { + const { posts, addPost, removePost, editPost } = usePostsMock(communityId); -const CommunityFeed = ({ client, communityId }) => { - const { posts, addPost, removePost, editPost } = usePostsMock(COMMUNITY_TEST_POSTS); + return ( + <> + + {posts.length === 0 && } + {posts.map(post => ( + editPost(updatedPost)} + onDelete={() => removePost(post.postId)} + /> + ))} + + ); +}; - const community = myCommunities.find(community => community.communityId === communityId); +const CommunityFeed = ({ communityId, onPostAuthorClick, onMemberClick }) => { + const communities = getCommunities(); + + const community = communities.find(community => community.communityId === communityId); const [activeTab, setActiveTab] = useState(tabs.TIMELINE); return ( - <> - - - + + + {activeTab === tabs.TIMELINE && ( + + )} - - {posts.length === 0 && } - {posts.map(post => ( - editPost(updatedPost)} - onDelete={() => removePost(post.id)} - /> - ))} - - - - + {activeTab === tabs.MEMBERS && ( + + )} + + + ); }; diff --git a/src/Community/styles.js b/src/Community/styles.js index 038830007..a36f7b7c4 100644 --- a/src/Community/styles.js +++ b/src/Community/styles.js @@ -3,6 +3,17 @@ import UIPost from '../Post'; import UIPostCompose from '../PostCompose'; import UIFeedHeaderTabs from '../commonComponents/FeedHeaderTabs'; import UIUserFeedHeader from '../UserFeedHeader'; +import UiKitAvatar from '../Avatar'; + +import Tabs from '../commonComponents/Tabs'; + +export const CommunityMembersTabs = styled(Tabs)` + margin-bottom: 14px; +`; + +export const Avatar = styled(UiKitAvatar)` + margin-right: 8px; +`; export const Post = styled(UIPost)` margin-bottom: 12px; @@ -21,10 +32,46 @@ export const PostCompose = styled(UIPostCompose)` `; export const Content = styled.div` + width: 100%; + padding: 24px 78px 0; overflow-y: auto; display: flex; `; export const Feed = styled.div` margin-right: 36px; + width: 560px; + flex-shrink: 0; +`; + +export const CommunityMembersContainer = styled.div` + background: #ffffff; + border: 1px solid #edeef2; + border-radius: 4px; +`; + +export const CommunityMembersHeader = styled.div` + ${({ theme }) => theme.typography.title} + padding: 16px; +`; + +export const CommunityMemberContainer = styled.div` + padding: 10px 16px; + display: flex; + justify-content: space-between; +`; + +export const MemberInfo = styled.div` + display: flex; + align-items: center; + cursor: pointer; +`; + +export const MemberName = styled.div` + ${({ theme }) => theme.typography.bodyBold} +`; + +export const Caption = styled.div` + ${({ theme }) => theme.typography.caption} + color: #636878; `; diff --git a/src/CommunityItem/index.js b/src/CommunityItem/index.js index b0ca5495e..a7894cc01 100644 --- a/src/CommunityItem/index.js +++ b/src/CommunityItem/index.js @@ -1,21 +1,14 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; +import CommunityName from '../commonComponents/CommunityName'; -import { - Avatar, - CommunityItemContainer, - CommunityName, - VervifiedIcon, - PrivateIcon, -} from './styles'; +import { Avatar, CommunityItemContainer } from './styles'; const CommunityItem = ({ community, active, onClick }) => ( - {community.isPrivate && } - {community.name} - {community.verified && } + ); diff --git a/src/CommunityItem/styles.js b/src/CommunityItem/styles.js index 497a1ea4d..93458f2e9 100644 --- a/src/CommunityItem/styles.js +++ b/src/CommunityItem/styles.js @@ -1,29 +1,9 @@ import styled from 'styled-components'; import UiKitAvatar from '../Avatar'; import SideMenuItem from '../commonComponents/SideMenuItem'; -import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faBadgeCheck } from '@fortawesome/pro-solid-svg-icons'; -import { faLockAlt } from '@fortawesome/pro-regular-svg-icons'; - -export const PrivateIcon = styled(FaIcon).attrs({ icon: faLockAlt })` - margin-right: 8px; - font-size: 16px; -`; - -export const VervifiedIcon = styled(FaIcon).attrs({ icon: faBadgeCheck })` - margin-left: 8px; - font-size: 16px; - color: #1253de; -`; export const CommunityItemContainer = styled(SideMenuItem)``; export const Avatar = styled(UiKitAvatar)` margin-right: 8px; `; - -export const CommunityName = styled.div` - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -`; diff --git a/src/EngagementBar/index.js b/src/EngagementBar/index.js index 0da44214f..93b243d2a 100644 --- a/src/EngagementBar/index.js +++ b/src/EngagementBar/index.js @@ -8,27 +8,10 @@ import Comment from '../Comment'; import { EngagementBarContainer, Counters, InteractionBar, LikeIcon, CommentIcon } from './styles'; -// const Comment = ({ comment, comment: { author, text, isLiked, likes }, onEdit }) => { -// const toggleLike = () => { -// onEdit({ -// ...comment, -// isLiked: !isLiked, -// }); -// }; - -// return ( -//
-// text: {text} -// {isLiked ? 'liked' : ''} -//
-// ); -// }; - const EngagementBar = ({ post, onPostEdit }) => { const { isLiked, likes = 0, comments = [] } = post; const [isOpen, setIsOpen] = useState(false); - const open = () => setIsOpen(true); const toggleLike = () => { @@ -38,15 +21,15 @@ const EngagementBar = ({ post, onPostEdit }) => { }); }; - const addComment = text => { + const addComment = comment => { onPostEdit({ ...post, comments: [ ...comments, { id: Date.now(), - author: { userId: 1, name: 'John' }, - text, + replies: [], + ...comment, }, ], }); diff --git a/src/EngagementBar/styles.js b/src/EngagementBar/styles.js index 7cc15e2ed..96bf37ecf 100644 --- a/src/EngagementBar/styles.js +++ b/src/EngagementBar/styles.js @@ -26,7 +26,6 @@ export const LikeIcon = styled(FaIcon).attrs({ icon: faThumbsUp })` export const CommentIcon = styled(FaIcon).attrs({ icon: faCommentAlt })` position: relative; - top: 2px; font-size: 16px; margin-right: 5px; `; diff --git a/src/ExploreHome/CategoryPage.js b/src/ExploreHome/CategoryPage.js new file mode 100644 index 000000000..9d86b42e0 --- /dev/null +++ b/src/ExploreHome/CategoryPage.js @@ -0,0 +1,51 @@ +import React from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import { getCommunities, getCategory } from '../mock'; + +import Community from './Community'; + +import { + Avatar, + CategoryPageContainer, + CategoryPageHeader, + Blocks, + Block, + CommunityItems, + CategoryName, + BackButton, + BackIcon, +} from './styles'; + +const CategoryPage = ({ client, onCommunityClick, onHeaderBackButtonClick, categoryId }) => { + const communities = getCommunities(); + + const category = getCategory(categoryId); + + return ( + + + + +
+ + + Back + + {category.name} +
+
+ + + {[...communities, ...communities, ...communities].map(community => ( + onCommunityClick(community)} community={community} /> + ))} + + +
+
+ ); +}; + +export default customizableComponent('CategoryPage')(CategoryPage); diff --git a/src/ExploreHome/Community.js b/src/ExploreHome/Community.js new file mode 100644 index 000000000..b9c3be1d0 --- /dev/null +++ b/src/ExploreHome/Community.js @@ -0,0 +1,22 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import Truncate from 'react-truncate-markup'; +import { customizableComponent } from '../hoks/customization'; +import CommunityName from '../commonComponents/CommunityName'; + +import { Avatar, CommunityItem, Description, Count } from './styles'; + +const Community = ({ community, onClick }) => ( + + + +
+ {toHumanString(community.postsCount)} posts +
+ + {community.description} + +
+); + +export default customizableComponent('Community')(Community); diff --git a/src/ExploreHome/CommunitySearch.js b/src/ExploreHome/CommunitySearch.js new file mode 100644 index 000000000..e98dd22cc --- /dev/null +++ b/src/ExploreHome/CommunitySearch.js @@ -0,0 +1,84 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; +import Popover from '../commonComponents/Popover/'; +import { MenuItem } from '../commonComponents/Menu'; + +import { getCommunities, getCategories } from '../mock'; + +import { + Avatar, + CommunitiesSearchContainer, + CommunitiesSearchInput, + SearchIcon, + CommunitiesSearchResults, + Text, + HighlightedText, +} from './styles'; + +// from https://stackoverflow.com/questions/29652862/highlight-text-using-reactjs +const Highlight = ({ query, text }) => { + const chunks = text.split(new RegExp(`(${query})`, 'gi')); + return chunks.map(chunk => { + if (chunk.toLowerCase() === query.toLowerCase()) + return {chunk}; + return {chunk}; + }); +}; + +const CommunitySearch = ({ onSearchResultCommunityClick }) => { + const [query, setQuery] = useState(''); + + const [isOpen, setIsOpen] = useState(true); + const open = () => setIsOpen(true); + const close = () => setIsOpen(false); + + // open if query not empty + useEffect( + () => { + query.length && open(); + }, + [query], + ); + + const communities = getCommunities(); + + const searchResult = communities.filter(({ name }) => + name.toLowerCase().includes(query.toLowerCase()), + ); + + const menu = ( + + {searchResult.map(community => ( + onSearchResultCommunityClick(community)}> + + + + ))} + + ); + + const isPopoverOpen = isOpen && query.length && searchResult.length; + + return ( + + + setQuery(e.target.value)} + type="text" + placeholder="Search communities..." + /> + + + + ); +}; + +export default customizableComponent('CommunitySearch')(CommunitySearch); diff --git a/src/ExploreHome/ExploreHeader.js b/src/ExploreHome/ExploreHeader.js new file mode 100644 index 000000000..ddfb6e865 --- /dev/null +++ b/src/ExploreHome/ExploreHeader.js @@ -0,0 +1,21 @@ +import React from 'react'; + +import { customizableComponent } from '../hoks/customization'; + +import CommunitySearch from './CommunitySearch'; + +import { Avatar, CreateCommunityButton, ExploreHeaderContainer, PlusIcon } from './styles'; + +const ExploreHeader = ({ onSearchResultCommunityClick, onCreateCommunityClick }) => ( + + Explore community + + or create your own community + + + Create community + + +); + +export default customizableComponent('ExploreHeader')(ExploreHeader); diff --git a/src/ExploreHome/TrendingCommunity.js b/src/ExploreHome/TrendingCommunity.js new file mode 100644 index 000000000..d9bed4671 --- /dev/null +++ b/src/ExploreHome/TrendingCommunity.js @@ -0,0 +1,29 @@ +import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import Truncate from 'react-truncate-markup'; +import { customizableComponent } from '../hoks/customization'; +import CommunityName from '../commonComponents/CommunityName'; + +import { + Avatar, + TrendingCommunityContainer, + CommunityInfo, + Description, + TrendingFooter, +} from './styles'; + +const TrendingCommunity = ({ community, onClick }) => ( + + + + + + {community.description} + + + Category • {toHumanString(community.postsCount)} members + + +); + +export default customizableComponent('TrendingCommunity')(TrendingCommunity); diff --git a/src/ExploreHome/index.js b/src/ExploreHome/index.js new file mode 100644 index 000000000..3b9c2c115 --- /dev/null +++ b/src/ExploreHome/index.js @@ -0,0 +1,110 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; +import Modal from '../commonComponents/Modal'; +import Menu, { MenuItem } from '../commonComponents/Menu'; +import CommunityName from '../commonComponents/CommunityName'; + +import { getCommunities, getCategories } from '../mock'; + +import Community from './Community'; +import TrendingCommunity from './TrendingCommunity'; +import ExploreHeader from './ExploreHeader'; + +import { + Avatar, + ExploreHomeContainer, + Blocks, + Block, + BlockHeader, + CommunityItems, + Categories, + Category, + TrendingCommunities, + ViewAllButton, + RightIcon, + CategoryModalBody, +} from './styles'; + +const ExploreHome = ({ + client, + onSearchResultCommunityClick, + onRecomendedCommunityClick, + onTrendingCommunityClick, + onCreateCommunityClick, + onCategoryClick, +}) => { + const communities = getCommunities(); + + const categories = getCategories(); + + const [showCategoryModal, setShowCategoryModal] = useState(false); + const openCategoryModal = () => setShowCategoryModal(true); + const closeCategoryModal = () => setShowCategoryModal(false); + + const modal = showCategoryModal ? ( + + + {categories.map(category => ( + onCategoryClick(category.id)}> + + {category.name} + + + ))} + + + ) : null; + + return ( + + + + + Recommended for you + + {communities.slice(0, 5).map(community => ( + onRecomendedCommunityClick(community)} + community={community} + /> + ))} + + + + + Today's Trending + + {communities.map(community => ( + onTrendingCommunityClick(community)} + community={community} + /> + ))} + + + + + Categories + + {categories.map(category => ( + onCategoryClick(category.id)}> + {category.name} + + ))} + + + View all + + + + + {modal} + + ); +}; + +export default customizableComponent('ExploreHome')(ExploreHome); diff --git a/src/ExploreHome/styles.js b/src/ExploreHome/styles.js new file mode 100644 index 000000000..bc06d1d61 --- /dev/null +++ b/src/ExploreHome/styles.js @@ -0,0 +1,224 @@ +import styled from 'styled-components'; +import Button from '../commonComponents/Button'; +import UIAvatar from '../Avatar'; +import Menu from '../commonComponents/Menu'; +import { SecondaryButton } from '../commonComponents/Button'; + +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { + faSearch, + faPlus, + faChevronLeft, + faChevronRight, +} from '@fortawesome/pro-regular-svg-icons'; + +export const SearchIcon = styled(FaIcon).attrs({ icon: faSearch })` + color: #898e9e; + padding: 0 10px; + position: absolute; + top: 10px; + left: 5px; +`; + +export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` + margin: 0 9px 0 6px; +`; + +export const BackIcon = styled(FaIcon).attrs({ icon: faChevronLeft })` + margin-right: 5px; +`; + +export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` + margin-left: 10px; +`; + +export const Avatar = styled(UIAvatar)` + margin-right: 8px; +`; + +export const ExploreHeaderContainer = styled.div` + display: flex; + flex-direction: column; + align-items: center; + padding: 35px 10px 30px; + background: #1054de; + color: #fff; + ${({ theme }) => theme.typography.title} +`; + +export const ExploreHomeContainer = styled.div` + flex-grow: 1; + overflow-x: hidden; + overflow-y: auto; +`; + +export const CategoryPageContainer = styled.div` + flex-grow: 1; + overflow-x: hidden; + overflow-y: auto; +`; + +export const CategoryPageHeader = styled.div` + background: #ffffff; + border: 1px solid #edeef2; + border-radius: 4px 4px 0px 0px; + padding: 16px; + margin-top: 25px; + display: flex; + align-items: center; +`; + +export const CommunitiesSearchContainer = styled.div` + position: relative; + width: 480px; + margin: 8px 0 25px; +`; + +export const CommunitiesSearchInput = styled.input` + width: 100%; + padding: 10px; + padding-left: 40px; + background: #ffffff; + border: 1px solid #d5d7dd; + border-radius: 4px; + outline: none; +`; + +export const CreateCommunityButton = styled(Button)` + margin-top: 8px; +`; + +export const CommunitiesSearchResults = styled(Menu)` + width: 480px; + overflow-y: auto; + max-height: 200px; +`; + +export const CategoryModalBody = styled(Menu)` + width: 520px; + overflow-y: auto; + max-height: 300px; +`; + +export const HighlightedText = styled.span` + ${({ theme }) => theme.typography.bodyBold} + white-space: break-spaces; +`; + +export const Text = styled.span` + ${({ theme }) => theme.typography.body} + white-space: break-spaces; +`; + +export const Blocks = styled.div` + margin: 0 36px; + padding-bottom: 20px; +`; + +export const Block = styled.div` + margin-top: 20px; + background: #fff; + border: 1px solid #ebecef; + border-radius: 4px; +`; + +export const BlockHeader = styled.div` + padding: 16px 16px 12px; + border-bottom: 1px solid #ebecef; + ${({ theme }) => theme.typography.title} +`; + +export const CommunityItem = styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + border: 1px solid #ebecef; + border-radius: 4px; + padding: 16px; + overflow: hidden; + color: #292b32; + height: 180px; + ${({ theme }) => theme.typography.caption} +`; + +export const CommunityItems = styled.div` + padding: 20px 16px 16px; + display: grid; + grid-gap: 12px; + grid-template-columns: repeat(auto-fill, 170px); + justify-content: space-between; + cursor: pointer; +`; + +export const Description = styled.div` + margin-top: 5px; +`; + +export const Count = styled.span` + ${({ theme }) => theme.typography.captionBold} +`; + +export const Categories = styled.div` + padding: 20px 16px 20px; + display: grid; + grid-gap: 16px; + grid-template-columns: auto auto auto; +`; + +export const Category = styled.div` + display: flex; + cursor: pointer; + ${({ theme }) => theme.typography.bodyBold} +`; + +export const TrendingCommunities = styled.div` + padding: 30px; + display: grid; + grid-gap: 30px; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto auto auto; + grid-auto-flow: column; +`; + +export const CommunityInfo = styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + padding-bottom: 12px; + cursor: pointer; + border-bottom: 1px solid #ebecef; +`; + +export const TrendingCommunityContainer = styled.div` + display: flex; + align-items: center; + justify-content: space-between; + ${({ theme }) => theme.typography.caption} + + &:last-child ${CommunityInfo}, + &:nth-child(3) ${CommunityInfo} { + border: none; + } +`; + +export const TrendingFooter = styled.div` + color: #636878; + margin-top: 5px; +`; + +export const CategoryName = styled.div` + ${({ theme }) => theme.typography.headline} +`; + +export const BackButton = styled(SecondaryButton)` + padding: 4px 12px 4px 5px; +`; + +export const ViewAllButton = styled(SecondaryButton)` + border-top: 1px solid #ebecef; + padding: 18px; + width: 100%; + border-radius: 0; + align-items: center; + justify-content: center; +`; diff --git a/src/FeedLayout/index.js b/src/FeedLayout/index.js index a00f46126..7a10f83d6 100644 --- a/src/FeedLayout/index.js +++ b/src/FeedLayout/index.js @@ -7,7 +7,7 @@ const FeedLayout = ({ sideMenu, children }) => { return ( {sideMenu} - {children} + {children} ); }; diff --git a/src/FeedLayout/styles.js b/src/FeedLayout/styles.js index ccb640ba5..de9fdc382 100644 --- a/src/FeedLayout/styles.js +++ b/src/FeedLayout/styles.js @@ -6,9 +6,3 @@ export const LayoutContainer = styled.div` height: 90vh; overflow: hidden; `; - -export const FeedWrapper = styled.div` - width: 100%; - padding: 24px 78px 0; - overflow: scroll; -`; diff --git a/src/FeedSideMenu/index.js b/src/FeedSideMenu/index.js index 8a9963a2b..cf938e198 100644 --- a/src/FeedSideMenu/index.js +++ b/src/FeedSideMenu/index.js @@ -6,7 +6,7 @@ import useLiveObject from '../hooks/useLiveObject'; import CommunityItem from '../CommunityItem'; import SideMenuItem from '../commonComponents/SideMenuItem'; -import { myCommunities } from '../mock'; +import { getMyCommunities } from '../mock'; import { SideMenuListContainer, @@ -33,6 +33,8 @@ const FeedSideMenu = ({ onExploreClick, selectedChannelId, }) => { + const myCommunities = getMyCommunities(); + return ( diff --git a/src/Message/index.js b/src/Message/index.js index 4273de836..5ea9c6157 100644 --- a/src/Message/index.js +++ b/src/Message/index.js @@ -37,7 +37,12 @@ const MessageContent = ({ message: { data, type, isDeleted } }) => { } }; -const Message = ({ message, message: { data, type, editedAt, user }, consequent, incoming }) => { +const Message = ({ + message, + message: { data, type, createdAt, updatedAt, user }, + consequent, + incoming, +}) => { const { displayName } = user.model; return ( @@ -49,7 +54,7 @@ const Message = ({ message, message: { data, type, editedAt, user }, consequent, - + {!message.isDeleted && } diff --git a/src/Post/index.js b/src/Post/index.js index 98df0259c..999598756 100644 --- a/src/Post/index.js +++ b/src/Post/index.js @@ -5,7 +5,7 @@ import { customizableComponent } from '../hoks/customization'; import Linkify from '../commonComponents/Linkify'; import Modal from '../commonComponents/Modal'; -import Options from '../commonComponents/Options'; +import Time from '../commonComponents/Time'; import { confirm } from '../commonComponents/Confirm'; import EngagementBar from '../EngagementBar'; @@ -17,11 +17,12 @@ import PostCompose from '../PostCompose'; import { PostContainer, PostHeader, + PostAuthor, PostContent, AuthorName, - PostDate, PostInfo, ReadMoreButton, + Options, } from './styles'; const TEXT_POST_MAX_LINES = 8; @@ -47,9 +48,10 @@ const usePostEditingModal = ({ post, onEdit }) => { }; const Post = ({ + onPostAuthorClick, className, post, - post: { author, text, files = [], images = [] }, + post: { author, text, files = [], images = [], createdAt }, onEdit, onDelete, }) => { @@ -74,13 +76,13 @@ const Post = ({ {postEditingModal} - <> + onPostAuthorClick(author)}> {author.name} - 30 min + - + theme.typography.title} `; -export const PostDate = styled.div` - color: #818698; - ${({ theme }) => theme.typography.caption} -`; - export const ReadMoreButton = styled(SecondaryButton)` color: #1054de; padding: 4px; diff --git a/src/PostCompose/AuthorSelector.js b/src/PostCompose/AuthorSelector.js new file mode 100644 index 000000000..6b6b2a7eb --- /dev/null +++ b/src/PostCompose/AuthorSelector.js @@ -0,0 +1,58 @@ +import React, { useState, useEffect } from 'react'; + +import { customizableComponent } from '../hoks/customization'; +import Popover from '../commonComponents/Popover/'; +import Menu, { MenuItem } from '../commonComponents/Menu'; + +import { AuthorSelectorContainer, CommunitySeparator, SelectIcon, Avatar } from './styles'; + +const AuthorSelector = ({ author, user, communities, onChange }) => { + if (!communities || !communities.length) return ; + + const [isOpen, setIsOpen] = useState(false); + const open = () => setIsOpen(true); + const close = () => setIsOpen(false); + + const menu = ( + + { + onChange(user); + close(); + }} + > + My Timeline + + Community + {communities.map(community => ( + { + onChange(community); + close(); + }} + > + {community.name} + + ))} + + ); + + return ( +
+ + + + + +
+ ); +}; + +export default customizableComponent('AuthorSelector')(AuthorSelector); diff --git a/src/PostCompose/index.js b/src/PostCompose/index.js index fb0120734..d7d7eb0c2 100644 --- a/src/PostCompose/index.js +++ b/src/PostCompose/index.js @@ -6,20 +6,16 @@ import { notification } from '../commonComponents/Notification'; import Files from '../Files'; import Images from '../Images'; -import Popover from '../commonComponents/Popover/'; -import Menu, { MenuItem } from '../commonComponents/Menu'; - import { testUser, testFiles, testImages } from '../mock'; +import AuthorSelector from './AuthorSelector'; + import { - AuthorSelectorContainer, - CommunitySeparator, PostComposeContainer, PostComposeTextarea, PostComposeTextareaWrapper, ImagePostIcon, FilePostIcon, - SelectIcon, Footer, FooterActionBar, PostContainer, @@ -43,10 +39,9 @@ const PostAsCommunity = ({ value, onChange }) => (
); -const isIdenticalAuthor = (a, b) => - !!a && - !!b && - ((!!a.userId && a.userId == b.userId) || (!!a.communityId && a.communityId == b.communityId)); +const getAuthorId = ({ communityId, userId } = {}) => communityId || userId; + +const isIdenticalAuthor = (a, b) => !!getAuthorId(a) && getAuthorId(a) === getAuthorId(b); const maxImagesWarning = () => notification.info({ @@ -55,62 +50,14 @@ const maxImagesWarning = () => const maxFilesWarning = () => notification.info({ - content: 'The selected file is larger than 1GB. Plese select a new file. ', + content: 'The selected file is larger than 1GB. Please select a new file. ', }); -const AuthorSelector = ({ author, user, communities, onChange }) => { - if (!communities || !communities.length) return ; - - const [isOpen, setIsOpen] = useState(false); - const open = () => setIsOpen(true); - const close = () => setIsOpen(false); - - const menu = ( - - { - onChange(user); - close(); - }} - > - My Timeline - - Community - {communities.map(community => ( - { - onChange(community); - close(); - }} - > - {community.name} - - ))} - - ); - - return ( -
- - - - - -
- ); -}; - const PostComposeBar = ({ user = testUser, community, communities, + targetId, edit, post = {}, onSubmit, @@ -132,11 +79,13 @@ const PostComposeBar = ({ const createPost = () => { if (isEmpty) return; onSubmit({ - id: Date.now(), + postId: `p${Date.now()}`, + targetId: targetId || getAuthorId(author), author, text, files, images, + createdAt: Date.now(), }); setText(''); setFiles([]); @@ -150,6 +99,7 @@ const PostComposeBar = ({ text, files, images, + updateAt: Date.now(), }); }; diff --git a/src/PostCompose/styles.js b/src/PostCompose/styles.js index a2d4a946a..8ed9ae66d 100644 --- a/src/PostCompose/styles.js +++ b/src/PostCompose/styles.js @@ -34,7 +34,6 @@ const postComposeEditStyle = ` `; const postComposeStyle = ` - width: 560px; padding: 16px 20px 12px 16px; border: 1px solid #edeef2; `; diff --git a/src/UiKitProvider/GlobalTheme.js b/src/UiKitProvider/GlobalTheme.js index 3257f4503..6aa2b4fa5 100644 --- a/src/UiKitProvider/GlobalTheme.js +++ b/src/UiKitProvider/GlobalTheme.js @@ -25,7 +25,7 @@ const Theme = { headline: ` font-family: Inter; font-style: normal; -font-weight: bold; +font-weight: 600; font-size: 20px; `, title: ` diff --git a/src/UiKitProvider/Localisation/index.js b/src/UiKitProvider/Localisation/index.js new file mode 100644 index 000000000..bd0d7afeb --- /dev/null +++ b/src/UiKitProvider/Localisation/index.js @@ -0,0 +1,11 @@ +import React from 'react'; +import { IntlProvider } from 'react-intl'; +import TimeAgo from 'javascript-time-ago'; +import en from 'javascript-time-ago/locale/en'; +import { FormattedTime } from 'react-intl'; + +TimeAgo.addLocale(en); + +const Localization = props => ; + +export default Localization; diff --git a/src/UiKitProvider/index.js b/src/UiKitProvider/index.js index d778e9463..3b078126e 100644 --- a/src/UiKitProvider/index.js +++ b/src/UiKitProvider/index.js @@ -5,9 +5,10 @@ import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/customization'; import { SDKProvider } from '../hoks/withSDK'; -import { IntlProvider } from 'react-intl'; +import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; import GlobalTheme from './GlobalTheme'; +import MockData from '../mock/'; import { ConfirmContainer } from '../commonComponents/Confirm'; import { NotificationsContainer } from '../commonComponents/Notification'; @@ -55,18 +56,18 @@ const UiKitProvider = ({ ); return ( - + - {children} + {children} - + ); }; diff --git a/src/commonComponents/Button/styles.js b/src/commonComponents/Button/styles.js index 3d9b9a700..3d19de4e9 100644 --- a/src/commonComponents/Button/styles.js +++ b/src/commonComponents/Button/styles.js @@ -1,7 +1,8 @@ import styled from 'styled-components'; const commonButtonStyles = ({ theme }) => ` -text-align: center; +display: flex; +align-items: center; border-radius: 4px; outline: none; padding: 10px 12px; @@ -12,7 +13,7 @@ ${theme.typography.bodyBold} export const DefaultButton = styled.button` ${commonButtonStyles} - background-color: transparent; + background-color: #fff; border: 1px solid #e3e4e8; color: #17181c; &:hover { diff --git a/src/commonComponents/CommunityName/index.js b/src/commonComponents/CommunityName/index.js new file mode 100644 index 000000000..06d8d071c --- /dev/null +++ b/src/commonComponents/CommunityName/index.js @@ -0,0 +1,13 @@ +import React from 'react'; + +import { NameContainer, Name, VervifiedIcon, PrivateIcon } from './styles'; + +const CommunityName = ({ className, community }) => ( + + {community.isPrivate && } + {community.name} + {community.verified && } + +); + +export default CommunityName; diff --git a/src/commonComponents/CommunityName/styles.js b/src/commonComponents/CommunityName/styles.js new file mode 100644 index 000000000..c53c8a0cd --- /dev/null +++ b/src/commonComponents/CommunityName/styles.js @@ -0,0 +1,28 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faBadgeCheck } from '@fortawesome/pro-solid-svg-icons'; +import { faLockAlt } from '@fortawesome/pro-regular-svg-icons'; + +export const PrivateIcon = styled(FaIcon).attrs({ icon: faLockAlt })` + margin-right: 8px; + font-size: 16px; +`; + +export const VervifiedIcon = styled(FaIcon).attrs({ icon: faBadgeCheck })` + margin-left: 8px; + font-size: 16px; + color: #1253de; +`; + +export const Name = styled.div` + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +`; + +export const NameContainer = styled.div` + display: flex; + align-items: center; + overflow: hidden; + ${({ theme }) => theme.typography.bodyBold} +`; diff --git a/src/commonComponents/Confirm/styles.js b/src/commonComponents/Confirm/styles.js index 732fdffe8..6c77f10cd 100644 --- a/src/commonComponents/Confirm/styles.js +++ b/src/commonComponents/Confirm/styles.js @@ -11,7 +11,13 @@ export const Footer = styled.div` justify-content: flex-end; `; -export const DefaultOkButton = PrimaryButton; +export const DefaultOkButton = styled(PrimaryButton)` + color: white; + background: #fa4d30; + &:hover { + background: #fa4d30; + } +`; export const DefaultCancelButton = styled(Button)` margin-right: 10px; `; diff --git a/src/commonComponents/FeedHeaderTabs/index.js b/src/commonComponents/FeedHeaderTabs/index.js index 3720dd957..73928d876 100644 --- a/src/commonComponents/FeedHeaderTabs/index.js +++ b/src/commonComponents/FeedHeaderTabs/index.js @@ -1,23 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { toHumanString } from 'human-readable-numbers'; import { customizableComponent } from '../../hoks/customization'; -import Button from '../Button'; -import Tab from '../Tab'; -import { FeedHeaderContainer, Tabs } from './styles'; - -const FeedHeaderTabs = ({ className, tabs, activeTab, onChange }) => { - return ( - - - {tabs.map(tab => ( - onChange(tab)}> - {tab} - - ))} - - - ); -}; +import { FeedHeaderTabs } from './styles'; export default customizableComponent('FeedHeaderTabs')(FeedHeaderTabs); diff --git a/src/commonComponents/FeedHeaderTabs/styles.js b/src/commonComponents/FeedHeaderTabs/styles.js index f82304abd..655c13abe 100644 --- a/src/commonComponents/FeedHeaderTabs/styles.js +++ b/src/commonComponents/FeedHeaderTabs/styles.js @@ -1,11 +1,8 @@ import styled from 'styled-components'; +import UITabs from '../Tabs'; -export const FeedHeaderContainer = styled.div` +export const FeedHeaderTabs = styled(UITabs)` background: #ffffff; - border: 1px solid #edeef2; border-radius: 4px 4px 0 0; -`; - -export const Tabs = styled.div` - padding: 0 16px; + border: 1px solid #edeef2; `; diff --git a/src/commonComponents/Modal/styles.js b/src/commonComponents/Modal/styles.js index 5afbf1495..cb791712f 100644 --- a/src/commonComponents/Modal/styles.js +++ b/src/commonComponents/Modal/styles.js @@ -56,6 +56,12 @@ export const Content = styled.div` `; export const Footer = styled.div` - ${({ clean }) => !clean && 'border-top: 1px solid #ebecef;'} padding: 16px 12px; + padding-top: 4px; + ${({ clean }) => + !clean && + ` +border-top: 1px solid #ebecef; +padding-top: 16px; + `} `; diff --git a/src/commonComponents/Notification/styles.js b/src/commonComponents/Notification/styles.js index f5a358ab9..b6bbedc8b 100644 --- a/src/commonComponents/Notification/styles.js +++ b/src/commonComponents/Notification/styles.js @@ -1,6 +1,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faExclamationCircle, faCheck, faTimes } from '@fortawesome/pro-regular-svg-icons'; +import { faCheck, faTimes } from '@fortawesome/pro-regular-svg-icons'; +import { faExclamationCircle } from '@fortawesome/pro-solid-svg-icons'; export const SuccessIcon = styled(FaIcon).attrs({ icon: faCheck })` font-size: 18px; diff --git a/src/commonComponents/Options/styles.js b/src/commonComponents/Options/styles.js index 5186eb8e1..c7d0dd489 100644 --- a/src/commonComponents/Options/styles.js +++ b/src/commonComponents/Options/styles.js @@ -8,10 +8,9 @@ export const OptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisH })` font-size: 16px; cursor: pointer; margin-left: auto; - color: #17181c; `; export const OptionsButton = styled(SecondaryButton)` padding: 5px; - margin-left: auto; + color: #17181c; `; diff --git a/src/commonComponents/Tabs/index.js b/src/commonComponents/Tabs/index.js new file mode 100644 index 000000000..3deac325a --- /dev/null +++ b/src/commonComponents/Tabs/index.js @@ -0,0 +1,17 @@ +import React, { useState, useEffect } from 'react'; +import { customizableComponent } from '../../hoks/customization'; +import Tab from '../Tab'; + +import { TabsContainer } from './styles'; + +const Tabs = ({ className, tabs, activeTab, onChange }) => ( + + {tabs.map(tab => ( + onChange(tab)}> + {tab} + + ))} + +); + +export default customizableComponent('Tabs')(Tabs); diff --git a/src/commonComponents/Tabs/styles.js b/src/commonComponents/Tabs/styles.js new file mode 100644 index 000000000..8a5fa1afc --- /dev/null +++ b/src/commonComponents/Tabs/styles.js @@ -0,0 +1,6 @@ +import styled from 'styled-components'; + +export const TabsContainer = styled.div` + border-bottom: 1px solid #edeef2; + padding: 0 16px; +`; diff --git a/src/commonComponents/Time/index.js b/src/commonComponents/Time/index.js new file mode 100644 index 000000000..6e94648eb --- /dev/null +++ b/src/commonComponents/Time/index.js @@ -0,0 +1,19 @@ +import React, { useEffect, useReducer } from 'react'; +import { FormattedDate } from 'react-intl'; +import ReactTimeAgo from 'react-time-ago'; + +import { DateContainer } from './styles'; + +const DAY = 24 * 60 * 60 * 1000; + +const Time = ({ className, date }) => { + const delta = Date.now() - date; + + return ( + + {delta < DAY ? : } + + ); +}; + +export default Time; diff --git a/src/commonComponents/Time/styles.js b/src/commonComponents/Time/styles.js new file mode 100644 index 000000000..3e36630d4 --- /dev/null +++ b/src/commonComponents/Time/styles.js @@ -0,0 +1,6 @@ +import styled from 'styled-components'; + +export const DateContainer = styled.div` + color: #818698; + ${({ theme }) => theme.typography.caption} +`; diff --git a/src/mock/index.js b/src/mock/index.js index f2f3b85e2..51ae71dc4 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,14 +1,21 @@ import React, { useContext, useMemo, useState } from 'react'; +import { RecoilRoot, atom, selector, useRecoilState, useRecoilValue } from 'recoil'; export const testUser = { + userId: 'u1', name: 'Donald Trump', avatar: 'https://www.thenation.com/wp-content/uploads/2020/08/donald-trump-spacex-speech-gty-img.jpg', }; -export const userFeed = [ +export const testMembers = [testUser, testUser, testUser, testUser]; + +export const testModerators = [testUser, testUser]; + +export const posts = [ { - id: 1, + postId: 'p1', + targetId: 'u1', author: testUser, text: 'text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n', @@ -43,54 +50,126 @@ export const userFeed = [ ], }, { - id: 2, + postId: 'p2', + targetId: 'u1', author: testUser, text: 'text text text', }, ]; -export const myCommunities = [ +const description = + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur auctor leo et tortor tempor finibus. Phasellus ultrices nulla nec libero ornare bibendum. Etiam nibh tellus, egestas at molestie vel, egestas euismod justo. Duis non dui ipsum. Maecenas mollis sed erat et ultrices. Cras rhoncus bibendum erat, at volutpat justo. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec ac mollis nunc. Nam velit justo, volutpat sed sem quis, malesuada ultrices diam. Nulla hendrerit, elit vitae tincidunt rhoncus, justo enim imperdiet ante, convallis sodales ligula ligula non tellus. Etiam mollis leo ac erat mattis maximus. Praesent dui arcu, bibendum ut porta vel, bibendum id lorem. Mauris laoreet ligula et augue venenatis, in varius augue posuere.'; + +const communities = [ { - communityId: '1', + communityId: 'c1', name: 'Billie Ellish Fans', avatar: 'https://cdn.vox-cdn.com/thumbor/VetxE6rRTJt5tLhQ2Z99QFA9zcI=/1400x1400/filters:format(jpeg)/cdn.vox-cdn.com/uploads/chorus_asset/file/16127988/56973906_1031440620389086_5150401069125206016_o.jpg', + postsCount: 12332, + description, }, { - communityId: '2', + communityId: 'c2', name: 'BLACKPINK TH', verified: true, avatar: 'https://i.pinimg.com/originals/2c/69/c5/2c69c5959858e4119322698da738bb44.jpg', + postsCount: 123, + description, }, { - communityId: '3', + communityId: 'c3', name: 'Breakfast Club', avatar: 'https://simply-delicious-food.com/wp-content/uploads/2018/10/breakfast-board-500x500.jpg', + postsCount: 5332, + description, }, { - communityId: '4', + communityId: 'c4', name: 'BTS & ARMY', avatar: 'https://pbs.twimg.com/profile_images/1219274759034363905/BfWdIBVk.jpg', + postsCount: 532, + description, }, { - communityId: '5', + communityId: 'c5', name: 'Harry Potter Fans', isPrivate: true, avatar: 'https://static3.srcdn.com/wordpress/wp-content/uploads/2019/09/voldemort-3.jpg', + postsCount: 23, + description, }, { - communityId: '6', + communityId: 'c6', name: 'Very long name very very long name name', isPrivate: true, + verified: true, avatar: 'https://i.guim.co.uk/img/media/788dbbce44c1846fab9da460f64d23d02754a143/362_0_776_1626/master/776.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=91c98c71c708b039e9fc3eed87177d6c', + postsCount: 39807398, + description, + }, +]; + +const categories = [ + { + id: 'cat1', + name: 'Travel', + avatar: + 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/PilotwingsSymbol.svg/256px-PilotwingsSymbol.svg.png', + }, + { + id: 'cat2', + name: 'Fun', + avatar: + 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Oxygen480-emotes-face-smile-big.svg/256px-Oxygen480-emotes-face-smile-big.svg.png', + }, + { + id: 'cat3', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat4', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat5', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat6', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat7', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat8', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat9', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', + }, + { + id: 'cat10', + name: 'Random', + avatar: 'https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-12/256/game-die.png', }, ]; -const communityFeeds = myCommunities.map(community => [ +const communityFeeds = communities.map(community => [ { - id: '1', + id: 'c1', author: community, text: 'Community post', }, @@ -99,36 +178,16 @@ const communityFeeds = myCommunities.map(community => [ export const testNewsFeed = [ { id: 1, - author: myCommunities[3], + author: communities[3], text: 'News feed post', }, { id: 2, - author: myCommunities[2], + author: communities[2], text: 'News feed post', }, ]; -const defaultCommunityFeed = [ - // { - // id: 1, - // text: 'News feed post', - // }, -]; - -export const MockDataContext = React.createContext(); - -export const MockDataProvider = props => { - const [data, setData] = useState({ - communities, - communityFeeds, - userFeed, - newsFeed, - }); - - ; -}; - export const testFiles = [ { filename: 'text.txt', @@ -257,3 +316,70 @@ export const testImages = [ url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', }, ]; + +const communitiesAtom = atom({ + key: 'communities', + default: communities, +}); + +const categoriesAtom = atom({ + key: 'categories', + default: categories, +}); + +const myCommunityIdsAtom = atom({ + key: 'myCommunityIds', + default: ['c4', 'c5', 'c6'], +}); + +export const getCommunities = () => useRecoilValue(communitiesAtom); + +export const getCategories = () => useRecoilValue(categoriesAtom); + +export const getCategory = categoryId => getCategories().find(({ id }) => id === categoryId); + +const myCommunities = selector({ + key: 'myCommunities', + get: ({ get }) => { + const communities = get(communitiesAtom); + const myCommunityIds = get(myCommunityIdsAtom); + + return myCommunityIds.map(id => communities.find(({ communityId }) => communityId === id)); + }, +}); + +export const getMyCommunities = () => useRecoilValue(myCommunities); + +const postsAtom = atom({ key: 'posts', default: posts }); + +const myNewsFeed = selector({ + key: 'myNewsFeed', + get: ({ get }) => { + const posts = get(postsAtom); + const myCommunityIds = get(myCommunityIdsAtom); + + const myNewsSources = [...myCommunityIds, testUser.userId]; + + return posts.filter(({ targetId }) => myNewsSources.includes(targetId)); + }, +}); + +export const getNewsFeed = () => useRecoilValue(myNewsFeed); + +export const usePostsMock = targetId => { + const [posts, setPosts] = useRecoilState(postsAtom); + + const addPost = newPost => setPosts([newPost, ...posts]); + const removePost = postId => setPosts(posts.filter(post => post.postId !== postId)); + + const editPost = updatedPost => + setPosts(posts.map(post => (post.postId === updatedPost.postId ? updatedPost : post))); + + const postsFeed = targetId + ? posts.filter(community => community.targetId === targetId) + : getNewsFeed(); + + return { posts: postsFeed, addPost, removePost, editPost }; +}; + +export default RecoilRoot; From dd8c0a62a95a3d35c4cc8e88c0b94e4655fb233d Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Thu, 27 Aug 2020 15:22:30 +0700 Subject: [PATCH 045/740] draft --- .prettierrc | 8 ++ package-lock.json | 24 ++-- package.json | 3 +- src/Community/Community.stories.js | 19 ++- src/CommunityForm/index.js | 101 ++++++++++++++ src/CommunityForm/styles.js | 203 +++++++++++++++++++++++++++++ src/Post/index.js | 28 ++-- src/UiKitProvider/GlobalStyle.js | 1 + 8 files changed, 355 insertions(+), 32 deletions(-) create mode 100644 .prettierrc create mode 100644 src/CommunityForm/index.js create mode 100644 src/CommunityForm/styles.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..b6d0e79ef --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "tabWidth": 2, + "printWidth": 100, + "useTabs": false, + "singleQuote": true, + "trailingComma": "all", + "quoteProps": "as-needed" +} diff --git a/package-lock.json b/package-lock.json index c342a0a73..1804267f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7424,8 +7424,7 @@ "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", - "dev": true + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, "cldr-core": { "version": "36.0.0", @@ -16815,6 +16814,11 @@ "shallowequal": "^1.1.0" } }, + "react-hook-form": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.5.3.tgz", + "integrity": "sha512-ID0z1udMQueWta3cceQUBaWLqZZLwSNWkxXYcuxa0nbII+mnggmGiEQW7PuWBBkEXv6GdHlu4PNqRj/FoeDpRg==" + }, "react-hotkeys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/react-hotkeys/-/react-hotkeys-2.0.0.tgz", @@ -16961,14 +16965,6 @@ "throttle-debounce": "^2.1.0" } }, - "react-switch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-switch/-/react-switch-5.0.1.tgz", - "integrity": "sha512-Pa5kvqRfX85QUCK1Jv0rxyeElbC3aNpCP5hV0LoJpU/Y6kydf0t4kRriQ6ZYA4kxWwAYk/cH51T4/sPzV9mCgQ==", - "requires": { - "prop-types": "^15.6.2" - } - }, "react-syntax-highlighter": { "version": "12.2.1", "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz", @@ -17007,6 +17003,14 @@ "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-5.1.0.tgz", "integrity": "sha512-VjBp6Q1f4cJ2xiuyU1rhFnrs+fdnWCYFSrKRN4DTGD2ovchOAGR1jbJ9vgV34TtvMPON+SqBBZFnahVsAGmrUQ==" }, + "react-toggle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", + "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==", + "requires": { + "classnames": "^2.2.5" + } + }, "react-truncate-markup": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", diff --git a/package.json b/package.json index 068464413..8c89c896a 100644 --- a/package.json +++ b/package.json @@ -79,12 +79,13 @@ "pkg": "^4.4.9", "ramda": "^0.27.0", "react-autosize-textarea": "^7.1.0", + "react-hook-form": "^6.5.3", "react-infinite-scroller": "^1.2.4", "react-intl": "^4.7.6", "react-linkify": "^1.0.0-alpha", - "react-switch": "^5.0.1", "react-time-ago": "^6.0.1", "react-tiny-popover": "^5.1.0", + "react-toggle": "^4.1.1", "react-truncate-markup": "^5.0.0", "recoil": "0.0.10" } diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index 14afddf13..6bd11e525 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React, { useState, useEffect } from 'react'; import { HashRouter as Router, Switch, @@ -13,12 +13,14 @@ import UiKitProvider from '../UiKitProvider'; import FeedLayout from '../FeedLayout/'; import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; +import Modal from '../commonComponents/Modal'; import UserFeed from './UserFeed'; import NewsFeed from './NewsFeed'; import ExploreHome from '../ExploreHome'; import CategoryPage from '../ExploreHome/CategoryPage'; import CommunityFeed from './index'; +import CommunityForm from '../CommunityForm'; export default { title: 'Community', @@ -58,14 +60,22 @@ const Pages = () => { if (userOrCommunity.communityId) goToCommunity(userOrCommunity.communityId); }; - const onCreateCommunityClick = () => console.log('TODO'); + const [communityCreation, setCommunityCreation] = useState(true); + const openCommunityCreationModal = () => setCommunityCreation(true); + const closeCommunityCreationModal = () => setCommunityCreation(false); + + const createCommunityModal = communityCreation ? ( + + + + ) : null; return ( { onSearchResultCommunityClick={navigateTo} onRecomendedCommunityClick={navigateTo} onTrendingCommunityClick={navigateTo} - onCreateCommunityClick={onCreateCommunityClick} + onCreateCommunityClick={openCommunityCreationModal} onCategoryClick={onCategoryClick} /> @@ -104,6 +114,7 @@ const Pages = () => { /> + {createCommunityModal} ); }; diff --git a/src/CommunityForm/index.js b/src/CommunityForm/index.js new file mode 100644 index 000000000..7ee0376ec --- /dev/null +++ b/src/CommunityForm/index.js @@ -0,0 +1,101 @@ +import React, { useState, useEffect } from 'react'; +import { useForm } from 'react-hook-form'; + +import { customizableComponent } from '../hoks/customization'; +import { notification } from '../commonComponents/Notification'; + +import { testUser } from '../mock'; + +import { + Form, + InformationBlock, + Avatar, + AvatarUploadContainer, + AboutTextarea, + Switch, + SwitchContainer, + Footer, + SubmitButton, + Description, + FormBlockContainer, + FormBlockHeader, + FormBlockBody, +} from './styles'; + +// const maxFilesWarning = () => +// notification.info({ +// content: 'The selected file is larger than 1GB. Please select a new file. ', +// }); + +const AvatarUpload = () => ( + + + +); + +const FormBlock = ({ title, children, edit }) => ( + + {edit && title && {title}} + {children} + +); + +const CommunityForm = ({ user = testUser, community, edit, onSubmit, onSave, className }) => { + const [text, setText] = useState(''); + + const { register, handleSubmit, getValues, setValue, errors, watch } = useForm(); // initialize the hook + + // const onSubmit = data => { + // console.log(data); + // }; + const values = getValues(); + console.log('values', values); + // const { onlyAdminCanPost } = values; + const onlyAdminCanPost = watch('onlyAdminCanPost', false); + return ( + <> +
+ + {/* avatar */} + + Community name + + {/* 0/30 */} + About + + {/* 0/180 */} + Category +
selector
+
+ + +
+ Only admin can post + + Choose to allow Only Admins to create posts in this community. + +
+ setValue('onlyAdminCanPost', e.target.checked)} + /> +
+
+ + Public + Anyone can join, view, and search the posts 
in this page. + PrivateIcon + + Only members invited by the moderators can join, view, and search the posts in this + page.{' '} + + +
+ Create +
+
+ + ); +}; + +export default customizableComponent('CommunityForm')(CommunityForm); diff --git a/src/CommunityForm/styles.js b/src/CommunityForm/styles.js new file mode 100644 index 000000000..ef5eb86a8 --- /dev/null +++ b/src/CommunityForm/styles.js @@ -0,0 +1,203 @@ +import styled from 'styled-components'; +import TextareaAutosize from 'react-autosize-textarea'; +import ReactToggle from 'react-toggle'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; +import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; +import { PrimaryButton } from '../commonComponents/Button'; +import UIAvatar from '../Avatar'; + +export const Form = styled.form` + width: 520px; +`; + +export const SubmitButton = styled(PrimaryButton).attrs({ + type: 'submit', +})` + padding: 10px 16px; + margin-left: auto; +`; + +export const Switch = styled(ReactToggle).attrs({ + icons: false, +})``; + +export const FormBlockHeader = styled.div` + padding: 12px 16px; + ${({ theme }) => theme.typography.title} + display: flex; + align-items: center; + border-bottom: 1px solid #ebecef; +`; + +export const FormBlockContainer = styled.div` + background: #fff; + border-bottom: 1px solid #ebecef; + ${({ edit }) => + edit && + ` + margin-top: 12px; + border: 1px solid #EDEEF2; +border-radius: 4px; +`} +`; + +export const FormBlockBody = styled.div` + display: flex; + flex-direction: column; + ${({ edit }) => (edit ? `padding: 0 16px 20px;` : `padding: 20px 16px 16px;`)} +`; + +export const SwitchContainer = styled.div` + display: flex; + align-items: center; + justify-content: space-between; +`; + +export const Description = styled.div` + color: #636878; +`; + +export const InformationBlock = styled.div` + padding 0 16px 20px; + display: flex; + flex-direction: column; +`; + +export const CommunityPermissionBlock = styled.div` + padding 0 16px 20px; + display: flex; + flex-direction: column; +`; + +export const Footer = styled.div` + padding: 12px 16px; +`; + +export const Avatar = styled(UIAvatar)` + margin-right: 8px; +`; + +export const AvatarUploadContainer = styled.div` + display: flex; + align-items: center; + justify-content: center; + padding-bottom: 20px; +`; + +export const AboutTextarea = styled(TextareaAutosize).attrs({ rows: 1, maxRows: 15 })` + display: block; + outline: none; + border-radius: 4px; + resize: none; + border: 1px solid #e3e4e8; + padding: 10px 12px; + &:focus-within { + border: 1px solid #1054de; + } +`; + +// TODO add icon button +export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` + font-size: 18px; + cursor: pointer; + margin-right: 20px; + color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; +`; + +export const SelectIcon = styled(FaIcon).attrs({ icon: faSortDown })` + font-size: 18px; + margin-right: 8px; + margin-top: -4px; +`; + +export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` + font-size: 18px; + margin-right: 12px; + cursor: pointer; + color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; +`; + +const postComposeEditStyle = ` + width: 520px; + padding: 0; + border: none; +`; + +const postComposeStyle = ` + padding: 16px 20px 12px 16px; + border: 1px solid #edeef2; +`; + +export const PostComposeContainer = styled.div` + ${({ edit }) => (edit ? postComposeEditStyle : postComposeStyle)} + display: flex; + background: #ffffff; + border-radius: 4px; +`; + +// const postComposeTextareaWrapperEditStyle = ` +// border: none; +// padding: 20px 16px; +// `; + +// const postComposeTextareaWrapperStyle = ` +// border: 1px solid #e3e4e8; +// padding: 10px 12px; +// &:focus-within { +// border: 1px solid #1054de; +// } +// `; + +export const PostComposeTextareaWrapper = styled.div` + ${({ edit }) => (edit ? postComposeTextareaWrapperEditStyle : postComposeTextareaWrapperStyle)} + display: flex; + flex-direction: column; + flex-grow: 1; + border-radius: 4px; + min-height: 40px; +`; + +export const FooterActionBar = styled.div` + display: flex; + align-items: center; +`; + +export const PostContainer = styled.div` + flex-grow: 1; +`; + +export const PostAsCommunityContainer = styled.div` + display: flex; + border-radius: 4px; + background: #ebecef; + padding: 10px; + margin-bottom: 12px; + ${({ theme }) => theme.typography.captionBold} +`; + +export const Checkbox = styled.input.attrs({ + type: 'checkbox', +})` + margin-right: 10px; + width: 18px; + height: 18px; +`; + +export const Caption = styled.div` + ${({ theme }) => theme.typography.caption} + color: #636878; +`; + +export const AuthorSelectorContainer = styled.div` + display: flex; + align-items: center; + cursor: pointer; +`; + +export const CommunitySeparator = styled.div` + ${({ theme }) => theme.typography.caption} + border-top: 1px solid #e3e4e8; + color: #636878; + padding: 12px; +`; diff --git a/src/Post/index.js b/src/Post/index.js index 999598756..d73ff7ac6 100644 --- a/src/Post/index.js +++ b/src/Post/index.js @@ -28,7 +28,17 @@ import { const TEXT_POST_MAX_LINES = 8; const CONTENT_POST_MAX_LINES = 3; -const usePostEditingModal = ({ post, onEdit }) => { +const Post = ({ + onPostAuthorClick, + className, + post, + post: { author, text, files = [], images = [], createdAt }, + onEdit, + onDelete, +}) => { + const [isExpanded, setIsExpanded] = useState(false); + const expand = () => setIsExpanded(true); + const [isEditing, setIsEditing] = useState(false); const openEditingPostModal = () => setIsEditing(true); const closeEditingPostModal = () => setIsEditing(false); @@ -44,22 +54,6 @@ const usePostEditingModal = ({ post, onEdit }) => { ) : null; - return { openEditingPostModal, postEditingModal }; -}; - -const Post = ({ - onPostAuthorClick, - className, - post, - post: { author, text, files = [], images = [], createdAt }, - onEdit, - onDelete, -}) => { - const [isExpanded, setIsExpanded] = useState(false); - const expand = () => setIsExpanded(true); - - const { openEditingPostModal, postEditingModal } = usePostEditingModal({ post, onEdit }); - const confirmDeleting = () => confirm({ title: 'Delete post', diff --git a/src/UiKitProvider/GlobalStyle.js b/src/UiKitProvider/GlobalStyle.js index 188458ae3..2df1c876e 100644 --- a/src/UiKitProvider/GlobalStyle.js +++ b/src/UiKitProvider/GlobalStyle.js @@ -1,4 +1,5 @@ import { createGlobalStyle } from 'styled-components'; +import 'react-toggle/style.css'; const GlobalStyle = createGlobalStyle` @import url("https://rsms.me/inter/inter.css"); From ccb2fd84471a4365fac9270f6276309318928720 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Fri, 28 Aug 2020 19:11:40 +0700 Subject: [PATCH 046/740] add layout side menu and header --- package-lock.json | 1052 +++++++++++++++++------------- src/Layout/Layout.stories.js | 24 + src/Layout/index.js | 34 + src/Layout/styles.js | 24 + src/SideMenu/MenuTab.js | 14 + src/SideMenu/icons/community.svg | 12 + src/SideMenu/index.js | 21 + src/SideMenu/styles.js | 38 ++ 8 files changed, 778 insertions(+), 441 deletions(-) create mode 100644 src/Layout/Layout.stories.js create mode 100644 src/Layout/index.js create mode 100644 src/Layout/styles.js create mode 100644 src/SideMenu/MenuTab.js create mode 100644 src/SideMenu/icons/community.svg create mode 100644 src/SideMenu/index.js create mode 100644 src/SideMenu/styles.js diff --git a/package-lock.json b/package-lock.json index 129380e30..66412dda0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4504,11 +4504,6 @@ "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -4835,22 +4830,12 @@ "is-string": "^1.0.4" } }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -4944,7 +4929,8 @@ "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, "asynckit": { "version": "0.4.0", @@ -5656,11 +5642,6 @@ } } }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -5728,11 +5709,6 @@ } } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -5753,14 +5729,6 @@ "tweetnacl": "^0.14.3" } }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -5784,11 +5752,6 @@ "file-uri-to-path": "1.0.0" } }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -6293,11 +6256,6 @@ "caller-callsite": "^2.0.0" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -6851,20 +6809,11 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "computed-style": { "version": "0.1.4", @@ -6960,11 +6909,6 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", @@ -7678,6 +7622,7 @@ "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" } @@ -8138,16 +8083,6 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, - "eko-flobx": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eko-flobx/-/eko-flobx-0.2.0.tgz", - "integrity": "sha512-S2hYxq/d59yfPc0PWG/gAMvzD5wsfC1izYwhiBf5LoEdrXROaB3EpCXevO5t8QdoBG77UqmzMPKBKmqrZ1zBfA==", - "requires": { - "flux": "^3.1.3", - "lodash.isplainobject": "^4.0.6", - "mobx": "^4.1.1" - } - }, "eko-sdk": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eko-sdk/-/eko-sdk-1.3.0.tgz", @@ -8166,6 +8101,97 @@ "uuid": "^3.2.1" }, "dependencies": { + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -8173,6 +8199,509 @@ "requires": { "ms": "^2.1.1" } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "eko-flobx": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eko-flobx/-/eko-flobx-0.2.0.tgz", + "integrity": "sha512-S2hYxq/d59yfPc0PWG/gAMvzD5wsfC1izYwhiBf5LoEdrXROaB3EpCXevO5t8QdoBG77UqmzMPKBKmqrZ1zBfA==", + "requires": { + "flux": "^3.1.3", + "lodash.isplainobject": "^4.0.6", + "mobx": "^4.1.1" + } + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "engine.io-client": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", + "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "fbemitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "requires": { + "fbjs": "^0.8.4" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "flux": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", + "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "requires": { + "fbemitter": "^2.0.0", + "fbjs": "^0.8.0" + } + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "items": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/items/-/items-2.1.2.tgz", + "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==" + }, + "joi": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", + "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", + "requires": { + "hoek": "4.x.x", + "isemail": "2.x.x", + "items": "2.x.x", + "topo": "2.x.x" + } + }, + "joi-objectid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/joi-objectid/-/joi-objectid-2.0.0.tgz", + "integrity": "sha1-VlSVc6Zrp5Xc9rniJt5fOy027Do=" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, + "localforage": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz", + "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==", + "requires": { + "lie": "3.1.1" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mobx": { + "version": "4.15.6", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.6.tgz", + "integrity": "sha512-eZVEHZLi/Fe+V4qurBBQoFHCqaGrfMuYK1Vy4t5MHYfy90f52ptAKsemHsJcYl+R5/sA3oeT3rMLiVsbB7bllA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "superagent": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", + "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } + }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "whatwg-fetch": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz", + "integrity": "sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ==" + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } }, @@ -8242,24 +8771,6 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -8269,46 +8780,6 @@ "once": "^1.4.0" } }, - "engine.io-client": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", - "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, "enhanced-resolve": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", @@ -8511,11 +8982,6 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, - "eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" - }, "eventemitter3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", @@ -8976,35 +9442,6 @@ "bser": "2.1.1" } }, - "fbemitter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", - "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", - "requires": { - "fbjs": "^0.8.4" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } - } - }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -9266,15 +9703,6 @@ "readable-stream": "^2.3.6" } }, - "flux": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", - "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", - "requires": { - "fbemitter": "^2.0.0", - "fbjs": "^0.8.0" - } - }, "focus-lock": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.7.0.tgz", @@ -9455,11 +9883,6 @@ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", "dev": true }, - "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -9878,26 +10301,6 @@ "ansi-regex": "^2.0.0" } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -10057,11 +10460,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -10282,11 +10680,6 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, "immer": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", @@ -10371,11 +10764,6 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -10921,7 +11309,8 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "is-string": { "version": "1.0.5", @@ -10975,11 +11364,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isemail": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", - "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -10992,26 +11376,6 @@ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - }, - "dependencies": { - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - } - } - }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -11098,11 +11462,6 @@ "html-escaper": "^2.0.0" } }, - "items": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/items/-/items-2.1.2.tgz", - "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==" - }, "iterate-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", @@ -11976,22 +12335,6 @@ } } }, - "joi": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", - "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", - "requires": { - "hoek": "4.x.x", - "isemail": "2.x.x", - "items": "2.x.x", - "topo": "2.x.x" - } - }, - "joi-objectid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/joi-objectid/-/joi-objectid-2.0.0.tgz", - "integrity": "sha1-VlSVc6Zrp5Xc9rniJt5fOy027Do=" - }, "js-base64": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz", @@ -12200,14 +12543,6 @@ "type-check": "~0.3.2" } }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "requires": { - "immediate": "~3.0.5" - } - }, "line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", @@ -12288,14 +12623,6 @@ } } }, - "localforage": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz", - "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==", - "requires": { - "lie": "3.1.1" - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -12323,11 +12650,6 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -12694,7 +13016,8 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, "microevent.ts": { "version": "0.1.1", @@ -12763,7 +13086,8 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true }, "mime-db": { "version": "1.44.0", @@ -12971,11 +13295,6 @@ "minimist": "^1.2.5" } }, - "mobx": { - "version": "4.15.6", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.6.tgz", - "integrity": "sha512-eZVEHZLi/Fe+V4qurBBQoFHCqaGrfMuYK1Vy4t5MHYfy90f52ptAKsemHsJcYl+R5/sA3oeT3rMLiVsbB7bllA==" - }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -12993,7 +13312,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "multistream": { "version": "2.1.1", @@ -13363,11 +13683,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -13774,22 +14089,6 @@ "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -14933,14 +15232,6 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -15102,7 +15393,8 @@ "qs": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true }, "query-string": { "version": "4.3.4", @@ -16916,7 +17208,8 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "setprototypeof": { "version": "1.1.1", @@ -17217,69 +17510,6 @@ } } }, - "socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - } - } - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "sockjs-client": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", @@ -17778,33 +18008,6 @@ } } }, - "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -18172,11 +18375,6 @@ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -18243,14 +18441,6 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, - "topo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", - "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", - "requires": { - "hoek": "4.x.x" - } - }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -18398,11 +18588,6 @@ "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, - "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" - }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -19193,11 +19378,6 @@ "iconv-lite": "0.4.24" } }, - "whatwg-fetch": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz", - "integrity": "sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ==" - }, "whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", @@ -19388,11 +19568,6 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -19487,11 +19662,6 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } } diff --git a/src/Layout/Layout.stories.js b/src/Layout/Layout.stories.js new file mode 100644 index 000000000..78fba1c37 --- /dev/null +++ b/src/Layout/Layout.stories.js @@ -0,0 +1,24 @@ +import React, { useEffect } from "react"; +import Layout from "./index"; +import SideMenu from "../SideMenu"; + +export default { + title: "Layout", +}; + +export const headers = () => { + return ; +}; + +export const sidemenu = () => { + return ; +}; + +export const testlayout = () => { + return ( +
+ + +
+ ); +}; diff --git a/src/Layout/index.js b/src/Layout/index.js new file mode 100644 index 000000000..38a82007e --- /dev/null +++ b/src/Layout/index.js @@ -0,0 +1,34 @@ +import React, { useState, useEffect } from "react"; +import { customizableComponent } from "../hoks/customization"; +import { LayoutHeader, Username, DropdownIcon } from "./styles"; +import Avatar from "../Avatar"; +import Popover from "../commonComponents/Popover"; +import Menu, { MenuItem } from "../commonComponents/Menu"; + +const Layout = () => { + const [isOpen, setIsOpen] = useState(false); + const username = "Jackies"; + + return ( + + + {username} + + Log out + + } + > +
setIsOpen(!isOpen)}> + +
+
+
+ ); +}; + +export default customizableComponent("Layout")(Layout); diff --git a/src/Layout/styles.js b/src/Layout/styles.js new file mode 100644 index 000000000..7d8f1b550 --- /dev/null +++ b/src/Layout/styles.js @@ -0,0 +1,24 @@ +import styled from "styled-components"; +import { FontAwesomeIcon as FaIcon } from "@fortawesome/react-fontawesome"; +import { faCaretDown } from "@fortawesome/pro-solid-svg-icons"; + +export const LayoutHeader = styled.div` + display: flex; + justify-content: flex-end; + align-items: center; + background-color: #ffffff; + border-bottom: 1px solid #ebecef; + height: 60px; + ${({ theme }) => theme.typography.body} +`; + +export const Username = styled.div` + margin-right: 6px; + margin-left: 7px; +`; + +export const DropdownIcon = styled(FaIcon).attrs({ icon: faCaretDown })` + color: #292b32; + margin-right: 76px; + cursor: pointer; +`; diff --git a/src/SideMenu/MenuTab.js b/src/SideMenu/MenuTab.js new file mode 100644 index 000000000..e9bfc3c81 --- /dev/null +++ b/src/SideMenu/MenuTab.js @@ -0,0 +1,14 @@ +import React from "react"; +import { customizableComponent } from "../hoks/customization"; +import { MenuTabContainer, MenuName } from "./styles"; + +const MenuTab = ({ icon, name, className, onClick, active }) => { + return ( + + + {name} + + ); +}; + +export default customizableComponent("MenuTab")(MenuTab); diff --git a/src/SideMenu/icons/community.svg b/src/SideMenu/icons/community.svg new file mode 100644 index 000000000..e80295059 --- /dev/null +++ b/src/SideMenu/icons/community.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/SideMenu/index.js b/src/SideMenu/index.js new file mode 100644 index 000000000..301bbf032 --- /dev/null +++ b/src/SideMenu/index.js @@ -0,0 +1,21 @@ +import React from "react"; +import { customizableComponent } from "../hoks/customization"; +import { SideMenuContainer } from "./styles"; +import communityIcon from "./icons/community.svg"; +import MenuTab from "./MenuTab"; + +const SideMenu = () => { + const test = () => alert("test"); + return ( + + + + ); +}; + +export default customizableComponent("SideMenu")(SideMenu); diff --git a/src/SideMenu/styles.js b/src/SideMenu/styles.js new file mode 100644 index 000000000..16618a949 --- /dev/null +++ b/src/SideMenu/styles.js @@ -0,0 +1,38 @@ +import styled from "styled-components"; + +export const SideMenuContainer = styled.div` + display: flex; + flex-direction: column; + height: 100vh; + background-color: #ffffff; + border-right: 1px solid #ebecef; + flex-shrink: 0; + flex-grow: 0; + width: 77px; +`; + +export const MenuName = styled.div` + display: flex; + color: #1054de; + font-size: 10px; + word-break: break-word; + white-space: normal; +`; + +export const MenuTabContainer = styled.div` + flex-direction: column; + display: flex; + align-items: center; + justify-content: center; + background-color: #ffffff; + width: 100%; + height: 64px; + cursor: pointer; + border-bottom: 1px solid #ebecef; + border-left: 1px solid #ebecef; + ${({ active }) => + active && "border-left: 2px solid #1054DE; background-color: #ebecef;"} + ${({ theme }) => theme.typography.captionBold} +`; + +export const CommunityIcon = styled.div``; From 06e65aeb2238fde23fb639f17db80c085b3bc2fe Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 31 Aug 2020 07:24:30 +0700 Subject: [PATCH 047/740] community-creation --- package-lock.json | 11 +- package.json | 3 +- src/Community/Community.stories.js | 19 +- src/Community/NewsFeed.js | 2 +- src/CommunityCreationModal/index.js | 32 +++ src/CommunityCreationModal/styles.js | 10 + src/CommunityForm/CategorySelector.js | 56 +++++ src/CommunityForm/UserSelector.js | 116 +++++++++ src/CommunityForm/index.js | 238 ++++++++++++++----- src/CommunityForm/styles.js | 311 ++++++++++++++++--------- src/CommunityInformation/index.js | 25 +- src/CommunityInformation/styles.js | 39 ++-- src/ExploreHome/index.js | 2 +- src/ExploreHome/styles.js | 1 + src/FeedSideMenu/index.js | 3 +- src/Files/File.js | 4 +- src/UiKitProvider/GlobalStyle.js | 3 - src/UiKitProvider/GlobalTheme.js | 9 + src/UiKitProvider/index.js | 19 +- src/UiKitProvider/styles.js | 10 + src/commonComponents/Popover/styles.js | 2 +- src/hooks/usePostsMock.js | 15 -- src/mock/index.js | 95 +++++++- 23 files changed, 772 insertions(+), 253 deletions(-) create mode 100644 src/CommunityCreationModal/index.js create mode 100644 src/CommunityCreationModal/styles.js create mode 100644 src/CommunityForm/CategorySelector.js create mode 100644 src/CommunityForm/UserSelector.js create mode 100644 src/UiKitProvider/styles.js delete mode 100644 src/hooks/usePostsMock.js diff --git a/package-lock.json b/package-lock.json index 1804267f0..dd9fda4dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2871,6 +2871,11 @@ "prop-types": "^15.7.2" } }, + "@hookform/error-message": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@hookform/error-message/-/error-message-0.0.4.tgz", + "integrity": "sha512-as5acnxkWuF5XrzHhZlzdXUk4zpHNzFLe+uGyaJtSrMbDVTvcNL62ESRK5DTVGPix8shJnt6G2LfrobHBPpvYg==" + }, "@icons/material": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", @@ -16815,9 +16820,9 @@ } }, "react-hook-form": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.5.3.tgz", - "integrity": "sha512-ID0z1udMQueWta3cceQUBaWLqZZLwSNWkxXYcuxa0nbII+mnggmGiEQW7PuWBBkEXv6GdHlu4PNqRj/FoeDpRg==" + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.6.0.tgz", + "integrity": "sha512-5UKx2SBMaWuwy614H730Vv2QmoGdsdYpN96MnWXYzC8cHIUi9N2hYwtI86TEIcBHJ6FvEewh3onfA7P243RM1g==" }, "react-hotkeys": { "version": "2.0.0", diff --git a/package.json b/package.json index 8c89c896a..da0833eed 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "@fortawesome/pro-regular-svg-icons": "^5.13.1", "@fortawesome/pro-solid-svg-icons": "^5.13.1", "@fortawesome/react-fontawesome": "^0.1.11", + "@hookform/error-message": "0.0.4", "eko-sdk": "^1.3.0", "filesize": "^6.1.0", "human-readable-numbers": "^0.9.5", @@ -79,7 +80,7 @@ "pkg": "^4.4.9", "ramda": "^0.27.0", "react-autosize-textarea": "^7.1.0", - "react-hook-form": "^6.5.3", + "react-hook-form": "^6.6.0", "react-infinite-scroller": "^1.2.4", "react-intl": "^4.7.6", "react-linkify": "^1.0.0-alpha", diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index 6bd11e525..f5fff950a 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -9,18 +9,17 @@ import { useRouteMatch, } from 'react-router-dom'; -import UiKitProvider from '../UiKitProvider'; +import { useCommunitiesMock } from '../mock'; import FeedLayout from '../FeedLayout/'; import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; -import Modal from '../commonComponents/Modal'; import UserFeed from './UserFeed'; import NewsFeed from './NewsFeed'; import ExploreHome from '../ExploreHome'; import CategoryPage from '../ExploreHome/CategoryPage'; import CommunityFeed from './index'; -import CommunityForm from '../CommunityForm'; +import CommunityCreationModal from '../CommunityCreationModal'; export default { title: 'Community', @@ -60,15 +59,11 @@ const Pages = () => { if (userOrCommunity.communityId) goToCommunity(userOrCommunity.communityId); }; - const [communityCreation, setCommunityCreation] = useState(true); + const [communityCreation, setCommunityCreation] = useState(false); const openCommunityCreationModal = () => setCommunityCreation(true); const closeCommunityCreationModal = () => setCommunityCreation(false); - const createCommunityModal = communityCreation ? ( - - - - ) : null; + const { addCommunity } = useCommunitiesMock(); return ( { /> - {createCommunityModal} + ); }; diff --git a/src/Community/NewsFeed.js b/src/Community/NewsFeed.js index ef551f5bb..fe4eed7d0 100644 --- a/src/Community/NewsFeed.js +++ b/src/Community/NewsFeed.js @@ -18,7 +18,7 @@ const NewsFeed = ({ client, onPostAuthorClick }) => { <> - + {posts.length === 0 && } {posts.map(post => ( { + if (!isOpen) return null; + + const closeConfirm = () => + confirm({ + title: 'Leave without finishing?', + content: 'Your progress won’t be saved. Are you sure to leave this page now?', + cancelText: 'Continue editing', + okText: 'Leave', + onOk: onClose, + }); + + return ( + + { + onSubmit(data); + onClose(); + }} + /> + + ); +}; + +export default customizableComponent('CommunityCreationModal')(CommunityCreationModal); diff --git a/src/CommunityCreationModal/styles.js b/src/CommunityCreationModal/styles.js new file mode 100644 index 000000000..1db54e351 --- /dev/null +++ b/src/CommunityCreationModal/styles.js @@ -0,0 +1,10 @@ +import styled from 'styled-components'; +import UICommunityForm from '../CommunityForm'; +import { FormBody } from '../CommunityForm/styles'; + +export const CommunityForm = styled(UICommunityForm)` + ${FormBody} { + max-height: 550px; + overflow-y: auto; + } +`; diff --git a/src/CommunityForm/CategorySelector.js b/src/CommunityForm/CategorySelector.js new file mode 100644 index 000000000..4c27842b4 --- /dev/null +++ b/src/CommunityForm/CategorySelector.js @@ -0,0 +1,56 @@ +import React, { useState, useEffect } from 'react'; +import { MenuItem } from '../commonComponents/Menu'; + +import { customizableComponent } from '../hoks/customization'; +import { getCategories, getCategory } from '../mock'; + +import { + Avatar, + Categories, + CategoryItem, + Selector, + SelectorPopover, + SelectorList, + SelectIcon, +} from './styles'; + +const Category = ({ category }) => ( + <> + {category.name} + +); + +const CategorySelector = ({ value: categoryId, onChange }) => { + const [isOpen, setIsOpen] = useState(false); + const open = () => setIsOpen(true); + const close = () => setIsOpen(false); + + const categories = getCategories(); + + const category = getCategory(categoryId); + + const list = ( + + {categories.map(category => ( + { + close(); + onChange(category.id); + }} + > + + + ))} + + ); + + return ( + + + {categoryId && } + + + ); +}; + +export default customizableComponent('CategorySelector')(CategorySelector); diff --git a/src/CommunityForm/UserSelector.js b/src/CommunityForm/UserSelector.js new file mode 100644 index 000000000..0ebf3543a --- /dev/null +++ b/src/CommunityForm/UserSelector.js @@ -0,0 +1,116 @@ +import React, { useState, useEffect, useRef } from 'react'; +import { MenuItem } from '../commonComponents/Menu'; + +import { customizableComponent } from '../hoks/customization'; +import { testUsers } from '../mock'; + +import { + Avatar, + Categories, + UserItem, + Selector, + SelectorList, + SelectIcon, + SelectorPopover, + UserSelectorInput, + Chip, + CloseIcon, +} from './styles'; + +const UserChip = ({ user, onRemove }) => ( + + {user.name} + +); + +const User = ({ user }) => ( + <> + {user.name} + +); + +const useRunOnUpdate = (fn, deps) => { + const isFirstRun = useRef(true); + + useEffect(() => { + if (isFirstRun.current) { + // prevent firing on first render + isFirstRun.current = false; + return; + } + return fn(); + }, deps); +}; + +const UserSelector = ({ value: userIds, onChange }) => { + const inputRef = useRef(null); + const focus = () => inputRef.current.focus(); + + const [query, setQuery] = useState(''); + + const [isOpen, setIsOpen] = useState(false); + const open = () => { + setIsOpen(true); + focus(); + }; + const close = () => setIsOpen(false); + + // open selector list each time query changes + useRunOnUpdate( + () => { + open(); + }, + [query], + ); + + const selectedUsers = userIds.map(id => testUsers.find(({ userId }) => id === userId)); + + const searchResult = query.length + ? testUsers.filter(({ name }) => name.toLowerCase().includes(query.toLowerCase())) + : testUsers; + + // exclude already selected + const selectorUsersList = searchResult.filter(({ userId }) => !userIds.includes(userId)); + + const add = userId => { + onChange([...userIds, userId]); + }; + + const remove = userId => { + onChange(userIds.filter(id => id !== userId)); + }; + + const list = ( + + {selectorUsersList.map(user => ( + { + e.stopPropagation(); + add(user.userId); + }} + > + + + ))} + + ); + + return ( + + + {selectedUsers.map(user => ( + remove(user.userId)} /> + ))} + setQuery(e.target.value)} + /> + + + ); +}; + +export default customizableComponent('UserSelector')(UserSelector); diff --git a/src/CommunityForm/index.js b/src/CommunityForm/index.js index 7ee0376ec..1b693f915 100644 --- a/src/CommunityForm/index.js +++ b/src/CommunityForm/index.js @@ -1,13 +1,18 @@ -import React, { useState, useEffect } from 'react'; -import { useForm } from 'react-hook-form'; +import React from 'react'; +import { useForm, Controller } from 'react-hook-form'; import { customizableComponent } from '../hoks/customization'; import { notification } from '../commonComponents/Notification'; +import Button from '../commonComponents/Button'; -import { testUser } from '../mock'; +import { testUser, getCategories, getCommunities } from '../mock'; + +import CategorySelector from './CategorySelector'; +import UserSelector from './UserSelector'; import { Form, + TextField, InformationBlock, Avatar, AvatarUploadContainer, @@ -20,16 +25,28 @@ import { FormBlockContainer, FormBlockHeader, FormBlockBody, + PermissionControlContainer, + IconWrapper, + LockIcon, + WorldIcon, + CameraIcon, + Radio, + Counter, + Label, + LabelCounterWrapper, + Field, + MembersField, + AvatarWrapper, + ErrorMessage, + FormBody, } from './styles'; -// const maxFilesWarning = () => -// notification.info({ -// content: 'The selected file is larger than 1GB. Please select a new file. ', -// }); - -const AvatarUpload = () => ( +const AvatarUpload = ({ value, onChange }) => ( - + + + + ); @@ -40,58 +57,165 @@ const FormBlock = ({ title, children, edit }) => ( ); -const CommunityForm = ({ user = testUser, community, edit, onSubmit, onSave, className }) => { - const [text, setText] = useState(''); +const PUBLIC = 'public'; +const PRIVATE = 'private'; + +const CommunityForm = ({ + user = testUser, + community, + edit, + onSubmit, + onSave, + className, + onCancel, +}) => { + const { register, handleSubmit, errors, setError, watch, control } = useForm({ + defaultValues: edit + ? community + : { + avatar: + 'https://www.gardeningknowhow.com/wp-content/uploads/2017/07/hardwood-tree-400x266.jpg', + name: '', + description: '', + category: 'cat0', + onlyAdminCanPost: false, + permission: PUBLIC, + members: [], + }, + }); - const { register, handleSubmit, getValues, setValue, errors, watch } = useForm(); // initialize the hook + const name = watch('name'); + const description = watch('description'); + const permission = watch('permission'); + + const communities = getCommunities(); + + const validateNameAndSubmit = async data => { + const communityNames = communities.map(({ name }) => name); + if (communityNames.includes(data.name)) { + setError('name', { message: 'This name has already been taken' }); + return; + } + if (data.permission === PRIVATE && data.members.length === 0) { + setError('members', { message: 'Please select at least one member' }); + return; + } + onSubmit(data); + }; - // const onSubmit = data => { - // console.log(data); - // }; - const values = getValues(); - console.log('values', values); - // const { onlyAdminCanPost } = values; - const onlyAdminCanPost = watch('onlyAdminCanPost', false); return ( <> -
- - {/* avatar */} - - Community name - - {/* 0/30 */} - About - - {/* 0/180 */} - Category -
selector
-
- - -
- Only admin can post - - Choose to allow Only Admins to create posts in this community. - -
- setValue('onlyAdminCanPost', e.target.checked)} - /> -
-
- - Public - Anyone can join, view, and search the posts 
in this page. - PrivateIcon - - Only members invited by the moderators can join, view, and search the posts in this - page.{' '} - - + + + + + + + + {name.length}/30 + + + + + + + + {description.length}/180 + + + + + + + + + + + +
+ + + + Choose to allow Only Admins to create posts in this community. + +
+ } + control={control} + /> +
+
+ + + + + +
+ Public + + Anyone can join, view, and search the posts 
in this page. + +
+ +
+ + + + +
+ Private + + Onply members invited by the moderators can join, view, and search the posts in + this page. + +
+ +
+
+ {permission === PRIVATE && ( + + + + + + + + )} +
- Create + {!edit && ( + + )} + {edit ? 'Save' : 'Create'}
diff --git a/src/CommunityForm/styles.js b/src/CommunityForm/styles.js index ef5eb86a8..67c67e517 100644 --- a/src/CommunityForm/styles.js +++ b/src/CommunityForm/styles.js @@ -1,11 +1,144 @@ +import React from 'react'; import styled from 'styled-components'; import TextareaAutosize from 'react-autosize-textarea'; import ReactToggle from 'react-toggle'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; -import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; +import { ErrorMessage as FormErrorMessage } from '@hookform/error-message'; +import { + faGlobeAfrica, + faLockAlt, + faCamera, + faChevronDown, + faTimes, +} from '@fortawesome/pro-regular-svg-icons'; import { PrimaryButton } from '../commonComponents/Button'; +import Popover from '../commonComponents/Popover'; import UIAvatar from '../Avatar'; +import Menu from '../commonComponents/Menu'; + +const ErrorMessageWrapper = styled.div` + margin-top: 8px; + color: #fa4d30; + ${({ theme }) => theme.typography.caption} +`; + +export const ErrorMessage = props => ; + +export const WorldIcon = styled(FaIcon).attrs({ icon: faGlobeAfrica })` + font-size: 20px; +`; + +export const LockIcon = styled(FaIcon).attrs({ icon: faLockAlt })` + font-size: 20px; +`; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + font-size: 12px; + padding: 5px 12px; + color: #636878; +`; + +export const CameraIcon = styled(FaIcon).attrs({ icon: faCamera })` + font-size: 20px; + color: #fff; + position: absolute; + top: 20px; + left: 22px; +`; + +export const Selector = styled.div` + border: 1px solid #e3e4e8; + &:focus-within { + border: 1px solid #1054de; + } + border-radius: 4px; + min-height: 40px; + display: flex; + flex-wrap: wrap; + align-items: center; + padding: 10px 12px; + cursor: pointer; + max-height: 200px; + overflow-y: auto; +`; + +export const Chip = styled.div` + background: #ebecef; + padding: 4px; + display: flex; + align-items: center; + border-radius: 28px; + margin-right: 4px; + margin-bottom: 4px; +`; + +export const UserSelectorInput = styled.input` + outline: none; + border: none; +`; + +export const SelectorPopover = styled(Popover).attrs({ + disableReposition: true, + position: 'bottom', +})` + width: 488px; +`; + +export const SelectorList = styled(Menu)` + max-height: 184px; + overflow: scroll; +`; + +export const AvatarWrapper = styled.div` + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + position: relative; +`; + +export const IconWrapper = styled.div` + margin-right: 8px; + width: 40px; + height: 40px; + border-radius: 40px; + background: #ebecef; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +`; + +export const Counter = styled.div` + margin-left: auto; + color: #636878; + ${({ theme }) => theme.typography.caption} +`; + +export const Label = styled.label` + ${({ theme }) => theme.typography.bodyBold} + margin-bottom: 4px; + ${({ required }) => + required && + ` + &:after { + color: #fa4d30; + content: ' *'; + } +`} +`; + +export const LabelCounterWrapper = styled.div` + display: flex; + align-items: center; +`; + +export const Radio = styled.input` + width: 20px; + height: 20px; + margin-left: auto; + flex-shrink: 0; +`; export const Form = styled.form` width: 520px; @@ -15,12 +148,33 @@ export const SubmitButton = styled(PrimaryButton).attrs({ type: 'submit', })` padding: 10px 16px; - margin-left: auto; + margin-left: 12px; `; export const Switch = styled(ReactToggle).attrs({ icons: false, -})``; +})` + transform: scale(0.8); + &.react-toggle, + &.react-toggle:hover { + & > .react-toggle-track { + background-color: #a5a9b5; + } + } + &.react-toggle--checked, + &.react-toggle--checked:hover { + & > .react-toggle-track { + background-color: #1054de; + } + } + &.react-toggle > .react-toggle-thumb { + transform: scale(0.9); + border: none !important; + } + .react-toggle-thumb { + box-shadow: none !important; + } +`; export const FormBlockHeader = styled.div` padding: 12px 16px; @@ -32,19 +186,21 @@ export const FormBlockHeader = styled.div` export const FormBlockContainer = styled.div` background: #fff; - border-bottom: 1px solid #ebecef; ${({ edit }) => - edit && - ` + edit + ? ` margin-top: 12px; border: 1px solid #EDEEF2; -border-radius: 4px; + border-radius: 4px; +` + : ` + :not(:last-child) { + border-bottom: 1px solid #ebecef; + } `} `; export const FormBlockBody = styled.div` - display: flex; - flex-direction: column; ${({ edit }) => (edit ? `padding: 0 16px 20px;` : `padding: 20px 16px 16px;`)} `; @@ -54,8 +210,19 @@ export const SwitchContainer = styled.div` justify-content: space-between; `; +export const PermissionControlContainer = styled.div` + display: flex; + align-items: center; + justify-content: space-between; + :not(:last-child) { + margin-bottom: 16px; + } + ${({ theme }) => theme.typography.bodyBold} +`; + export const Description = styled.div` color: #636878; + ${({ theme }) => theme.typography.body} `; export const InformationBlock = styled.div` @@ -71,7 +238,10 @@ export const CommunityPermissionBlock = styled.div` `; export const Footer = styled.div` + border-top: 1px solid #ebecef; padding: 12px 16px; + display: flex; + justify-content: flex-end; `; export const Avatar = styled(UIAvatar)` @@ -82,10 +252,9 @@ export const AvatarUploadContainer = styled.div` display: flex; align-items: center; justify-content: center; - padding-bottom: 20px; `; -export const AboutTextarea = styled(TextareaAutosize).attrs({ rows: 1, maxRows: 15 })` +export const AboutTextarea = styled(TextareaAutosize).attrs({ rows: 3, maxRows: 15 })` display: block; outline: none; border-radius: 4px; @@ -93,111 +262,41 @@ export const AboutTextarea = styled(TextareaAutosize).attrs({ rows: 1, maxRows: border: 1px solid #e3e4e8; padding: 10px 12px; &:focus-within { - border: 1px solid #1054de; + border-color: #1054de; } `; -// TODO add icon button -export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` - font-size: 18px; - cursor: pointer; - margin-right: 20px; - color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; -`; - -export const SelectIcon = styled(FaIcon).attrs({ icon: faSortDown })` - font-size: 18px; - margin-right: 8px; - margin-top: -4px; -`; - -export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` - font-size: 18px; - margin-right: 12px; - cursor: pointer; - color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; -`; - -const postComposeEditStyle = ` - width: 520px; - padding: 0; - border: none; -`; - -const postComposeStyle = ` - padding: 16px 20px 12px 16px; - border: 1px solid #edeef2; -`; - -export const PostComposeContainer = styled.div` - ${({ edit }) => (edit ? postComposeEditStyle : postComposeStyle)} - display: flex; - background: #ffffff; +export const TextField = styled.input` border-radius: 4px; + border: 1px solid #e3e4e8; + padding: 10px 12px; + outline: none; + &:focus-within { + border-color: #1054de; + } `; -// const postComposeTextareaWrapperEditStyle = ` -// border: none; -// padding: 20px 16px; -// `; - -// const postComposeTextareaWrapperStyle = ` -// border: 1px solid #e3e4e8; -// padding: 10px 12px; -// &:focus-within { -// border: 1px solid #1054de; -// } -// `; - -export const PostComposeTextareaWrapper = styled.div` - ${({ edit }) => (edit ? postComposeTextareaWrapperEditStyle : postComposeTextareaWrapperStyle)} - display: flex; - flex-direction: column; - flex-grow: 1; - border-radius: 4px; - min-height: 40px; -`; - -export const FooterActionBar = styled.div` - display: flex; - align-items: center; -`; - -export const PostContainer = styled.div` - flex-grow: 1; +export const SelectIcon = styled(FaIcon).attrs({ icon: faChevronDown })` + font-size: 16px; + margin-left: auto; `; -export const PostAsCommunityContainer = styled.div` +export const Field = styled.div` + margin-top: 20px; display: flex; - border-radius: 4px; - background: #ebecef; - padding: 10px; - margin-bottom: 12px; - ${({ theme }) => theme.typography.captionBold} -`; + flex-direction: column; + ${({ error }) => + error && + ` +${AboutTextarea}, ${TextField} { + border-color: #FA4D30; +} -export const Checkbox = styled.input.attrs({ - type: 'checkbox', -})` - margin-right: 10px; - width: 18px; - height: 18px; + `} `; -export const Caption = styled.div` - ${({ theme }) => theme.typography.caption} - color: #636878; +export const MembersField = styled(Field)` + margin-top: 0; `; -export const AuthorSelectorContainer = styled.div` - display: flex; - align-items: center; - cursor: pointer; -`; - -export const CommunitySeparator = styled.div` - ${({ theme }) => theme.typography.caption} - border-top: 1px solid #e3e4e8; - color: #636878; - padding: 12px; -`; +export const FormBody = styled.div``; diff --git a/src/CommunityInformation/index.js b/src/CommunityInformation/index.js index 9c38acf19..deb921d5d 100644 --- a/src/CommunityInformation/index.js +++ b/src/CommunityInformation/index.js @@ -1,20 +1,24 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import Options from '../commonComponents/Options'; -import { Avatar, Container, CommunityName, Header, Footer, Content, RightIcon } from './styles'; +import { confirm } from '../commonComponents/Confirm'; +import { useCommunitiesMock } from '../mock'; -const testCommunity = { - isPrivate: true, - name: 'Harry Poter Fans', - postsCount: 345, - membersCount: 4501, -}; +import { Avatar, Container, CommunityName, Header, Options, Category } from './styles'; -const CommunityInformation = ({ community = testCommunity, onChannelClick, selectedChannelId }) => { +const CommunityInformation = ({ community, onChannelClick }) => { const { isPrivate, name, postsCount, membersCount } = community; const todo = () => console.log('TODO'); + const { leaveCommunity } = useCommunitiesMock(); + + const leaveConfirm = () => + confirm({ + title: 'Leave community?', + content: 'You won’t no longer be able to post and interact in this community after leaving.', + okText: 'Leave', + onOk: () => leaveCommunity(community.communityId), + }); return ( @@ -23,11 +27,12 @@ const CommunityInformation = ({ community = testCommunity, onChannelClick, selec
{name} + Category
); }; diff --git a/src/CommunityInformation/styles.js b/src/CommunityInformation/styles.js index 8f6b06227..2cb3c44e0 100644 --- a/src/CommunityInformation/styles.js +++ b/src/CommunityInformation/styles.js @@ -1,56 +1,49 @@ import React from 'react'; import styled from 'styled-components'; import { SecondaryButton } from '../commonComponents/Button'; -import UiAvatar from '../Avatar'; +import UIAvatar from '../Avatar'; +import UIOptions from '../commonComponents/Options'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faChevronRight } from '@fortawesome/pro-regular-svg-icons'; -import UiSideMenuItem from '../commonComponents/SideMenuItem'; - export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` font-size: 16px; `; +export const Options = styled(UIOptions)` + margin-left: auto; +`; + export const Container = styled.div` border: 1px solid #edeef2; border-radius: 4px; background: #fff; - max-width: 330px; - flex-shrink: 1; + width: 330px; + flex-shrink: 0; align-self: flex-start; padding: 16px; `; -// export const Content = styled.div` -// border-top: 1px solid #e3e4e8; -// border-bottom: 1px solid #e3e4e8; -// overflow-y: auto; -// padding: 16px; -// `; - export const Header = styled.div` display: flex; align-items: flex-start; - // ${({ theme }) => theme.typography.title} - // padding: 16px; `; -// export const Footer = styled(SecondaryButton)` -// width: 100%; -// padding: 14px; -// border-radius: 0; -// `; - -export const Avatar = styled(UiAvatar).attrs({ +export const Avatar = styled(UIAvatar).attrs({ size: 'big', })` margin-right: 12px; `; -export const CommunityName = styled.span` - ${({ theme }) => theme.typography.headline} +export const CommunityName = styled.div` margin-top: 10px; + ${({ theme }) => theme.typography.headline} +`; + +export const Category = styled.div` + margin-bottom: 16px; + color: #636878; `; export const Count = styled.span` diff --git a/src/ExploreHome/index.js b/src/ExploreHome/index.js index 3b9c2c115..1fcae4472 100644 --- a/src/ExploreHome/index.js +++ b/src/ExploreHome/index.js @@ -78,7 +78,7 @@ const ExploreHome = ({ Today's Trending - {communities.map(community => ( + {communities.slice(0, 6).map(community => ( onTrendingCommunityClick(community)} community={community} diff --git a/src/ExploreHome/styles.js b/src/ExploreHome/styles.js index bc06d1d61..5e59a1077 100644 --- a/src/ExploreHome/styles.js +++ b/src/ExploreHome/styles.js @@ -183,6 +183,7 @@ export const TrendingCommunities = styled.div` export const CommunityInfo = styled.div` display: flex; flex-direction: column; + flex-grow: 1; justify-content: space-between; padding-bottom: 12px; cursor: pointer; diff --git a/src/FeedSideMenu/index.js b/src/FeedSideMenu/index.js index cf938e198..3272d8d83 100644 --- a/src/FeedSideMenu/index.js +++ b/src/FeedSideMenu/index.js @@ -1,5 +1,4 @@ -import React, { useState, useEffect } from 'react'; -import { ChannelRepository } from 'eko-sdk'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; import useLiveObject from '../hooks/useLiveObject'; diff --git a/src/Files/File.js b/src/Files/File.js index a8e217d98..f8a36b422 100644 --- a/src/Files/File.js +++ b/src/Files/File.js @@ -8,10 +8,10 @@ import { FileContainer, Content, FileName, FileSize, ProgressBar, RemoveIcon } f const File = ({ editing, file, onRemove }) => { // simulate progress animation - const [progress, setProgress] = useState(editing ? 0 : 100); + const [progress, setProgress] = useState(0); useEffect( () => { - if (progress >= 100) return; + if (!editing || progress >= 100) return; const timeout = setTimeout(() => { setProgress(progress + 0.5); }, 50); diff --git a/src/UiKitProvider/GlobalStyle.js b/src/UiKitProvider/GlobalStyle.js index 2df1c876e..d8d4e1162 100644 --- a/src/UiKitProvider/GlobalStyle.js +++ b/src/UiKitProvider/GlobalStyle.js @@ -6,9 +6,6 @@ const GlobalStyle = createGlobalStyle` body { font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; } -input, div { - box-sizing: border-box; -} `; export default GlobalStyle; diff --git a/src/UiKitProvider/GlobalTheme.js b/src/UiKitProvider/GlobalTheme.js index 6aa2b4fa5..54abc7b5e 100644 --- a/src/UiKitProvider/GlobalTheme.js +++ b/src/UiKitProvider/GlobalTheme.js @@ -1,3 +1,12 @@ +const primary = '#1054DE'; +const primary2 = '#A0BDF8'; +const primary4 = '#F1F5FE'; +const alert = '#FA4D30'; +const base = '#292B32'; +const base1 = '#636878'; +const base3 = '#A5A9B5'; +const base4 = '#EBECEF'; + const Theme = { color: { primary1: '#1054DE', diff --git a/src/UiKitProvider/index.js b/src/UiKitProvider/index.js index 3b078126e..f9b9f67b0 100644 --- a/src/UiKitProvider/index.js +++ b/src/UiKitProvider/index.js @@ -7,6 +7,7 @@ import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/custo import { SDKProvider } from '../hoks/withSDK'; import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; +import { UIStyles } from './styles'; import GlobalTheme from './GlobalTheme'; import MockData from '../mock/'; import { ConfirmContainer } from '../commonComponents/Confirm'; @@ -58,14 +59,16 @@ const UiKitProvider = ({ return ( - - - - {children} - - - - + + + + + {children} + + + + + ); diff --git a/src/UiKitProvider/styles.js b/src/UiKitProvider/styles.js new file mode 100644 index 000000000..889cdb629 --- /dev/null +++ b/src/UiKitProvider/styles.js @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +export const UIStyles = styled.div` + ${({ theme }) => theme.typography.body} + color: #292B32; + input, + div { + box-sizing: border-box; + } +`; diff --git a/src/commonComponents/Popover/styles.js b/src/commonComponents/Popover/styles.js index f00b3f8a5..4ad066c66 100644 --- a/src/commonComponents/Popover/styles.js +++ b/src/commonComponents/Popover/styles.js @@ -5,7 +5,7 @@ import ReactTinyPopover from 'react-tiny-popover'; const ReactPopover = props => ; export const Popover = styled(ReactPopover)` - z-index: 1; + z-index: 10000; background: white; min-width: 200px; padding: 4px 0; diff --git a/src/hooks/usePostsMock.js b/src/hooks/usePostsMock.js deleted file mode 100644 index c8eb6bfdd..000000000 --- a/src/hooks/usePostsMock.js +++ /dev/null @@ -1,15 +0,0 @@ -import { useState } from 'react'; - -const usePostsMock = (initialPosts = []) => { - const [posts, setPosts] = useState(initialPosts); - - const addPost = newPost => setPosts([newPost, ...posts]); - const removePost = postId => setPosts(posts.filter(({ id }) => id !== postId)); - - const editPost = updatedPost => - setPosts(posts.map(post => (post.id === updatedPost.id ? updatedPost : post))); - - return { posts, addPost, removePost, editPost }; -}; - -export default usePostsMock; diff --git a/src/mock/index.js b/src/mock/index.js index 51ae71dc4..a00cd0de5 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -3,12 +3,34 @@ import { RecoilRoot, atom, selector, useRecoilState, useRecoilValue } from 'reco export const testUser = { userId: 'u1', - name: 'Donald Trump', + name: 'Lalisa Manoban', avatar: - 'https://www.thenation.com/wp-content/uploads/2020/08/donald-trump-spacex-speech-gty-img.jpg', + 'https://cdn1.i-scmp.com/sites/default/files/styles/768x768/public/images/methode/2018/07/26/bf01d32e-8fcd-11e8-ad1d-4615aa6bc452_1280x720_204951.jpg?itok=lSmaQVob', }; -export const testMembers = [testUser, testUser, testUser, testUser]; +export const testUsers = [ + testUser, + { + userId: 'u2', + name: 'Jennie Kim', + avatar: + 'https://upload.wikimedia.org/wikipedia/commons/9/99/Jennie_Kim_for_Marie_Claire_Korea_Magazine_on_October_9%2C_2018_%285%29.png', + }, + { + userId: 'u3', + name: 'Rosé', + avatar: + 'https://img1.nickiswift.com/img/gallery/this-is-how-much-blackpinks-rose-is-actually-worth/intro-1579709224.jpg', + }, + { + userId: 'u4', + name: 'Jisoo', + avatar: + 'https://www.allkpop.com/upload/2020/08/content/280446/1598604401-img-20200828-155652.jpg', + }, +]; + +export const testMembers = testUsers; export const testModerators = [testUser, testUser]; @@ -71,10 +93,9 @@ const communities = [ }, { communityId: 'c2', - name: 'BLACKPINK TH', - verified: true, - avatar: 'https://i.pinimg.com/originals/2c/69/c5/2c69c5959858e4119322698da738bb44.jpg', - postsCount: 123, + name: 'BTS & ARMY', + avatar: 'https://pbs.twimg.com/profile_images/1219274759034363905/BfWdIBVk.jpg', + postsCount: 532, description, }, { @@ -87,9 +108,10 @@ const communities = [ }, { communityId: 'c4', - name: 'BTS & ARMY', - avatar: 'https://pbs.twimg.com/profile_images/1219274759034363905/BfWdIBVk.jpg', - postsCount: 532, + name: 'BLACKPINK TH', + verified: true, + avatar: 'https://i.pinimg.com/originals/2c/69/c5/2c69c5959858e4119322698da738bb44.jpg', + postsCount: 123, description, }, { @@ -113,6 +135,12 @@ const communities = [ ]; const categories = [ + { + id: 'cat0', + name: 'General', + avatar: + 'https://thumbs.dreamstime.com/b/cartoon-illustration-army-general-cartoon-army-general-119601558.jpg', + }, { id: 'cat1', name: 'Travel', @@ -333,6 +361,8 @@ const myCommunityIdsAtom = atom({ }); export const getCommunities = () => useRecoilValue(communitiesAtom); +export const getCommunity = communityId => + getCommunities().find(community => community.communityId === communityId); export const getCategories = () => useRecoilValue(categoriesAtom); @@ -382,4 +412,49 @@ export const usePostsMock = targetId => { return { posts: postsFeed, addPost, removePost, editPost }; }; +export const useCommunitiesMock = () => { + const [communities, setCommunities] = useRecoilState(communitiesAtom); + const [myCommunities, setMyCommunities] = useRecoilState(myCommunityIdsAtom); + + const joinCommunity = id => setMyCommunities([id, ...myCommunities]); + + const leaveCommunity = id => + setMyCommunities(myCommunities.filter(communityId => communityId !== id)); + + const addCommunity = newCommunity => { + const communityId = `c${Date.now()}`; + setCommunities([ + { + communityId, + postsCount: 2357, + description, + ...newCommunity, + }, + ...communities, + ]); + joinCommunity(communityId); + }; + + const removeCommunity = communityId => + setCommunities(communities.filter(community => community.communityId !== communityId)); + + const editCommunity = updatedCommunity => + setCommunities( + communities.map(community => + community.communityId === updatedCommunity.communityId ? updatedCommunity : community, + ), + ); + + const communitiesFeed = getCommunities(); + + return { + communities, + joinCommunity, + leaveCommunity, + addCommunity, + removeCommunity, + editCommunity, + }; +}; + export default RecoilRoot; From 746a4cc566784378fc99f7fec3e20410ee395938 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 31 Aug 2020 09:49:50 +0700 Subject: [PATCH 048/740] theme colors --- src/Comment/styles.js | 10 ++-- src/Community/Community.stories.js | 8 +++ src/Community/index.js | 4 +- src/Community/styles.js | 2 +- src/CommunityForm/styles.js | 32 ++++++------ src/CommunityInformation/index.js | 40 ++++++++++++--- src/CommunityInformation/styles.js | 20 ++++++-- src/EmptyFeed/styles.js | 2 +- src/EngagementBar/index.js | 4 +- src/ExploreHome/styles.js | 16 +++--- src/Files/styles.js | 8 +-- src/Images/styles.js | 2 +- src/Message/styles.js | 2 +- src/Post/styles.js | 2 +- src/PostCompose/styles.js | 14 +++--- src/UiKitProvider/GlobalTheme.js | 54 ++++++++++----------- src/UiKitProvider/styles.js | 2 +- src/commonComponents/Button/styles.js | 4 +- src/commonComponents/Confirm/styles.js | 4 +- src/commonComponents/Linkify/styles.js | 2 +- src/commonComponents/Modal/styles.js | 4 +- src/commonComponents/Notification/styles.js | 2 +- src/commonComponents/SideMenuItem/styles.js | 8 +-- src/commonComponents/Tab/styles.js | 4 +- src/mock/index.js | 4 +- 25 files changed, 149 insertions(+), 105 deletions(-) diff --git a/src/Comment/styles.js b/src/Comment/styles.js index 3add94423..b3494b364 100644 --- a/src/Comment/styles.js +++ b/src/Comment/styles.js @@ -37,7 +37,7 @@ export const CommentContainer = styled.div` background-position: 0 20px; background-repeat: no-repeat; background-image: url('data:image/svg+xml;utf8, - + '); } `; @@ -49,13 +49,13 @@ export const ReplyContainer = styled.div` &:last-child { background-repeat: no-repeat; background-image: url('data:image/svg+xml;utf8, - + '); } :not(:last-child) { background-repeat: repeat-y; background-image: url('data:image/svg+xml;utf8, - + '); } `; @@ -65,7 +65,7 @@ export const CommentComposeBar = styled(UICommentComposeBar)` padding: 8px 0 16px; background-repeat: no-repeat; background-image: url('data:image/svg+xml;utf8, - + '); `; @@ -101,7 +101,7 @@ export const CommentDate = styled(Time)` `; export const ReadMoreButton = styled(SecondaryButton)` - color: #1054de; + color: ${({ theme }) => theme.color.primary}; padding: 4px; `; diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index f5fff950a..6385e6548 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -59,6 +59,10 @@ const Pages = () => { if (userOrCommunity.communityId) goToCommunity(userOrCommunity.communityId); }; + const onEditCommunityClick = communityId => { + history.push(`/community/${communityId}/edit`); + }; + const [communityCreation, setCommunityCreation] = useState(false); const openCommunityCreationModal = () => setCommunityCreation(true); const closeCommunityCreationModal = () => setCommunityCreation(false); @@ -100,8 +104,12 @@ const Pages = () => { onHeaderBackButtonClick={goToExplore} /> + + TODO: Edit community(reuse CommunityForm with edit param) + { +const CommunityFeed = ({ communityId, onPostAuthorClick, onMemberClick, onEditCommunityClick }) => { const communities = getCommunities(); const community = communities.find(community => community.communityId === communityId); @@ -69,7 +69,7 @@ const CommunityFeed = ({ communityId, onPostAuthorClick, onMemberClick }) => { /> )}
- +
); }; diff --git a/src/Community/styles.js b/src/Community/styles.js index a36f7b7c4..3913e9562 100644 --- a/src/Community/styles.js +++ b/src/Community/styles.js @@ -73,5 +73,5 @@ export const MemberName = styled.div` export const Caption = styled.div` ${({ theme }) => theme.typography.caption} - color: #636878; + color: ${({ theme }) => theme.color.base1}; `; diff --git a/src/CommunityForm/styles.js b/src/CommunityForm/styles.js index 67c67e517..e876e0513 100644 --- a/src/CommunityForm/styles.js +++ b/src/CommunityForm/styles.js @@ -18,7 +18,7 @@ import Menu from '../commonComponents/Menu'; const ErrorMessageWrapper = styled.div` margin-top: 8px; - color: #fa4d30; + color: ${({ theme }) => theme.color.alert}; ${({ theme }) => theme.typography.caption} `; @@ -35,7 +35,7 @@ export const LockIcon = styled(FaIcon).attrs({ icon: faLockAlt })` export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` font-size: 12px; padding: 5px 12px; - color: #636878; + color: ${({ theme }) => theme.color.base1}; `; export const CameraIcon = styled(FaIcon).attrs({ icon: faCamera })` @@ -49,7 +49,7 @@ export const CameraIcon = styled(FaIcon).attrs({ icon: faCamera })` export const Selector = styled.div` border: 1px solid #e3e4e8; &:focus-within { - border: 1px solid #1054de; + border: 1px solid ${({ theme }) => theme.color.primary}; } border-radius: 4px; min-height: 40px; @@ -63,7 +63,7 @@ export const Selector = styled.div` `; export const Chip = styled.div` - background: #ebecef; + background:${({ theme }) => theme.color.base4}; padding: 4px; display: flex; align-items: center; @@ -102,7 +102,7 @@ export const IconWrapper = styled.div` width: 40px; height: 40px; border-radius: 40px; - background: #ebecef; + background:${({ theme }) => theme.color.base4}; display: flex; align-items: center; justify-content: center; @@ -111,7 +111,7 @@ export const IconWrapper = styled.div` export const Counter = styled.div` margin-left: auto; - color: #636878; + color: ${({ theme }) => theme.color.base1}; ${({ theme }) => theme.typography.caption} `; @@ -122,7 +122,7 @@ export const Label = styled.label` required && ` &:after { - color: #fa4d30; + color: ${({ theme }) => theme.color.alert}; content: ' *'; } `} @@ -158,13 +158,13 @@ export const Switch = styled(ReactToggle).attrs({ &.react-toggle, &.react-toggle:hover { & > .react-toggle-track { - background-color: #a5a9b5; + background-color: ${({ theme }) => theme.color.base3}; } } &.react-toggle--checked, &.react-toggle--checked:hover { & > .react-toggle-track { - background-color: #1054de; + background-color: ${({ theme }) => theme.color.primary}; } } &.react-toggle > .react-toggle-thumb { @@ -181,7 +181,7 @@ export const FormBlockHeader = styled.div` ${({ theme }) => theme.typography.title} display: flex; align-items: center; - border-bottom: 1px solid #ebecef; + border-bottom: 1px solid${({ theme }) => theme.color.base4}; `; export const FormBlockContainer = styled.div` @@ -195,7 +195,7 @@ export const FormBlockContainer = styled.div` ` : ` :not(:last-child) { - border-bottom: 1px solid #ebecef; + border-bottom: 1px solid${({ theme }) => theme.color.base4}; } `} `; @@ -221,7 +221,7 @@ export const PermissionControlContainer = styled.div` `; export const Description = styled.div` - color: #636878; + color: ${({ theme }) => theme.color.base1}; ${({ theme }) => theme.typography.body} `; @@ -238,7 +238,7 @@ export const CommunityPermissionBlock = styled.div` `; export const Footer = styled.div` - border-top: 1px solid #ebecef; + border-top: 1px solid${({ theme }) => theme.color.base4}; padding: 12px 16px; display: flex; justify-content: flex-end; @@ -262,7 +262,7 @@ export const AboutTextarea = styled(TextareaAutosize).attrs({ rows: 3, maxRows: border: 1px solid #e3e4e8; padding: 10px 12px; &:focus-within { - border-color: #1054de; + border-color: ${({ theme }) => theme.color.primary}; } `; @@ -272,7 +272,7 @@ export const TextField = styled.input` padding: 10px 12px; outline: none; &:focus-within { - border-color: #1054de; + border-color: ${({ theme }) => theme.color.primary}; } `; @@ -289,7 +289,7 @@ export const Field = styled.div` error && ` ${AboutTextarea}, ${TextField} { - border-color: #FA4D30; + border-color: ${({ theme }) => theme.color.alert}; } `} diff --git a/src/CommunityInformation/index.js b/src/CommunityInformation/index.js index deb921d5d..31e709534 100644 --- a/src/CommunityInformation/index.js +++ b/src/CommunityInformation/index.js @@ -1,16 +1,28 @@ import React, { useState, useEffect } from 'react'; +import { toHumanString } from 'human-readable-numbers'; +import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; import { confirm } from '../commonComponents/Confirm'; -import { useCommunitiesMock } from '../mock'; +import { useCommunitiesMock, getMyCommunityIds } from '../mock'; -import { Avatar, Container, CommunityName, Header, Options, Category } from './styles'; +import { + Count, + Avatar, + Container, + CommunityName, + Header, + Options, + Category, + Description, + JoinButton, + PlusIcon, +} from './styles'; -const CommunityInformation = ({ community, onChannelClick }) => { +const CommunityInformation = ({ community, onEditCommunityClick }) => { const { isPrivate, name, postsCount, membersCount } = community; - const todo = () => console.log('TODO'); - const { leaveCommunity } = useCommunitiesMock(); + const { joinCommunity, leaveCommunity } = useCommunitiesMock(); const leaveConfirm = () => confirm({ @@ -20,19 +32,35 @@ const CommunityInformation = ({ community, onChannelClick }) => { onOk: () => leaveCommunity(community.communityId), }); + const myCommunityIds = getMyCommunityIds(); + + const isMine = myCommunityIds.includes(community.communityId); + return (
onEditCommunityClick(community.communityId) }, { name: 'Leave Community', action: leaveConfirm }, ]} />
{name} Category +
+ {toHumanString(community.postsCount)} posts + {toHumanString(community.postsCount)} members +
+ + {community.description} + + {!isMine && ( + joinCommunity(community.communityId)}> + Join + + )}
); }; diff --git a/src/CommunityInformation/styles.js b/src/CommunityInformation/styles.js index 2cb3c44e0..9fa81bdf7 100644 --- a/src/CommunityInformation/styles.js +++ b/src/CommunityInformation/styles.js @@ -1,16 +1,21 @@ import React from 'react'; import styled from 'styled-components'; -import { SecondaryButton } from '../commonComponents/Button'; +import { SecondaryButton, PrimaryButton } from '../commonComponents/Button'; import UIAvatar from '../Avatar'; import UIOptions from '../commonComponents/Options'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faChevronRight } from '@fortawesome/pro-regular-svg-icons'; +import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` font-size: 16px; `; +export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` + font-size: 15px; + margin-right: 8px; +`; + export const Options = styled(UIOptions)` margin-left: auto; `; @@ -43,13 +48,18 @@ export const CommunityName = styled.div` export const Category = styled.div` margin-bottom: 16px; - color: #636878; + color: ${({ theme }) => theme.color.base1}; `; export const Count = styled.span` ${({ theme }) => theme.typography.bodyBold} `; -export const Buttons = styled.div` - margin-left: auto; +export const Description = styled.div` + margin: 8px 0 12px; +`; + +export const JoinButton = styled(PrimaryButton)` + width: 100%; + justify-content: center; `; diff --git a/src/EmptyFeed/styles.js b/src/EmptyFeed/styles.js index 2fc8a0579..f5a44affd 100644 --- a/src/EmptyFeed/styles.js +++ b/src/EmptyFeed/styles.js @@ -10,7 +10,7 @@ export const FeedIcon = styled(FaIcon).attrs({ icon: faNewspaper })` `; export const EmptyFeedContainer = styled.div` - color: #a5a9b5; + color: ${({ theme }) => theme.color.base3}; ${({ theme }) => theme.typography.bodyBold} width: 560px; padding-top: 90px; diff --git a/src/EngagementBar/index.js b/src/EngagementBar/index.js index 93b243d2a..fafc671e0 100644 --- a/src/EngagementBar/index.js +++ b/src/EngagementBar/index.js @@ -49,8 +49,8 @@ const EngagementBar = ({ post, onPostEdit }) => { return ( - {toHumanString(totalLikes)} likes - {toHumanString(comments.length)} comments + {!!totalLikes && {toHumanString(totalLikes)} likes} + {!!comments.length && {toHumanString(comments.length)} comments} diff --git a/src/ExploreHome/styles.js b/src/ExploreHome/styles.js index 5e59a1077..d7ad9ee56 100644 --- a/src/ExploreHome/styles.js +++ b/src/ExploreHome/styles.js @@ -41,7 +41,7 @@ export const ExploreHeaderContainer = styled.div` flex-direction: column; align-items: center; padding: 35px 10px 30px; - background: #1054de; + background: ${({ theme }) => theme.color.primary}; color: #fff; ${({ theme }) => theme.typography.title} `; @@ -118,13 +118,13 @@ export const Blocks = styled.div` export const Block = styled.div` margin-top: 20px; background: #fff; - border: 1px solid #ebecef; + border: 1px solid${({ theme }) => theme.color.base4}; border-radius: 4px; `; export const BlockHeader = styled.div` padding: 16px 16px 12px; - border-bottom: 1px solid #ebecef; + border-bottom: 1px solid${({ theme }) => theme.color.base4}; ${({ theme }) => theme.typography.title} `; @@ -132,11 +132,11 @@ export const CommunityItem = styled.div` display: flex; flex-direction: column; justify-content: space-between; - border: 1px solid #ebecef; + border: 1px solid${({ theme }) => theme.color.base4}; border-radius: 4px; padding: 16px; overflow: hidden; - color: #292b32; + color: ${({ theme }) => theme.color.base}; height: 180px; ${({ theme }) => theme.typography.caption} `; @@ -187,7 +187,7 @@ export const CommunityInfo = styled.div` justify-content: space-between; padding-bottom: 12px; cursor: pointer; - border-bottom: 1px solid #ebecef; + border-bottom: 1px solid${({ theme }) => theme.color.base4}; `; export const TrendingCommunityContainer = styled.div` @@ -203,7 +203,7 @@ export const TrendingCommunityContainer = styled.div` `; export const TrendingFooter = styled.div` - color: #636878; + color: ${({ theme }) => theme.color.base1}; margin-top: 5px; `; @@ -216,7 +216,7 @@ export const BackButton = styled(SecondaryButton)` `; export const ViewAllButton = styled(SecondaryButton)` - border-top: 1px solid #ebecef; + border-top: 1px solid${({ theme }) => theme.color.base4}; padding: 18px; width: 100%; border-radius: 0; diff --git a/src/Files/styles.js b/src/Files/styles.js index c90e0c402..e2cf6f56d 100644 --- a/src/Files/styles.js +++ b/src/Files/styles.js @@ -17,7 +17,7 @@ export const FilesContainer = styled.div` export const FileContainer = styled.div` position: relative; - border: 1px solid #ebecef; + border: 1px solid${({ theme }) => theme.color.base4}; padding: 8px; border-radius: 4px; :not(:first-child) { @@ -33,7 +33,7 @@ export const Content = styled.div` `; export const ProgressBar = styled.div` - background: #ebecef; + background:${({ theme }) => theme.color.base4}; width: ${({ progress }) => progress}%; position: absolute; left: 0; @@ -43,7 +43,7 @@ export const ProgressBar = styled.div` export const FileSize = styled.div` ${({ theme }) => theme.typography.caption} - color: #636878; + color: ${({ theme }) => theme.color.base1}; `; export const FileName = styled.div` @@ -55,7 +55,7 @@ export const FileName = styled.div` export const ViewAllFilesButton = styled(SecondaryButton)` ${({ theme }) => theme.typography.body} display: block; - color: #1054de; + color: ${({ theme }) => theme.color.primary}; margin-top: 4px; padding: 12px 0; diff --git a/src/Images/styles.js b/src/Images/styles.js index 077e7dafb..9a43cdddd 100644 --- a/src/Images/styles.js +++ b/src/Images/styles.js @@ -84,7 +84,7 @@ export const ImagesContainer = styled.div` `; export const ProgressBar = styled.div` - background: #ebecef; + background:${({ theme }) => theme.color.base4}; width: ${({ progress }) => 100 - progress}%; position: absolute; right: 0; diff --git a/src/Message/styles.js b/src/Message/styles.js index 99b519512..f3e338454 100644 --- a/src/Message/styles.js +++ b/src/Message/styles.js @@ -87,7 +87,7 @@ export const MessageBody = styled.div` border-radius: 0px 6px 6px 6px; ` : ` - background: #1054DE; + background: ${({ theme }) => theme.color.primary}; color: #fff; border-radius: 6px 0px 6px 6px; `} diff --git a/src/Post/styles.js b/src/Post/styles.js index 4abfd3046..4f2783691 100644 --- a/src/Post/styles.js +++ b/src/Post/styles.js @@ -41,6 +41,6 @@ export const AuthorName = styled.div` `; export const ReadMoreButton = styled(SecondaryButton)` - color: #1054de; + color: ${({ theme }) => theme.color.primary}; padding: 4px; `; diff --git a/src/PostCompose/styles.js b/src/PostCompose/styles.js index 8ed9ae66d..04b71f654 100644 --- a/src/PostCompose/styles.js +++ b/src/PostCompose/styles.js @@ -11,7 +11,7 @@ export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` font-size: 18px; cursor: pointer; margin-right: 20px; - color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; + color: ${({ disabled }) => (disabled ? '${({ theme }) => theme.color.base3}' : '#17181c')}; `; export const SelectIcon = styled(FaIcon).attrs({ icon: faSortDown })` @@ -24,7 +24,7 @@ export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` font-size: 18px; margin-right: 12px; cursor: pointer; - color: ${({ disabled }) => (disabled ? '#A5A9B5' : '#17181c')}; + color: ${({ disabled }) => (disabled ? '${({ theme }) => theme.color.base3}' : '#17181c')}; `; const postComposeEditStyle = ` @@ -62,7 +62,7 @@ const postComposeTextareaWrapperStyle = ` border: 1px solid #e3e4e8; padding: 10px 12px; &:focus-within { - border: 1px solid #1054de; + border: 1px solid ${({ theme }) => theme.color.primary}; } `; @@ -76,7 +76,7 @@ export const PostComposeTextareaWrapper = styled.div` `; const footerEditStyle = ` - border-top: 1px solid #EBECEF; + border-top: 1px solid${({ theme }) => theme.color.base4}; padding: 12px 16px; `; @@ -109,7 +109,7 @@ export const Avatar = styled(UIAvatar)` export const PostAsCommunityContainer = styled.div` display: flex; border-radius: 4px; - background: #ebecef; + background:${({ theme }) => theme.color.base4}; padding: 10px; margin-bottom: 12px; ${({ theme }) => theme.typography.captionBold} @@ -125,7 +125,7 @@ export const Checkbox = styled.input.attrs({ export const Caption = styled.div` ${({ theme }) => theme.typography.caption} - color: #636878; + color: ${({ theme }) => theme.color.base1}; `; export const AuthorSelectorContainer = styled.div` @@ -137,6 +137,6 @@ export const AuthorSelectorContainer = styled.div` export const CommunitySeparator = styled.div` ${({ theme }) => theme.typography.caption} border-top: 1px solid #e3e4e8; - color: #636878; + color: ${({ theme }) => theme.color.base1}; padding: 12px; `; diff --git a/src/UiKitProvider/GlobalTheme.js b/src/UiKitProvider/GlobalTheme.js index 54abc7b5e..41d73389c 100644 --- a/src/UiKitProvider/GlobalTheme.js +++ b/src/UiKitProvider/GlobalTheme.js @@ -1,34 +1,30 @@ -const primary = '#1054DE'; -const primary2 = '#A0BDF8'; -const primary4 = '#F1F5FE'; -const alert = '#FA4D30'; -const base = '#292B32'; -const base1 = '#636878'; -const base3 = '#A5A9B5'; -const base4 = '#EBECEF'; - const Theme = { color: { - primary1: '#1054DE', - primary2: '#4A82F2', - primary3: '#A0BDF8', - primary4: '#D9E5FC', - primary5: '#F1F5FE', - secondary1: '#FFD400', - secondary2: '#FFE047', - secondary3: '#FFEA85', - secondary4: '#FFF6CC', - secondary5: '#FFFCF0', - tertiary1: '#FF305A', - tertiary2: '#FF476D', - tertiary3: '#FF6685', - tertiary4: '#FFCCD6', - tertiary5: '#FFF0F3', - neutral1: '#17181C', - neutral2: '#818698', - neutral3: '#ABAEBA', - neutral4: '#E3E4E8', - neutral5: '#F7F7F8', + alert: '#FA4D30', + base: '#292B32', + base1: '#636878', + base3: '#A5A9B5', + base4: '#EBECEF', + primary: '#1054DE', + primary1: '#4A82F2', + primary2: '#A0BDF8', + primary3: '#D9E5FC', + primary4: '#F1F5FE', + secondary: '#FFD400', + secondary1: '#FFE047', + secondary2: '#FFEA85', + secondary3: '#FFF6CC', + secondary4: '#FFFCF0', + tertiary: '#FF305A', + tertiary1: '#FF476D', + tertiary2: '#FF6685', + tertiary3: '#FFCCD6', + tertiary4: '#FFF0F3', + neutral: '#17181C', + neutral1: '#818698', + neutral2: '#ABAEBA', + neutral3: '#E3E4E8', + neutral4: '#F7F7F8', }, typography: { headline: ` diff --git a/src/UiKitProvider/styles.js b/src/UiKitProvider/styles.js index 889cdb629..9474ab959 100644 --- a/src/UiKitProvider/styles.js +++ b/src/UiKitProvider/styles.js @@ -2,7 +2,7 @@ import styled from 'styled-components'; export const UIStyles = styled.div` ${({ theme }) => theme.typography.body} - color: #292B32; + color: ${({ theme }) => theme.color.base}; input, div { box-sizing: border-box; diff --git a/src/commonComponents/Button/styles.js b/src/commonComponents/Button/styles.js index 3d19de4e9..561319ed0 100644 --- a/src/commonComponents/Button/styles.js +++ b/src/commonComponents/Button/styles.js @@ -27,13 +27,13 @@ export const DefaultButton = styled.button` export const PrimaryButton = styled.button` ${commonButtonStyles} border: none; - background-color: #1054de; + background-color: ${({ theme }) => theme.color.primary}; color: white; &:hover { background-color: #4a82f2; } &:disabled { - background-color: #a0bdf8; + background-color: ${({ theme }) => theme.color.primary2}; } `; diff --git a/src/commonComponents/Confirm/styles.js b/src/commonComponents/Confirm/styles.js index 6c77f10cd..991b77a0a 100644 --- a/src/commonComponents/Confirm/styles.js +++ b/src/commonComponents/Confirm/styles.js @@ -13,9 +13,9 @@ export const Footer = styled.div` export const DefaultOkButton = styled(PrimaryButton)` color: white; - background: #fa4d30; + background: ${({ theme }) => theme.color.alert}; &:hover { - background: #fa4d30; + background: ${({ theme }) => theme.color.alert}; } `; export const DefaultCancelButton = styled(Button)` diff --git a/src/commonComponents/Linkify/styles.js b/src/commonComponents/Linkify/styles.js index fedbe0bba..9f5867efc 100644 --- a/src/commonComponents/Linkify/styles.js +++ b/src/commonComponents/Linkify/styles.js @@ -3,7 +3,7 @@ import styled from 'styled-components'; export const Link = styled.a` &, &:visited { - color: #1054de; + color: ${({ theme }) => theme.color.primary}; text-decoration: none; } `; diff --git a/src/commonComponents/Modal/styles.js b/src/commonComponents/Modal/styles.js index cb791712f..9db7dda78 100644 --- a/src/commonComponents/Modal/styles.js +++ b/src/commonComponents/Modal/styles.js @@ -45,7 +45,7 @@ export const ModalWindow = styled.div` export const Header = styled.div` padding: 16px 16px 12px 16px; - ${({ clean }) => !clean && 'border-bottom: 1px solid #ebecef;'} + ${({ clean }) => !clean && 'border-bottom: 1px solid${({ theme }) => theme.color.base4};'} ${({ theme }) => theme.typography.title} display: flex; align-items: center; @@ -61,7 +61,7 @@ export const Footer = styled.div` ${({ clean }) => !clean && ` -border-top: 1px solid #ebecef; +border-top: 1px solid${({ theme }) => theme.color.base4}; padding-top: 16px; `} `; diff --git a/src/commonComponents/Notification/styles.js b/src/commonComponents/Notification/styles.js index b6bbedc8b..b0c906faf 100644 --- a/src/commonComponents/Notification/styles.js +++ b/src/commonComponents/Notification/styles.js @@ -38,7 +38,7 @@ export const NotificationContainer = styled.div` justify-content: center; align-items: center; color: white; - background: #292b32; + background: ${({ theme }) => theme.color.base}; border-radius: 4px; margin-bottom: 10px; diff --git a/src/commonComponents/SideMenuItem/styles.js b/src/commonComponents/SideMenuItem/styles.js index f12bc6ec6..c5498aa9c 100644 --- a/src/commonComponents/SideMenuItem/styles.js +++ b/src/commonComponents/SideMenuItem/styles.js @@ -9,7 +9,7 @@ export const SideMenuItemContainer = styled(SecondaryButton)` margin-bottom: 6px; color: #17181c; &:hover { - background-color: #ebecef; + background-color: ${({ theme }) => theme.color.base4}; } &:disabled { color: #abaeba; @@ -17,7 +17,7 @@ export const SideMenuItemContainer = styled(SecondaryButton)` ${({ active, theme }) => active && ` - background: #F1F5FE; + background: ${theme.color.primary4}; color: ${theme.color.primary1}; `} `; @@ -33,11 +33,11 @@ export const IconWrapper = styled.div` ${({ active, theme }) => active ? ` - background: #1054DE; + background: ${theme.color.primary}; color: white; ` : ` - background: #ebecef; + background:${theme.color.base4}; color: #898e9e; `} `; diff --git a/src/commonComponents/Tab/styles.js b/src/commonComponents/Tab/styles.js index 7ff07a659..ba5a8d3ed 100644 --- a/src/commonComponents/Tab/styles.js +++ b/src/commonComponents/Tab/styles.js @@ -10,8 +10,8 @@ export const Tab = styled.span` ${({ active }) => active ? ` -border-bottom: 2px solid #1054DE; -color: #1054DE; +border-bottom: 2px solid ${({ theme }) => theme.color.primary}; +color: ${({ theme }) => theme.color.primary}; ` : ` color: #abaeba; diff --git a/src/mock/index.js b/src/mock/index.js index a00cd0de5..27208fb58 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -80,7 +80,7 @@ export const posts = [ ]; const description = - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur auctor leo et tortor tempor finibus. Phasellus ultrices nulla nec libero ornare bibendum. Etiam nibh tellus, egestas at molestie vel, egestas euismod justo. Duis non dui ipsum. Maecenas mollis sed erat et ultrices. Cras rhoncus bibendum erat, at volutpat justo. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec ac mollis nunc. Nam velit justo, volutpat sed sem quis, malesuada ultrices diam. Nulla hendrerit, elit vitae tincidunt rhoncus, justo enim imperdiet ante, convallis sodales ligula ligula non tellus. Etiam mollis leo ac erat mattis maximus. Praesent dui arcu, bibendum ut porta vel, bibendum id lorem. Mauris laoreet ligula et augue venenatis, in varius augue posuere.'; + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur auctor leo et tortor tempor finibus. Phasellus ultrices nulla nec libero ornare bibendum. Etiam nibh tellus, egestas at molestie vel, egestas euismod justo. Duis non dui ipsum. Maecenas mollis sed erat et ultrices. Cras rhoncus bibendum erat, at volutpat justo. '; const communities = [ { @@ -368,6 +368,8 @@ export const getCategories = () => useRecoilValue(categoriesAtom); export const getCategory = categoryId => getCategories().find(({ id }) => id === categoryId); +export const getMyCommunityIds = () => useRecoilValue(myCommunityIdsAtom); + const myCommunities = selector({ key: 'myCommunities', get: ({ get }) => { From 754c996cd4f119b45a986a05ef1d2a5f536d316e Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Mon, 31 Aug 2020 15:19:46 +0700 Subject: [PATCH 049/740] rewrite sidemenu to support new menu in the future --- src/SideMenu/index.js | 23 +++++++++++++++-------- src/SideMenu/styles.js | 4 ---- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/SideMenu/index.js b/src/SideMenu/index.js index 301bbf032..66285061e 100644 --- a/src/SideMenu/index.js +++ b/src/SideMenu/index.js @@ -1,19 +1,26 @@ -import React from "react"; +import React, { useState } from "react"; import { customizableComponent } from "../hoks/customization"; import { SideMenuContainer } from "./styles"; import communityIcon from "./icons/community.svg"; import MenuTab from "./MenuTab"; const SideMenu = () => { - const test = () => alert("test"); + const [active, setActive] = useState(false); + const Mockup = [ + { name: "COMMUNITY", icon: communityIcon }, + { name: "TEST", icon: communityIcon }, + ]; return ( - + {Mockup.map((tab, id) => ( + setActive(tab.name)} + icon={tab.icon} + name={tab.name} + /> + ))} ); }; diff --git a/src/SideMenu/styles.js b/src/SideMenu/styles.js index 16618a949..4c6702b31 100644 --- a/src/SideMenu/styles.js +++ b/src/SideMenu/styles.js @@ -28,11 +28,7 @@ export const MenuTabContainer = styled.div` width: 100%; height: 64px; cursor: pointer; - border-bottom: 1px solid #ebecef; - border-left: 1px solid #ebecef; ${({ active }) => active && "border-left: 2px solid #1054DE; background-color: #ebecef;"} ${({ theme }) => theme.typography.captionBold} `; - -export const CommunityIcon = styled.div``; From 5fef66bc6f92e91bbe41a9505b04d9a35e90a988 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Mon, 31 Aug 2020 15:20:50 +0700 Subject: [PATCH 050/740] change faCaretDown icon to faSortDown icon --- src/Layout/index.js | 4 +++- src/Layout/styles.js | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Layout/index.js b/src/Layout/index.js index 38a82007e..2f16bf030 100644 --- a/src/Layout/index.js +++ b/src/Layout/index.js @@ -11,7 +11,9 @@ const Layout = () => { return ( - +
setIsOpen(!isOpen)}> + +
{username} Date: Mon, 31 Aug 2020 16:15:43 +0700 Subject: [PATCH 051/740] add dropdowncontainer to header layout --- src/Layout/index.js | 11 ++++++++--- src/Layout/styles.js | 8 +++++++- src/SideMenu/index.js | 5 +---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Layout/index.js b/src/Layout/index.js index 2f16bf030..f84928baa 100644 --- a/src/Layout/index.js +++ b/src/Layout/index.js @@ -1,6 +1,11 @@ import React, { useState, useEffect } from "react"; import { customizableComponent } from "../hoks/customization"; -import { LayoutHeader, Username, DropdownIcon } from "./styles"; +import { + LayoutHeader, + Username, + DropdownIcon, + DropDownContainer, +} from "./styles"; import Avatar from "../Avatar"; import Popover from "../commonComponents/Popover"; import Menu, { MenuItem } from "../commonComponents/Menu"; @@ -25,9 +30,9 @@ const Layout = () => { } > -
setIsOpen(!isOpen)}> + setIsOpen(!isOpen)}> -
+
); diff --git a/src/Layout/styles.js b/src/Layout/styles.js index c22d4af9c..b16f8ec50 100644 --- a/src/Layout/styles.js +++ b/src/Layout/styles.js @@ -19,7 +19,13 @@ export const Username = styled.div` export const DropdownIcon = styled(FaIcon).attrs({ icon: faSortDown })` color: #292b32; - margin-right: 76px; cursor: pointer; margin-bottom: 2px; `; + +export const DropDownContainer = styled.div` + display: flex; + align-items: flex-end; + cursor: pointer; + margin-right: 76px; +`; diff --git a/src/SideMenu/index.js b/src/SideMenu/index.js index 66285061e..b7e011a38 100644 --- a/src/SideMenu/index.js +++ b/src/SideMenu/index.js @@ -6,10 +6,7 @@ import MenuTab from "./MenuTab"; const SideMenu = () => { const [active, setActive] = useState(false); - const Mockup = [ - { name: "COMMUNITY", icon: communityIcon }, - { name: "TEST", icon: communityIcon }, - ]; + const Mockup = [{ name: "COMMUNITY", icon: communityIcon }]; return ( {Mockup.map((tab, id) => ( From 0f23083bc84026656d26712f718142dcf609e750 Mon Sep 17 00:00:00 2001 From: Aidar Lukmanov Date: Mon, 31 Aug 2020 16:17:52 +0700 Subject: [PATCH 052/740] fix colors, add comments --- CONTRIBUTE.md | 16 +++++++++------- src/CommunityForm/CategorySelector.js | 1 + src/CommunityForm/UserSelector.js | 1 + src/CommunityForm/index.js | 3 +-- src/CommunityForm/styles.js | 12 ++++++------ src/ExploreHome/CommunitySearch.js | 1 + src/Message/styles.js | 4 ++-- src/PostCompose/styles.js | 6 +++--- src/UiKitProvider/GlobalStyle.js | 3 --- src/UiKitProvider/GlobalTheme.js | 1 + src/UiKitProvider/styles.js | 1 + src/commonComponents/Confirm/index.js | 14 +++++++++++++- src/commonComponents/Notification/index.js | 10 +++++++++- src/commonComponents/Popover/styles.js | 1 + src/commonComponents/Tab/styles.js | 6 +++--- src/hoks/customization.js | 18 +++++++++++++++++- 16 files changed, 69 insertions(+), 29 deletions(-) diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 41d2a9631..f1727d32e 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -2,10 +2,16 @@ ## Development -### Testing +### Dependencies ``` -npm run test +npm ci +``` + +### Start storybook + +``` +npm run storybook ``` ### Building @@ -28,13 +34,9 @@ To export your Storybook as static files: npm run storybook:export ``` -### Generating New Components -``` -npm run generate YourComponentName -``` +Add the component to `index.js` exports if you want the library to export the component. -Add the component to `index.ts` exports if you want the library to export the component. ## Publishing diff --git a/src/CommunityForm/CategorySelector.js b/src/CommunityForm/CategorySelector.js index 4c27842b4..a3b057aa8 100644 --- a/src/CommunityForm/CategorySelector.js +++ b/src/CommunityForm/CategorySelector.js @@ -31,6 +31,7 @@ const CategorySelector = ({ value: categoryId, onChange }) => { const list = ( + {/* TODO empty state */} {categories.map(category => ( { diff --git a/src/CommunityForm/UserSelector.js b/src/CommunityForm/UserSelector.js index 0ebf3543a..7feb0fa04 100644 --- a/src/CommunityForm/UserSelector.js +++ b/src/CommunityForm/UserSelector.js @@ -82,6 +82,7 @@ const UserSelector = ({ value: userIds, onChange }) => { const list = ( + {/* TODO empty state */} {selectorUsersList.map(user => ( theme.color.base4}; + background: ${({ theme }) => theme.color.base4}; padding: 4px; display: flex; align-items: center; @@ -102,7 +102,7 @@ export const IconWrapper = styled.div` width: 40px; height: 40px; border-radius: 40px; - background:${({ theme }) => theme.color.base4}; + background: ${({ theme }) => theme.color.base4}; display: flex; align-items: center; justify-content: center; @@ -181,12 +181,12 @@ export const FormBlockHeader = styled.div` ${({ theme }) => theme.typography.title} display: flex; align-items: center; - border-bottom: 1px solid${({ theme }) => theme.color.base4}; + border-bottom: 1px solid ${({ theme }) => theme.color.base4}; `; export const FormBlockContainer = styled.div` background: #fff; - ${({ edit }) => + ${({ theme, edit }) => edit ? ` margin-top: 12px; @@ -195,7 +195,7 @@ export const FormBlockContainer = styled.div` ` : ` :not(:last-child) { - border-bottom: 1px solid${({ theme }) => theme.color.base4}; + border-bottom: 1px solid${theme.color.base4}; } `} `; @@ -238,7 +238,7 @@ export const CommunityPermissionBlock = styled.div` `; export const Footer = styled.div` - border-top: 1px solid${({ theme }) => theme.color.base4}; + border-top: 1px solid ${({ theme }) => theme.color.base4}; padding: 12px 16px; display: flex; justify-content: flex-end; diff --git a/src/ExploreHome/CommunitySearch.js b/src/ExploreHome/CommunitySearch.js index e98dd22cc..021501600 100644 --- a/src/ExploreHome/CommunitySearch.js +++ b/src/ExploreHome/CommunitySearch.js @@ -49,6 +49,7 @@ const CommunitySearch = ({ onSearchResultCommunityClick }) => { const menu = ( + {/* TODO empty state */} {searchResult.map(community => ( onSearchResultCommunityClick(community)}> diff --git a/src/Message/styles.js b/src/Message/styles.js index f3e338454..1d243ae3d 100644 --- a/src/Message/styles.js +++ b/src/Message/styles.js @@ -80,14 +80,14 @@ export const MessageBody = styled.div` display: flex; flex-direction: column; - ${({ incoming }) => + ${({ theme, incoming }) => incoming ? ` background: #e3e4e8; border-radius: 0px 6px 6px 6px; ` : ` - background: ${({ theme }) => theme.color.primary}; + background: ${theme.color.primary}; color: #fff; border-radius: 6px 0px 6px 6px; `} diff --git a/src/PostCompose/styles.js b/src/PostCompose/styles.js index 04b71f654..b2e7fc3b5 100644 --- a/src/PostCompose/styles.js +++ b/src/PostCompose/styles.js @@ -11,7 +11,7 @@ export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` font-size: 18px; cursor: pointer; margin-right: 20px; - color: ${({ disabled }) => (disabled ? '${({ theme }) => theme.color.base3}' : '#17181c')}; + color: ${({ theme, disabled }) => (disabled ? theme.color.base3 : '#17181c')}; `; export const SelectIcon = styled(FaIcon).attrs({ icon: faSortDown })` @@ -24,7 +24,7 @@ export const FilePostIcon = styled(FaIcon).attrs({ icon: faPaperclip })` font-size: 18px; margin-right: 12px; cursor: pointer; - color: ${({ disabled }) => (disabled ? '${({ theme }) => theme.color.base3}' : '#17181c')}; + color: ${({ theme, disabled }) => (disabled ? theme.color.base3 : '#17181c')}; `; const postComposeEditStyle = ` @@ -109,7 +109,7 @@ export const Avatar = styled(UIAvatar)` export const PostAsCommunityContainer = styled.div` display: flex; border-radius: 4px; - background:${({ theme }) => theme.color.base4}; + background: ${({ theme }) => theme.color.base4}; padding: 10px; margin-bottom: 12px; ${({ theme }) => theme.typography.captionBold} diff --git a/src/UiKitProvider/GlobalStyle.js b/src/UiKitProvider/GlobalStyle.js index d8d4e1162..b14decde7 100644 --- a/src/UiKitProvider/GlobalStyle.js +++ b/src/UiKitProvider/GlobalStyle.js @@ -3,9 +3,6 @@ import 'react-toggle/style.css'; const GlobalStyle = createGlobalStyle` @import url("https://rsms.me/inter/inter.css"); -body { - font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; -} `; export default GlobalStyle; diff --git a/src/UiKitProvider/GlobalTheme.js b/src/UiKitProvider/GlobalTheme.js index 41d73389c..90eba4e1c 100644 --- a/src/UiKitProvider/GlobalTheme.js +++ b/src/UiKitProvider/GlobalTheme.js @@ -1,3 +1,4 @@ +// TODO derrive shades from main colors const Theme = { color: { alert: '#FA4D30', diff --git a/src/UiKitProvider/styles.js b/src/UiKitProvider/styles.js index 9474ab959..65fd7a56a 100644 --- a/src/UiKitProvider/styles.js +++ b/src/UiKitProvider/styles.js @@ -1,6 +1,7 @@ import styled from 'styled-components'; export const UIStyles = styled.div` + font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; ${({ theme }) => theme.typography.body} color: ${({ theme }) => theme.color.base}; input, diff --git a/src/commonComponents/Confirm/index.js b/src/commonComponents/Confirm/index.js index 1a9627a86..c60842f04 100644 --- a/src/commonComponents/Confirm/index.js +++ b/src/commonComponents/Confirm/index.js @@ -29,7 +29,7 @@ const Confirm = ({ ); -let spawnNewConfirm; +let spawnNewConfirm; // for modfying ConfirmContainer state outside // rendered by provider, to allow spawning of confirm from confirm function below export const ConfirmContainer = () => { @@ -56,6 +56,18 @@ export const ConfirmContainer = () => { ); }; +/* + Usage: + confirm({ + title: 'Delete post', + content: + 'This post will be permanently deleted. You’ll no longer to see and find this post. Continue?', + okText: 'Delete', + onOk: onDelete, + }); + + This interface rely on ConfirmContainer being rendered by UIKITProvider in the react tree +*/ export const confirm = confirmData => spawnNewConfirm(confirmData); export default Confirm; diff --git a/src/commonComponents/Notification/index.js b/src/commonComponents/Notification/index.js index b96d7d308..1d9480907 100644 --- a/src/commonComponents/Notification/index.js +++ b/src/commonComponents/Notification/index.js @@ -10,7 +10,7 @@ const Notification = ({ className, content, icon }) => (
); -let spawnNewNotification; +let spawnNewNotification; // for modfying NotificationContainer state outside // rendered by provider, to allow spawning of notification from notification function below export const NotificationsContainer = () => { @@ -34,6 +34,14 @@ export const NotificationsContainer = () => { return {notifications.map(Notification)}; }; +/* + Usage: + notification.success({ + content: 'Report Sent', + }); + + This interface rely on NotificationsContainer being rendered by UIKITProvider in the react tree +*/ export const notification = { success: data => spawnNewNotification({ ...data, icon: }), info: data => spawnNewNotification({ ...data, icon: }), diff --git a/src/commonComponents/Popover/styles.js b/src/commonComponents/Popover/styles.js index 4ad066c66..1a2d3cf77 100644 --- a/src/commonComponents/Popover/styles.js +++ b/src/commonComponents/Popover/styles.js @@ -5,6 +5,7 @@ import ReactTinyPopover from 'react-tiny-popover'; const ReactPopover = props => ; export const Popover = styled(ReactPopover)` + ${({ theme }) => theme.typography.body} z-index: 10000; background: white; min-width: 200px; diff --git a/src/commonComponents/Tab/styles.js b/src/commonComponents/Tab/styles.js index ba5a8d3ed..782fac8d0 100644 --- a/src/commonComponents/Tab/styles.js +++ b/src/commonComponents/Tab/styles.js @@ -7,11 +7,11 @@ export const Tab = styled.span` text-align: center; padding: 12px; margin-right: 8px; - ${({ active }) => + ${({ theme, active }) => active ? ` -border-bottom: 2px solid ${({ theme }) => theme.color.primary}; -color: ${({ theme }) => theme.color.primary}; +border-bottom: 2px solid ${theme.color.primary}; +color: ${theme.color.primary}; ` : ` color: #abaeba; diff --git a/src/hoks/customization.js b/src/hoks/customization.js index df6b7fddc..1d7480d71 100644 --- a/src/hoks/customization.js +++ b/src/hoks/customization.js @@ -3,6 +3,22 @@ import React, { useContext, useMemo } from 'react'; export const CustomComponentsContext = React.createContext({}); export const CustomComponentsProvider = CustomComponentsContext.Provider; +/* + This hok allow as to customize components by it name + + usage: + 1) wrap component + const MyCustomizableComponent = customizableComponent('ComponentName')(Component); + + 2) on customizable parent we can provide customization map with this component name what lead to rendering of new component instead of old one + + + + + 1) provide customization map to children components + 2) replace itself if it name in customizable map + */ + export const customizableComponent = componentName => Component => props => { const { customComponents } = props; @@ -19,7 +35,7 @@ export const customizableComponent = componentName => Component => props => { [customComponentsMap, customComponents], ); - // TODO do not render provider if there is no changes + // TODO do not render provider if there is no changes(customComponents) return ( {CustomComponent ? : } From e7eb993c93699586428e921bb467cf716f0e0ea3 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 16:00:32 +0700 Subject: [PATCH 053/740] Add theme setup and Upstra logo to storybook --- .storybook/manager.js | 6 + .storybook/theme.js | 9 ++ .storybook/upstra-logo.svg | 9 ++ package-lock.json | 314 +++++++++++++++++++++++++++++++++++-- package.json | 2 + 5 files changed, 327 insertions(+), 13 deletions(-) create mode 100644 .storybook/manager.js create mode 100644 .storybook/theme.js create mode 100644 .storybook/upstra-logo.svg diff --git a/.storybook/manager.js b/.storybook/manager.js new file mode 100644 index 000000000..65f017a95 --- /dev/null +++ b/.storybook/manager.js @@ -0,0 +1,6 @@ +import { addons } from '@storybook/addons'; +import theme from './theme'; + +addons.setConfig({ + theme, +}); \ No newline at end of file diff --git a/.storybook/theme.js b/.storybook/theme.js new file mode 100644 index 000000000..fc9a79fea --- /dev/null +++ b/.storybook/theme.js @@ -0,0 +1,9 @@ +import { create } from '@storybook/theming/create'; +import logo from './upstra-logo.svg'; + +export default create({ + base: 'light', + brandTitle: 'Upstra', + brandImage: logo, + brandUrl: 'https://upstra.co/', +}); \ No newline at end of file diff --git a/.storybook/upstra-logo.svg b/.storybook/upstra-logo.svg new file mode 100644 index 000000000..d0906e5e0 --- /dev/null +++ b/.storybook/upstra-logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/package-lock.json b/package-lock.json index dd9fda4dd..aec619774 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3560,20 +3560,94 @@ } }, "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.21.tgz", + "integrity": "sha512-yDttNLc3vXqBxwK795ykgzTC6MpvuXDQuF4LHSlHZQe6wsMu1m3fljnbYdafJWdx6cNZwUblU3KYcR11PqhkPg==", "dev": true, "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", + "@storybook/api": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/router": "6.0.21", + "@storybook/theming": "6.0.21", "core-js": "^3.0.1", "global": "^4.3.2", "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } } }, "@storybook/api": { @@ -3613,6 +3687,26 @@ "core-js": "^3.6.5", "find-up": "^4.1.0" } + }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } } } }, @@ -3665,6 +3759,45 @@ "store2": "^2.7.1", "ts-dedent": "^1.1.1", "util-deprecate": "^1.0.2" + }, + "dependencies": { + "@storybook/addons": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "dev": true, + "requires": { + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "global": "^4.3.2", + "regenerator-runtime": "^0.13.3" + } + }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } + } } }, "@storybook/client-logger": { @@ -3705,6 +3838,28 @@ "react-syntax-highlighter": "^12.2.1", "react-textarea-autosize": "^8.1.1", "ts-dedent": "^1.1.1" + }, + "dependencies": { + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } + } } }, "@storybook/core": { @@ -3812,6 +3967,23 @@ "webpack-virtual-modules": "^0.2.2" }, "dependencies": { + "@storybook/addons": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "dev": true, + "requires": { + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "global": "^4.3.2", + "regenerator-runtime": "^0.13.3" + } + }, "@storybook/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", @@ -3822,6 +3994,26 @@ "find-up": "^4.1.0" } }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } + }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", @@ -4022,6 +4214,23 @@ "webpack": "^4.43.0" }, "dependencies": { + "@storybook/addons": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "dev": true, + "requires": { + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "global": "^4.3.2", + "regenerator-runtime": "^0.13.3" + } + }, "@storybook/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", @@ -4031,6 +4240,26 @@ "core-js": "^3.6.5", "find-up": "^4.1.0" } + }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } } } }, @@ -4048,6 +4277,16 @@ "qs": "^6.6.0" } }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, "@storybook/source-loader": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.0.16.tgz", @@ -4230,15 +4469,15 @@ } }, "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.21.tgz", + "integrity": "sha512-n97DfB9kG6WrV1xBGDyeQibTrh8pBBCp3dSL3UTGH+KX3C2+4sm6QHlTgyekbi5FrbFEbnuZOKAS3YbLVONsRQ==", "dev": true, "requires": { "@emotion/core": "^10.0.20", "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", + "@storybook/client-logger": "6.0.21", "core-js": "^3.0.1", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.19", @@ -4247,6 +4486,18 @@ "polished": "^3.4.4", "resolve-from": "^5.0.0", "ts-dedent": "^1.1.1" + }, + "dependencies": { + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + } } }, "@storybook/ui": { @@ -4288,6 +4539,23 @@ "store2": "^2.7.1" }, "dependencies": { + "@storybook/addons": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", + "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "dev": true, + "requires": { + "@storybook/api": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/router": "6.0.16", + "@storybook/theming": "6.0.16", + "core-js": "^3.0.1", + "global": "^4.3.2", + "regenerator-runtime": "^0.13.3" + } + }, "@storybook/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", @@ -4297,6 +4565,26 @@ "core-js": "^3.6.5", "find-up": "^4.1.0" } + }, + "@storybook/theming": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", + "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.20", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.17", + "@storybook/client-logger": "6.0.16", + "core-js": "^3.0.1", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.19", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "polished": "^3.4.4", + "resolve-from": "^5.0.0", + "ts-dedent": "^1.1.1" + } } } }, diff --git a/package.json b/package.json index da0833eed..e181b9fe7 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,9 @@ "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-node-resolve": "^7.1.3", "@storybook/addon-storysource": "^6.0.16", + "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", + "@storybook/theming": "^6.0.21", "@testing-library/jest-dom": "^5.5.0", "@testing-library/react": "^10.0.2", "@types/jest": "^24.0.24", From 50201fa99ecd82061deeb56e234d5537c9f3b373 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 16:22:32 +0700 Subject: [PATCH 054/740] Add new script for building storybook --- .gitignore | 1 + package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index d07b92bd0..7b351f2c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ node_modules/ build/ +storybook-build/ packaging/storybook-static/ packaging/ui-kit-web-linux packaging/ui-kit-web-macos diff --git a/package.json b/package.json index e181b9fe7..aceefa061 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "test": "jest", "test:watch": "jest --watch", "storybook": "start-storybook -p 6006", + "storybook:build": "build-storybook --output-dir ./storybook-build", "storybook:export": "build-storybook --output-dir ./packaging/storybook-static", "pack": "npm run storybook:export && cd packaging && npm run pack", "generate": "node ./util/create-component", From cf8e67ecb6001f6b4b490469893f933996188a23 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 16:22:32 +0700 Subject: [PATCH 055/740] Remove old storybook build process for running build locally --- .gitignore | 5 --- package.json | 2 -- packaging/package-lock.json | 69 ------------------------------------- packaging/package.json | 20 ----------- packaging/ui-kit-web.js | 22 ------------ 5 files changed, 118 deletions(-) delete mode 100644 packaging/package-lock.json delete mode 100644 packaging/package.json delete mode 100644 packaging/ui-kit-web.js diff --git a/.gitignore b/.gitignore index 7b351f2c8..944ce5558 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,5 @@ node_modules/ build/ storybook-build/ -packaging/storybook-static/ -packaging/ui-kit-web-linux -packaging/ui-kit-web-macos -packaging/ui-kit-web-win.exe - .DS_Store diff --git a/package.json b/package.json index aceefa061..cf3419ca9 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,6 @@ "test:watch": "jest --watch", "storybook": "start-storybook -p 6006", "storybook:build": "build-storybook --output-dir ./storybook-build", - "storybook:export": "build-storybook --output-dir ./packaging/storybook-static", - "pack": "npm run storybook:export && cd packaging && npm run pack", "generate": "node ./util/create-component", "prepublishOnly": "npm run build" }, diff --git a/packaging/package-lock.json b/packaging/package-lock.json deleted file mode 100644 index f7b988c14..000000000 --- a/packaging/package-lock.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "storybook-static", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "is-docker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", - "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" - }, - "node-static": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz", - "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==", - "requires": { - "colors": ">=0.6.0", - "mime": "^1.2.9", - "optimist": ">=0.3.4" - } - }, - "open": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz", - "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } -} diff --git a/packaging/package.json b/packaging/package.json deleted file mode 100644 index efced3d9e..000000000 --- a/packaging/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "ui-kit-web", - "version": "1.0.0", - "description": "", - "main": "ui-kit-web.js", - "bin": "ui-kit-web.js", - "scripts": { - "pack": "pkg .", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "pkg": { - "assets": "./storybook-static/**/*" - }, - "author": "", - "license": "ISC", - "dependencies": { - "node-static": "^0.7.11", - "open": "^7.1.0" - } -} diff --git a/packaging/ui-kit-web.js b/packaging/ui-kit-web.js deleted file mode 100644 index 091da2cda..000000000 --- a/packaging/ui-kit-web.js +++ /dev/null @@ -1,22 +0,0 @@ -const path = require('path'); -const static = require('node-static'); -const open = require('open'); - -const PORT = '8888'; - -const staticPath = path.join(__dirname, './storybook-static'); -const file = new static.Server(staticPath); - -require('http') - .createServer(function(request, response) { - request - .addListener('end', function() { - file.serve(request, response); - }) - .resume(); - }) - .listen(PORT); - -console.log(`storybook start on port ${PORT}`); - -open(`http://localhost:${PORT}`); From 30df5940953d0327457fc8fc12142c5eadb46e69 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 17:09:40 +0700 Subject: [PATCH 056/740] Update contribute.md file with new build script --- CONTRIBUTE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index f1727d32e..38f575802 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -31,7 +31,7 @@ npm run storybook To export your Storybook as static files: ``` -npm run storybook:export +npm run storybook:build ``` From 3f25d23fda0771b87a3eda4cd28d594a506f0c78 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 19:45:55 +0700 Subject: [PATCH 057/740] npm ignore the storybook build directory --- .npmignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.npmignore b/.npmignore index 093943121..e1d7db956 100644 --- a/.npmignore +++ b/.npmignore @@ -1,4 +1,4 @@ -packaging +storybook-build src util .storybook From 2399b51f5b1598577710bbfc025aa2c3696d544b Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 17:51:10 +0700 Subject: [PATCH 058/740] Remove unused deps from package json --- package.json | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/package.json b/package.json index cf3419ca9..63df10d97 100644 --- a/package.json +++ b/package.json @@ -24,50 +24,27 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^11.1.0", - "@rollup/plugin-node-resolve": "^7.1.3", "@storybook/addon-storysource": "^6.0.16", "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", "@storybook/theming": "^6.0.21", - "@testing-library/jest-dom": "^5.5.0", - "@testing-library/react": "^10.0.2", - "@types/jest": "^24.0.24", - "@types/react": "^16.9.12", - "@types/react-dom": "^16.9.8", - "@types/styled-components": "^5.1.0", "babel-loader": "^8.1.0", - "babel-preset-react-app": "^9.1.2", "clean-webpack-plugin": "^3.0.0", - "cross-env": "^7.0.2", "eslint": "^7.7.0", "eslint-config-eko": "^2.0.0", - "identity-obj-proxy": "^3.0.0", "jest": "^24.9.0", - "node-sass": "^4.14.1", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router-dom": "^5.2.0", - "rollup": "^1.27.4", - "rollup-plugin-copy": "^3.3.0", - "rollup-plugin-peer-deps-external": "^2.2.0", - "rollup-plugin-postcss": "^3.1.2", - "rollup-plugin-typescript2": "^0.27.0", - "sass-loader": "^8.0.0", "styled-components": "^5.1.1", "svg-url-loader": "^6.0.0", - "ts-jest": "^24.2.0", - "typescript": "^3.7.2", "webpack": "^4.44.1", "webpack-cli": "^3.3.12", "webpack-node-externals": "^2.5.1" }, "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.29", - "@fortawesome/free-regular-svg-icons": "^5.13.1", "@fortawesome/free-solid-svg-icons": "^5.13.1", - "@fortawesome/pro-duotone-svg-icons": "^5.13.1", "@fortawesome/pro-light-svg-icons": "^5.13.1", "@fortawesome/pro-regular-svg-icons": "^5.13.1", "@fortawesome/pro-solid-svg-icons": "^5.13.1", @@ -78,8 +55,6 @@ "human-readable-numbers": "^0.9.5", "javascript-time-ago": "^2.0.13", "lodash": "^4.17.19", - "pkg": "^4.4.9", - "ramda": "^0.27.0", "react-autosize-textarea": "^7.1.0", "react-hook-form": "^6.6.0", "react-infinite-scroller": "^1.2.4", From 4d2f53ad69963f80695d1ea44037f7088c8f4d3c Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 20:11:52 +0700 Subject: [PATCH 059/740] Update package lock after removing unused deps --- package-lock.json | 4077 +++------------------------------------------ 1 file changed, 272 insertions(+), 3805 deletions(-) diff --git a/package-lock.json b/package-lock.json index aec619774..424d89ce4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,17 +13,6 @@ "@babel/highlight": "^7.10.3" } }, - "@babel/compat-data": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz", - "integrity": "sha512-BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, "@babel/core": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz", @@ -69,50 +58,6 @@ "@babel/types": "^7.10.1" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.3.tgz", - "integrity": "sha512-lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.3", - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.3.tgz", - "integrity": "sha512-vkxmuFvmovtqTZknyMGj9+uQAZzz5Z9mrbnkJnPkaYGfKTaSsYcjQdXP0lgrWLVh8wU6bCjOmXOpx+kqUi+S5Q==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz", - "integrity": "sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-module-imports": "^7.10.1", - "@babel/types": "^7.10.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", - "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.10.1", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, "@babel/helper-create-class-features-plugin": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz", @@ -149,16 +94,6 @@ "lodash": "^4.17.13" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz", - "integrity": "sha512-0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.10.3", - "@babel/types": "^7.10.3" - } - }, "@babel/helper-function-name": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz", @@ -179,15 +114,6 @@ "@babel/types": "^7.10.3" } }, - "@babel/helper-hoist-variables": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz", - "integrity": "sha512-9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.3" - } - }, "@babel/helper-member-expression-to-functions": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz", @@ -245,19 +171,6 @@ "lodash": "^4.17.13" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz", - "integrity": "sha512-sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-wrap-function": "^7.10.1", - "@babel/template": "^7.10.3", - "@babel/traverse": "^7.10.3", - "@babel/types": "^7.10.3" - } - }, "@babel/helper-replace-supers": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", @@ -323,18 +236,6 @@ "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", "dev": true }, - "@babel/helper-wrap-function": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz", - "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.1", - "@babel/template": "^7.10.1", - "@babel/traverse": "^7.10.1", - "@babel/types": "^7.10.1" - } - }, "@babel/helpers": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", @@ -360,18 +261,8 @@ "@babel/parser": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", - "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz", - "integrity": "sha512-WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/helper-remap-async-to-generator": "^7.10.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } + "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", + "dev": true }, "@babel/plugin-proposal-class-properties": { "version": "7.10.4", @@ -557,16 +448,6 @@ "@babel/plugin-syntax-decorators": "^7.8.3" } }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz", - "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, "@babel/plugin-proposal-export-default-from": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz", @@ -603,16 +484,6 @@ } } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", - "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, "@babel/plugin-proposal-logical-assignment-operators": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", @@ -687,16 +558,6 @@ "@babel/plugin-transform-parameters": "^7.10.1" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz", - "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, "@babel/plugin-proposal-optional-chaining": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", @@ -969,15 +830,6 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-syntax-flow": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz", - "integrity": "sha512-b3pWVncLBYoPP60UOTc7NMlbtsHQ6ITim78KQejNHK6WJ2mzV5kCcg4mIWpasAfJEgwVTibwo2e+FU7UEIKQUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -987,15 +839,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz", - "integrity": "sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -1022,15 +865,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", - "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", @@ -1058,15 +892,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz", - "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-syntax-typescript": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz", @@ -1085,26 +910,6 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz", - "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/helper-remap-async-to-generator": "^7.10.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz", - "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-transform-block-scoping": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", @@ -1131,15 +936,6 @@ "globals": "^11.1.0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz", - "integrity": "sha512-GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.3" - } - }, "@babel/plugin-transform-destructuring": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", @@ -1159,25 +955,6 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz", - "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz", - "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-transform-flow-strip-types": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", @@ -1214,107 +991,6 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, - "@babel/plugin-transform-function-name": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz", - "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz", - "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz", - "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz", - "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz", - "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/helper-simple-access": "^7.10.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz", - "integrity": "sha512-GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.3", - "@babel/helper-module-transforms": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.3", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz", - "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz", - "integrity": "sha512-I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz", - "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz", - "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/helper-replace-supers": "^7.10.1" - } - }, "@babel/plugin-transform-parameters": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", @@ -1325,15 +1001,6 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz", - "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-transform-react-constant-elements": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", @@ -1368,49 +1035,6 @@ } } }, - "@babel/plugin-transform-react-jsx": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.3.tgz", - "integrity": "sha512-Y21E3rZmWICRJnvbGVmDLDZ8HfNDIwjGF3DXYHx1le0v0mIHCs0Gv5SavyW5Z/jgAHLaAoJPiwt+Dr7/zZKcOQ==", - "dev": true, - "requires": { - "@babel/helper-builder-react-jsx": "^7.10.3", - "@babel/helper-builder-react-jsx-experimental": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/plugin-syntax-jsx": "^7.10.1" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz", - "integrity": "sha512-XwDy/FFoCfw9wGFtdn5Z+dHh6HXKHkC6DwKNWpN74VWinUagZfDcEJc3Y8Dn5B3WMVnAllX8Kviaw7MtC5Epwg==", - "dev": true, - "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-jsx": "^7.10.1" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz", - "integrity": "sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-jsx": "^7.10.1" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz", - "integrity": "sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/plugin-syntax-jsx": "^7.10.1" - } - }, "@babel/plugin-transform-react-pure-annotations": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", @@ -1455,83 +1079,34 @@ } } }, - "@babel/plugin-transform-regenerator": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz", - "integrity": "sha512-H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", + "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", "dev": true, "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.10.1" } }, - "@babel/plugin-transform-reserved-words": { + "@babel/plugin-transform-spread": { "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz", - "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", + "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.1" } }, - "@babel/plugin-transform-runtime": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", - "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "resolve": "^1.8.1", - "semver": "^5.5.1" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", - "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", - "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz", - "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/helper-regex": "^7.10.1" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz", - "integrity": "sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==", + "@babel/plugin-transform-template-literals": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz", + "integrity": "sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.1", "@babel/helper-plugin-utils": "^7.10.3" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz", - "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/plugin-transform-typescript": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.3.tgz", @@ -1560,16 +1135,6 @@ } } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz", - "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" - } - }, "@babel/preset-env": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", @@ -2559,17 +2124,8 @@ "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz", - "integrity": "sha512-HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw==", "dev": true, "requires": { - "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, @@ -2815,14 +2371,6 @@ "@fortawesome/fontawesome-common-types": "^0.2.29" } }, - "@fortawesome/free-regular-svg-icons": { - "version": "5.13.1", - "resolved": "https://npm.fontawesome.com/@fortawesome/free-regular-svg-icons/-/5.13.1/free-regular-svg-icons-5.13.1.tgz", - "integrity": "sha512-sSeaqqmv2ovA5LKcrbh3VnEDZHVhaxijWKm4R0AdT0eG21pgxNsJbStD8lW9z6bgSuWXRNHhbhOmARuRCLS8tw==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.29" - } - }, "@fortawesome/free-solid-svg-icons": { "version": "5.13.1", "resolved": "https://npm.fontawesome.com/@fortawesome/free-solid-svg-icons/-/5.13.1/free-solid-svg-icons-5.13.1.tgz", @@ -2831,14 +2379,6 @@ "@fortawesome/fontawesome-common-types": "^0.2.29" } }, - "@fortawesome/pro-duotone-svg-icons": { - "version": "5.13.1", - "resolved": "https://npm.fontawesome.com/@fortawesome/pro-duotone-svg-icons/-/5.13.1/pro-duotone-svg-icons-5.13.1.tgz", - "integrity": "sha512-CrQRD0BVBrsnrmRKdw8kcPVvryfJxLZk7AnOOjtF2oRe47Qs+H+wM+qYo9IzJNhj7r/0Od5V+cSAKTuDKnhAmg==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.29" - } - }, "@fortawesome/pro-light-svg-icons": { "version": "5.13.1", "resolved": "https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/5.13.1/pro-light-svg-icons-5.13.1.tgz", @@ -3194,37 +2734,12 @@ "glob-to-regexp": "^0.3.0" } }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - } - } - }, "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - } - }, "@npmcli/move-file": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", @@ -3254,55 +2769,6 @@ "react-lifecycles-compat": "^3.0.4" } }, - "@rollup/plugin-babel": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.1.0.tgz", - "integrity": "sha512-zXBEYmfiLAMvB+ZBa6m/q9hsQYAq1sUFdjuP1F6C2pf6uQcpHwAWQveZgzS63zXdKPUYHD3Dr7BhjCqcr0bbLw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@rollup/pluginutils": "^3.0.8" - } - }, - "@rollup/plugin-commonjs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", - "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8", - "commondir": "^1.0.1", - "estree-walker": "^1.0.1", - "glob": "^7.1.2", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "resolve": "^1.11.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", - "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", @@ -4732,189 +4198,6 @@ } } }, - "@testing-library/dom": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.18.1.tgz", - "integrity": "sha512-tGq4KAFjaI7j375sMM1RRVleWA0viJWs/w69B+nyDkqYLNkhdTHdV6mGkspJlkn3PUfyBDi3rERDv4PA/LrpVA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.3", - "aria-query": "^4.2.2", - "dom-accessibility-api": "^0.4.5", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.0.tgz", - "integrity": "sha512-mhaCySy7dZlyfcxcYy+0jLllODHEiHkVdmwQ00wD0HrWiSx0fSVHz/0WmdlRkvhfSOuqsRsBUreXOtBvruWGQA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", - "chalk": "^3.0.0", - "css": "^2.2.4", - "css.escape": "^1.5.1", - "jest-diff": "^25.1.0", - "jest-matcher-utils": "^25.1.0", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/react": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-10.4.3.tgz", - "integrity": "sha512-A/ydYXcwAcfY7vkPrfUkUTf9HQLL3/GtixTefcu3OyGQtAYQ7XBQj1S9FWbLEhfWa0BLwFwTBFS3Ao1O0tbMJg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.3", - "@testing-library/dom": "^7.17.1" - } - }, "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", @@ -4971,23 +4254,9 @@ "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "@types/fs-extra": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", - "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", @@ -5061,29 +4330,6 @@ "@types/istanbul-lib-report": "*" } }, - "@types/jest": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz", - "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==", - "dev": true, - "requires": { - "jest-diff": "^24.3.0" - }, - "dependencies": { - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - } - } - }, "@types/json-schema": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", @@ -5207,24 +4453,6 @@ "@types/reactcss": "*" } }, - "@types/react-dom": { - "version": "16.9.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", - "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-native": { - "version": "0.62.13", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.62.13.tgz", - "integrity": "sha512-hs4/tSABhcJx+J8pZhVoXHrOQD89WFmbs8QiDLNSA9zNrD46pityAuBWuwk1aMjPk9I3vC5ewkJroVRHgRIfdg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, "@types/react-syntax-highlighter": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz", @@ -5243,15 +4471,6 @@ "@types/react": "*" } }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/source-list-map": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", @@ -5264,33 +4483,12 @@ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", "dev": true }, - "@types/styled-components": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.0.tgz", - "integrity": "sha512-ZFlLCuwF5r+4Vb7JUmd+Yr2S0UBdBGmI7ctFTgJMypIp3xOHI4LCFVn2dKMvpk6xDB2hLRykrEWMBwJEpUAUIQ==", - "dev": true, - "requires": { - "@types/hoist-non-react-statics": "*", - "@types/react": "*", - "@types/react-native": "*", - "csstype": "^2.2.0" - } - }, "@types/tapable": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", "dev": true }, - "@types/testing-library__jest-dom": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.1.tgz", - "integrity": "sha512-yYn5EKHO3MPEMSOrcAb1dLWY+68CG29LiXKsWmmpVHqoP5+ZRiAVLyUHvPNrO2dABDdUGZvavMsaGpWNjM6N2g==", - "dev": true, - "requires": { - "@types/jest": "*" - } - }, "@types/uglify-js": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.2.tgz", @@ -5606,12 +4804,6 @@ "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", "dev": true }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -5700,6 +4892,7 @@ "version": "6.12.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5710,7 +4903,8 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true } } }, @@ -5726,18 +4920,6 @@ "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==", "dev": true }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", @@ -5875,16 +5057,6 @@ "sprintf-js": "~1.0.2" } }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -5909,12 +5081,6 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -6006,6 +5172,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -6060,7 +5227,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -6093,12 +5261,6 @@ "dev": true, "optional": true }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -6158,12 +5320,14 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, "aws4": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", + "dev": true }, "babel-code-frame": { "version": "6.26.0", @@ -6549,12 +5713,6 @@ "esutils": "^2.0.2" } }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", - "dev": true - }, "babel-plugin-transform-regexp-constructors": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", @@ -6635,205 +5793,6 @@ "lodash": "^4.17.11" } }, - "babel-preset-react-app": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz", - "integrity": "sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA==", - "dev": true, - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-proposal-class-properties": "7.8.3", - "@babel/plugin-proposal-decorators": "7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", - "@babel/plugin-proposal-numeric-separator": "7.8.3", - "@babel/plugin-proposal-optional-chaining": "7.9.0", - "@babel/plugin-transform-flow-strip-types": "7.9.0", - "@babel/plugin-transform-react-display-name": "7.8.3", - "@babel/plugin-transform-runtime": "7.9.0", - "@babel/preset-env": "7.9.0", - "@babel/preset-react": "7.9.1", - "@babel/preset-typescript": "7.9.0", - "@babel/runtime": "7.9.0", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - }, - "dependencies": { - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", - "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-flow": "^7.8.3" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", - "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.0", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.0", - "browserslist": "^4.9.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/preset-react": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz", - "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.9.1", - "@babel/plugin-transform-react-jsx-development": "^7.9.0", - "@babel/plugin-transform-react-jsx-self": "^7.9.0", - "@babel/plugin-transform-react-jsx-source": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz", - "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -6927,6 +5886,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -6975,15 +5935,6 @@ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -7335,15 +6286,6 @@ "node-releases": "^1.1.58" } }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, "bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -7376,23 +6318,12 @@ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", - "dev": true - }, "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 }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -7506,42 +6437,12 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, "camelize": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", "dev": true }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, "caniuse-lite": { "version": "1.0.30001088", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", @@ -7566,7 +6467,8 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "chalk": { "version": "2.4.2", @@ -7958,16 +6860,6 @@ "object-visit": "^1.0.0" } }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -7983,22 +6875,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz", - "integrity": "sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==", - "dev": true - }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -8070,23 +6946,6 @@ "typedarray": "^0.0.6" } }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", @@ -8278,58 +7137,6 @@ "warning": "^4.0.3" } }, - "cross-env": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", - "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -8362,48 +7169,12 @@ "randomfill": "^1.0.3" } }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", "dev": true }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, "css-loader": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", @@ -8444,118 +7215,10 @@ } } }, - "css-modules-loader-core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", - "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", - "dev": true, - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.1", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", - "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { "boolbase": "~1.0.0", @@ -8570,17 +7233,6 @@ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", "dev": true }, - "css-selector-tokenizer": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", - "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2", - "regexpu-core": "^4.6.0" - } - }, "css-to-react-native": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", @@ -8616,135 +7268,12 @@ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", - "dev": true - }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, "csso": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", @@ -8798,15 +7327,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -8827,6 +7347,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -8898,7 +7419,8 @@ "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=" + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true }, "deep-object-diff": { "version": "1.1.0", @@ -9146,12 +7668,6 @@ "esutils": "^2.0.2" } }, - "dom-accessibility-api": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz", - "integrity": "sha512-HcPDilI95nKztbVikaN2vzwvmv0sE8Y2ZJFODy/m15n7mGXLeOKGiys9qWVbFbh+aq/KYj2lqMLybBOkYAEXqg==", - "dev": true - }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -9241,15 +7757,6 @@ "tslib": "^1.10.0" } }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, "dotenv": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", @@ -9302,6 +7809,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -9693,6 +8201,7 @@ "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", @@ -9705,6 +8214,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "optional": true } } @@ -9984,7 +8494,8 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "esquery": { "version": "1.3.1", @@ -10015,18 +8526,14 @@ "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true }, "etag": { "version": "1.8.1", @@ -10039,12 +8546,6 @@ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, "events": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", @@ -10138,11 +8639,6 @@ } } }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -10390,7 +8886,8 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "fast-deep-equal": { "version": "3.1.3", @@ -10465,27 +8962,15 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "requires": { - "reusify": "^1.0.4" - } - }, "fault": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", @@ -10878,7 +9363,8 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "fork-ts-checker-webpack-plugin": { "version": "4.1.6", @@ -10964,31 +9450,12 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -11023,18 +9490,6 @@ "dev": true, "optional": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -11086,24 +9541,6 @@ "wide-align": "^1.1.0" } }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "generic-names": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", - "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - } - }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", @@ -11116,12 +9553,6 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -11141,6 +9572,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -11199,6 +9631,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -11286,17 +9719,6 @@ } } }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, "good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", @@ -11310,7 +9732,8 @@ "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true }, "growly": { "version": "1.3.0", @@ -11337,23 +9760,19 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" } }, - "harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -11514,12 +9933,6 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, "highlight.js": { "version": "9.15.10", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", @@ -11579,24 +9992,6 @@ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, "html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", @@ -11710,6 +10105,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -11736,12 +10132,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, "icss-utils": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", @@ -11751,15 +10141,6 @@ "postcss": "^7.0.14" } }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dev": true, - "requires": { - "harmony-reflect": "^1.4.6" - } - }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -11849,12 +10230,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true - }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -12049,15 +10424,6 @@ "@formatjs/intl-numberformat": "^4.2.11" } }, - "into-stream": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", - "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -12079,12 +10445,6 @@ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -12163,20 +10523,6 @@ "ci-info": "^2.0.0" } }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -12249,12 +10595,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { @@ -12282,6 +10623,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -12298,12 +10640,6 @@ "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", "dev": true }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -12324,12 +10660,6 @@ } } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -12354,32 +10684,6 @@ "path-is-inside": "^1.0.2" } }, - "is-plain-object": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", - "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", - "dev": true, - "requires": { - "isobject": "^4.0.0" - } - }, - "is-reference": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.0.tgz", - "integrity": "sha512-ZVxq+5TkOx6GQdnoMm2aRdCKADdcrOWXLGzGT+vIA8DMpqEJaRk5AL1bS80zJ2bjHunVmjdzfCt0e4BymIEqKQ==", - "dev": true, - "requires": { - "@types/estree": "0.0.44" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.44", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz", - "integrity": "sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g==", - "dev": true - } - } - }, "is-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", @@ -12389,12 +10693,6 @@ "has-symbols": "^1.0.1" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", @@ -12418,15 +10716,6 @@ "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -12439,12 +10728,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-windows": { @@ -12504,7 +10788,8 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "istanbul-lib-coverage": { "version": "2.0.5", @@ -12720,121 +11005,6 @@ } } }, - "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "jest-docblock": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", @@ -13042,115 +11212,6 @@ "pretty-format": "^24.9.0" } }, - "jest-matcher-utils": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", - "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "jest-message-util": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", @@ -13502,12 +11563,6 @@ "resolved": "https://registry.npmjs.org/joi-objectid/-/joi-objectid-2.0.0.tgz", "integrity": "sha1-VlSVc6Zrp5Xc9rniJt5fOy027Do=" }, - "js-base64": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz", - "integrity": "sha512-1hgLrLIrmCgZG+ID3VoLNLOSwjGnoZa8tyrUdEteMeIzsT6PH7PMLyUvbDwzNE56P3PNxyvuIOx4Uh2E5rzQIw==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -13526,7 +11581,8 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true }, "jsdom": { "version": "11.12.0", @@ -13585,12 +11641,14 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -13601,7 +11659,8 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "json5": { "version": "2.1.3", @@ -13625,6 +11684,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -13705,6 +11765,7 @@ "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" @@ -13821,35 +11882,17 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -13877,16 +11920,6 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lower-case": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", @@ -13915,15 +11948,6 @@ "yallist": "^3.0.2" } }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -13934,12 +11958,6 @@ "semver": "^5.6.0" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -13955,12 +11973,6 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, "map-or-similar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", @@ -14039,205 +12051,72 @@ "readable-stream": "^2.0.1" } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" }, "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "is-buffer": "^1.1.5" } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - } - } - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" } @@ -14246,6 +12125,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -14253,12 +12133,14 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -14356,7 +12238,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minipass": { "version": "3.1.3", @@ -14496,6 +12379,7 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { "minimist": "^1.2.5" } @@ -14524,15 +12408,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "multistream": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", - "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.5" - } - }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -14543,7 +12418,8 @@ "version": "2.14.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true + "dev": true, + "optional": true }, "nanomatch": { "version": "1.2.13", @@ -14619,34 +12495,6 @@ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", "dev": true }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -14717,93 +12565,6 @@ "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", "dev": true }, - "node-sass": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -14879,7 +12640,8 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true }, "object-assign": { "version": "4.1.1", @@ -15093,6 +12855,7 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -15108,26 +12871,11 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "overlayscrollbars": { "version": "1.13.0", @@ -15150,11 +12898,6 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -15182,31 +12925,12 @@ "aggregate-error": "^3.0.0" } }, - "p-queue": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz", - "integrity": "sha512-X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "p-timeout": "^3.1.0" - } - }, "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", "dev": true }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -15377,7 +13101,8 @@ "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==" + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true }, "path-to-regexp": { "version": "0.1.7", @@ -15388,7 +13113,8 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true }, "pbkdf2": { "version": "3.1.1", @@ -15406,12 +13132,14 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true }, "pify": { "version": "4.0.1", @@ -15443,211 +13171,22 @@ "node-modules-regexp": "^1.0.0" } }, - "pkg": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-4.4.9.tgz", - "integrity": "sha512-FK4GqHtcCY2PPPVaKViU0NyRzpo6gCS7tPKN5b7AkElqjAOCH1bsRKgohEnxThr6DWfTGByGqba2YHGR/BqbmA==", + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, "requires": { - "@babel/parser": "^7.9.4", - "@babel/runtime": "^7.9.2", - "chalk": "^3.0.0", - "escodegen": "^1.14.1", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "into-stream": "^5.1.1", - "minimist": "^1.2.5", - "multistream": "^2.1.1", - "pkg-fetch": "^2.6.9", - "progress": "^2.0.3", - "resolve": "^1.15.1", - "stream-meter": "^1.0.4" + "find-up": "^3.0.0" }, "dependencies": { - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "chalk": { + "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, - "pkg-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-2.6.9.tgz", - "integrity": "sha512-EnVR8LRILXBvaNP+wJOSY02c3+qDDfyEyR+aqAHLhcc9PBnbxFT9UZ1+If49goPQzQPn26TzF//fc6KXZ0aXEg==", - "requires": { - "@babel/runtime": "^7.9.2", - "byline": "^5.0.0", - "chalk": "^3.0.0", - "expand-template": "^2.0.3", - "fs-extra": "^8.1.0", - "minimist": "^1.2.5", - "progress": "^2.0.3", - "request": "^2.88.0", - "request-progress": "^3.0.0", - "semver": "^6.3.0", - "unique-temp-dir": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" + "locate-path": "^3.0.0" } } } @@ -15736,92 +13275,6 @@ } } }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, "postcss-flexbugs-fixes": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", @@ -15893,151 +13346,6 @@ "schema-utils": "^1.0.0" } }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-2.0.0.tgz", - "integrity": "sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw==", - "dev": true, - "requires": { - "css-modules-loader-core": "^1.1.0", - "generic-names": "^2.0.1", - "lodash.camelcase": "^4.3.0", - "postcss": "^7.0.1", - "string-hash": "^1.1.1" - } - }, "postcss-modules-extract-imports": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", @@ -16079,266 +13387,15 @@ "postcss": "^7.0.6" } }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", "dev": true, "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-value-parser": { @@ -16350,7 +13407,8 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true }, "prettier": { "version": "2.0.5", @@ -16423,7 +13481,8 @@ "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true }, "promise": { "version": "7.3.1", @@ -16463,12 +13522,6 @@ "function-bind": "^1.1.1" } }, - "promise.series": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", - "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", - "dev": true - }, "prompts": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", @@ -16514,16 +13567,11 @@ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true }, "public-encrypt": { "version": "4.0.3", @@ -16583,7 +13631,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "q": { "version": "1.5.1", @@ -16608,11 +13657,6 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, - "ramda": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz", - "integrity": "sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17461,16 +14505,6 @@ "minimatch": "3.0.4" } }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, "refractor": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz", @@ -17511,7 +14545,8 @@ "regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true }, "regenerator-transform": { "version": "0.14.4", @@ -17628,19 +14663,11 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -17667,18 +14694,11 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true } } }, - "request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", - "requires": { - "throttleit": "^1.0.0" - } - }, "request-promise-core": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", @@ -17715,6 +14735,7 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -17731,363 +14752,98 @@ "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "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" - } - }, - "rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", - "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - }, - "dependencies": { - "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", - "dev": true - } - } - }, - "rollup-plugin-copy": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.3.0.tgz", - "integrity": "sha512-euDjCUSBXZa06nqnwCNADbkAcYDfzwowfZQkto9K/TFhiH+QG7I4PUsEMwM9tDgomGWJc//z7KLW8t+tZwxADA==", - "dev": true, - "requires": { - "@types/fs-extra": "^8.0.1", - "colorette": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "10.0.1", - "is-plain-object": "^3.0.0" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "rollup-plugin-peer-deps-external": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.2.tgz", - "integrity": "sha512-XcHH4UW9exRTAf73d8rk2dw2UgF//cWbilhRI4Ni/n+t0zA1eBtohKyJROn0fxa4/+WZ5R3onAyIDiwRQL+59A==", - "dev": true - }, - "rollup-plugin-postcss": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.2.tgz", - "integrity": "sha512-29ocL0CqjLj9sUghTG64ZwFxwbo2d0WyOTVtqPg6SEMZyFmKke9TClBf4/CcdFaWHqS+YZGsUpq3mzIBSYrw+A==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "concat-with-sourcemaps": "^1.1.0", - "cssnano": "^4.1.10", - "import-cwd": "^3.0.0", - "p-queue": "^6.3.0", - "pify": "^5.0.0", - "postcss": "^7.0.27", - "postcss-load-config": "^2.1.0", - "postcss-modules": "^2.0.0", - "promise.series": "^0.2.0", - "resolve": "^1.16.1", - "rollup-pluginutils": "^2.8.2", - "safe-identifier": "^0.4.1", - "style-inject": "^0.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "requires": { - "import-from": "^3.0.0" - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true } } }, - "rollup-plugin-typescript2": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.1.tgz", - "integrity": "sha512-RJl77Bbj1EunAQDC3dK/O2HWuSUX3oJbRGzyLoS5o9W4Hs1Nix3Gavqj1Lzs5Y6Ff4H2xXfmZ1WWUQCYocSbzQ==", + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { - "@rollup/pluginutils": "^3.0.8", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.15.1", - "tslib": "1.11.2" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" }, "dependencies": { - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, - "tslib": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", - "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", - "dev": true + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } } } }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "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" } }, "rsvp": { @@ -18102,11 +14858,6 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -18130,12 +14881,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safe-identifier": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.1.tgz", - "integrity": "sha512-73tOz5TXsq3apuCc3vC8c9QRhhdNZGiBhHmPPjqpH4TO5oCDqk8UIsDcSs/RG6dYcFAkOOva0pqHS3u7hh7XXA==", - "dev": true - }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", @@ -18209,85 +14954,6 @@ } } }, - "sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - } - }, - "sass-loader": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", - "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.6.1", - "semver": "^6.3.0" - }, - "dependencies": { - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - } - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -18315,27 +14981,6 @@ "ajv-keywords": "^3.1.0" } }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, "select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -18610,23 +15255,6 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -18898,12 +15526,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, "space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", @@ -18961,6 +15583,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -19021,15 +15644,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -19075,26 +15689,12 @@ "xtend": "^4.0.0" } }, - "stream-meter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=", - "requires": { - "readable-stream": "^2.1.4" - } - }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", - "dev": true - }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", @@ -19231,12 +15831,6 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "style-inject": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", - "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", - "dev": true - }, "style-loader": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", @@ -19289,30 +15883,6 @@ "supports-color": "^5.5.0" } }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, "superagent": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", @@ -19518,17 +16088,6 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, "telejson": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", @@ -19746,11 +16305,6 @@ "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==", "dev": true }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=" - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -19776,12 +16330,6 @@ "setimmediate": "^1.0.4" } }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, "tiny-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", @@ -19910,6 +16458,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -19924,21 +16473,6 @@ "punycode": "^2.1.0" } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, "ts-dedent": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz", @@ -19951,41 +16485,6 @@ "integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==", "dev": true }, - "ts-jest": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", - "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "mkdirp": "0.x", - "resolve": "1.x", - "semver": "^5.5", - "yargs-parser": "10.x" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, "ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -20008,6 +16507,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -20015,7 +16515,8 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true }, "type": { "version": "1.2.0", @@ -20027,6 +16528,7 @@ "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" } @@ -20059,12 +16561,6 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "typescript": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", - "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", - "dev": true - }, "ua-parser-js": { "version": "0.7.21", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", @@ -20075,11 +16571,6 @@ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, - "uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" - }, "unfetch": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz", @@ -20132,12 +16623,6 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -20156,21 +16641,6 @@ "imurmurhash": "^0.1.4" } }, - "unique-temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", - "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", - "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", - "uid2": "0.0.3" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -20240,6 +16710,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -20410,16 +16881,11 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -20945,7 +17411,8 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true }, "worker-farm": { "version": "1.7.0", From cde15c26543d1cdf6db63d03906c1a3d780fbd08 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 20:13:26 +0700 Subject: [PATCH 060/740] Better import of lodash function --- src/UiKitProvider/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UiKitProvider/index.js b/src/UiKitProvider/index.js index f9b9f67b0..b439293ab 100644 --- a/src/UiKitProvider/index.js +++ b/src/UiKitProvider/index.js @@ -1,5 +1,5 @@ import React, { useContext, useMemo } from 'react'; -import { merge } from 'lodash'; +import merge from 'lodash/merge'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; From bc093c6fc7671a6a8b4a5c27c226b83304dec0af Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 20:20:08 +0700 Subject: [PATCH 061/740] Setup Eko React eslint rules with auto-linting --- .eslintignore | 3 + .eslintrc | 8 +- .npmignore | 4 +- package-lock.json | 1521 ++++++++++++++++++++++++++++++++++++--------- package.json | 35 +- 5 files changed, 1278 insertions(+), 293 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..8b05d9f25 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +node_modules/ +storybook-build/ +build/ \ No newline at end of file diff --git a/.eslintrc b/.eslintrc index b496dd362..b1971c7f2 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,10 +1,4 @@ { "parser": "babel-eslint", - "extends": ["eko/react"], - "settings": { - "import/resolver": "babel-plugin-root-import", - }, - "env": { - "jest": true, - }, + "extends": ["eko/react"] } diff --git a/.npmignore b/.npmignore index e1d7db956..e97e93009 100644 --- a/.npmignore +++ b/.npmignore @@ -5,7 +5,9 @@ util .babelrc .env .npmrc -jest.config.js +.eslintrc +.eslintignore +.prettierrc webpack.config.js build/report.html CONTRIBUTE.md diff --git a/package-lock.json b/package-lock.json index 424d89ce4..7cc4f4c9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2983,6 +2983,12 @@ "highlight.js": "~9.15.0" } }, + "prettier": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", + "integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", + "dev": true + }, "react-syntax-highlighter": { "version": "12.2.1", "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz", @@ -3916,6 +3922,12 @@ "json5": "^2.1.2" } }, + "prettier": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", + "integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", + "dev": true + }, "telejson": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", @@ -5057,6 +5069,24 @@ "sprintf-js": "~1.0.2" } }, + "aria-query": { + "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" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -5242,6 +5272,12 @@ "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", "dev": true }, + "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 + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -5329,6 +5365,12 @@ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -5373,6 +5415,20 @@ } } }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, "babel-helper-evaluate-path": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", @@ -6725,6 +6781,98 @@ } } }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -6908,6 +7056,12 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", @@ -6946,6 +7100,12 @@ "typedarray": "^0.0.6" } }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "dev": true + }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", @@ -6964,6 +7124,12 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -7343,6 +7509,12 @@ "type": "^1.0.1" } }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -8220,23 +8392,22 @@ } }, "eslint": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz", - "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.2.0", - "esquery": "^1.2.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", @@ -8245,76 +8416,32 @@ "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", + "levn": "^0.3.0", + "lodash": "^4.17.14", "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.8.3", "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "eslint-scope": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", @@ -8334,118 +8461,385 @@ "type-fest": "^0.8.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "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 }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "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": { - "isexe": "^2.0.0" + "ansi-regex": "^4.1.0" } } } }, - "eslint-config-eko": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-eko/-/eslint-config-eko-2.0.0.tgz", - "integrity": "sha512-RAFzqZUU48Hl1ASdrPW47XewFlvQ8VE1rFD1FHmARbrChndeLNk3BQ4Rl5WgjKbumLfugeMqwN0QNm47I4/6nw==", - "dev": true + "eslint-config-airbnb": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz", + "integrity": "sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^14.0.0", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-airbnb-base": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz", + "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.7", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-eko": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-eko/-/eslint-config-eko-2.0.0.tgz", + "integrity": "sha512-RAFzqZUU48Hl1ASdrPW47XewFlvQ8VE1rFD1FHmARbrChndeLNk3BQ4Rl5WgjKbumLfugeMqwN0QNm47I4/6nw==", + "dev": true + }, + "eslint-config-prettier": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.9.0.tgz", + "integrity": "sha512-k4E14HBtcLv0uqThaI6I/n1LEqROp8XaPu6SO9Z32u5NlGRC07Enu1Bh2KEFw4FNHbekH8yzbIU9kUGxbiGmCA==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "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" + } + }, + "find-up": { + "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" + } + }, + "locate-path": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "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" + } + }, + "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 + }, + "pkg-dir": { + "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" + } + } + } + }, + "eslint-plugin-eslint-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.3.0.tgz", + "integrity": "sha512-xER9XjfTLrAgoUzPguPKoreDGtXt2vUnwqAqdElNrkcSbl5K1rGtSOmhgbiqCb7UN4spnjNhIZplHMNWY6Kz/w==", + "dev": true + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "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" + } + }, + "doctrine": { + "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" + } + }, + "find-up": { + "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" + } + }, + "load-json-file": { + "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", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "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" + } + }, + "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 + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "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" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "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", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "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" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "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", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" + } + }, + "eslint-plugin-prettier": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", + "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-react": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.17.0.tgz", + "integrity": "sha512-ODB7yg6lxhBVMeiH1c7E95FLD4E/TwmFjltiU+ethv7KPdCwgiFuOZg9zNRHyufStTDLl/dEFqI2Q1VPmCd78A==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "eslint-plugin-eslint-plugin": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.3", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.1", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.13.1" + }, + "dependencies": { + "doctrine": { + "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" + } + } + } + }, + "eslint-plugin-react-hooks": { + "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==", + "dev": true }, "eslint-scope": { "version": "4.0.3", @@ -8458,9 +8852,9 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -8473,14 +8867,14 @@ "dev": true }, "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^7.1.1", "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^1.1.0" }, "dependencies": { "acorn": { @@ -8895,6 +9289,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "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 + }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -9263,6 +9663,15 @@ } } }, + "find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dev": true, + "requires": { + "semver-regex": "^2.0.0" + } + }, "findup-sync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", @@ -9553,6 +9962,18 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "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 + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -10123,29 +10544,120 @@ "resolved": "https://registry.npmjs.org/human-readable-numbers/-/human-readable-numbers-0.9.5.tgz", "integrity": "sha512-VC1uYLm7FR+4UkLaQdXPLodz7xTVLBte3X6iMCYK/uPJywoHyEZfR40+kCN4YqYd+FNCPJAJNYv2CSMvAprgsQ==" }, - "iconv-lite": { - "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" - } + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "husky": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", + "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", "dev": true, "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^6.0.0", + "find-versions": "^3.2.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "iconv-lite": { + "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" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true }, "iferr": { "version": "0.1.5", @@ -10660,6 +11172,12 @@ } } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -10693,6 +11211,12 @@ "has-symbols": "^1.0.1" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", @@ -11692,6 +12216,16 @@ "verror": "1.10.0" } }, + "jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -11707,100 +12241,353 @@ "graceful-fs": "^4.1.9" } }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazy-universal-dotenv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", - "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazy-universal-dotenv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", + "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.0", + "app-root-dir": "^1.0.2", + "core-js": "^3.0.4", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0" + }, + "dependencies": { + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true + } + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "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" + } + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, + "line-height": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", + "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=", + "requires": { + "computed-style": "~0.1.3" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lint-staged": { + "version": "10.2.13", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.13.tgz", + "integrity": "sha512-conwlukNV6aL9SiMWjFtDp5exeDnTMekdNPDZsKGnpfQuHcO0E3L3Bbf58lcR+M7vk6LpCilxDAVks/DDVBYlA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "commander": "^6.0.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.1.1", + "dedent": "^0.7.0", + "enquirer": "^2.3.6", + "execa": "^4.0.3", + "listr2": "^2.6.0", + "log-symbols": "^4.0.0", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "^3.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", + "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "listr2": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.6.2.tgz", + "integrity": "sha512-6x6pKEMs8DSIpA/tixiYY2m/GcbgMplMVmhQAaLFxEtNSKLeWTGjtmU57xvv6QCm2XcqzyNXL/cTSVf4IChCRA==", "dev": true, "requires": { - "@babel/runtime": "^7.5.0", - "app-root-dir": "^1.0.2", - "core-js": "^3.0.4", - "dotenv": "^8.0.0", - "dotenv-expand": "^5.1.0" + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "figures": "^3.2.0", + "indent-string": "^4.0.0", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.2", + "through": "^2.3.8" }, "dependencies": { - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "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" - } - }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "requires": { - "immediate": "~3.0.5" - } - }, - "line-height": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", - "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=", - "requires": { - "computed-style": "~0.1.3" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -11902,6 +12689,111 @@ "chalk": "^2.0.1" } }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "loglevelnext": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", @@ -12851,6 +13743,12 @@ } } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -13211,6 +14109,15 @@ } } }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -13411,11 +14318,20 @@ "dev": true }, "prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true }, + "prettier-linter-helpers": { + "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" + } + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", @@ -14579,9 +15495,9 @@ } }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "regexpu-core": { @@ -14994,6 +15910,18 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -15695,6 +16623,12 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", @@ -15795,6 +16729,17 @@ "safe-buffer": "~5.1.0" } }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -15816,6 +16761,12 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -17350,6 +18301,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/package.json b/package.json index 63df10d97..c348efd0b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "storybook": "start-storybook -p 6006", "storybook:build": "build-storybook --output-dir ./storybook-build", "generate": "node ./util/create-component", - "prepublishOnly": "npm run build" + "prepublishOnly": "npm run build", + "lint": "eslint .", + "lint:fix": "eslint . --fix" }, "peerDependencies": { "react": ">=16.8.0", @@ -28,11 +30,23 @@ "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", "@storybook/theming": "^6.0.21", + "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", - "eslint": "^7.7.0", - "eslint-config-eko": "^2.0.0", + "eslint": "~6.8.0", + "eslint-config-airbnb": "~18.0.1", + "eslint-config-airbnb-base": "~14.0.0", + "eslint-config-eko": "~2.0.0", + "eslint-config-prettier": "~6.9.0", + "eslint-plugin-import": "~2.20.2", + "eslint-plugin-jsx-a11y": "~6.2.3", + "eslint-plugin-prettier": "~3.1.4", + "eslint-plugin-react": "~7.17.0", + "eslint-plugin-react-hooks": "~1.7.0", + "husky": "^4.2.5", "jest": "^24.9.0", + "lint-staged": "^10.2.13", + "prettier": "~1.19.1", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router-dom": "^5.2.0", @@ -65,5 +79,20 @@ "react-toggle": "^4.1.1", "react-truncate-markup": "^5.0.0", "recoil": "0.0.10" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.{js,jsx}": [ + "eslint --fix", + "git add --force" + ], + "*.{json,md}": [ + "prettier --write", + "git add --force" + ] } } From ea38c5fab3afbd1cacf969b1e1801519b8365760 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 20:58:23 +0700 Subject: [PATCH 062/740] Allow React fragment shorthand --- .eslintrc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index b1971c7f2..4c7f7a5b2 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,4 +1,7 @@ { "parser": "babel-eslint", - "extends": ["eko/react"] + "extends": ["eko/react"], + "rules": { + "react/jsx-fragments": 0 + } } From 6bef0a522a8ef1f673da2d53403358883b99ac21 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 20:59:08 +0700 Subject: [PATCH 063/740] Run auto-lint --- src/ChatHome/ChatHome.stories.js | 2 +- src/Comment/styles.js | 10 +- src/CommentComposeBar/styles.js | 2 +- src/Community/Community.stories.js | 4 +- src/Community/NewsFeed.js | 32 ++- src/Community/UserFeed.js | 34 ++- src/CommunityForm/UserSelector.js | 9 +- src/CommunityForm/index.js | 222 +++++++++--------- src/CommunityInformation/styles.js | 5 +- src/ExploreHome/CommunitySearch.js | 11 +- src/ExploreHome/styles.js | 18 +- src/Files/File.js | 17 +- src/Files/styles.js | 4 +- src/ImageGallery/index.js | 21 +- src/Images/Image.js | 17 +- src/Images/styles.js | 2 +- src/Layout/Layout.stories.js | 8 +- src/Layout/index.js | 21 +- src/Layout/styles.js | 6 +- src/Message/IncomingMessage.js | 2 +- src/Message/Options.js | 15 +- src/Message/OutgoingMessage.js | 2 +- src/Message/styles.js | 2 +- src/Post/Post.stories.js | 2 +- src/PostCompose/AuthorSelector.js | 2 +- src/SideMenu/MenuTab.js | 8 +- src/SideMenu/index.js | 14 +- src/SideMenu/styles.js | 5 +- src/UiKitProvider/Localisation/index.js | 3 +- src/UiKitProvider/index.js | 35 ++- src/commonComponents/Button/Button.stories.js | 2 +- src/commonComponents/Tab/Tab.stories.js | 2 +- util/create-component.js | 23 +- util/templates/component.stories.js | 4 +- util/templates/component.types.js | 4 +- 35 files changed, 263 insertions(+), 307 deletions(-) diff --git a/src/ChatHome/ChatHome.stories.js b/src/ChatHome/ChatHome.stories.js index 399f2083e..869f7a275 100644 --- a/src/ChatHome/ChatHome.stories.js +++ b/src/ChatHome/ChatHome.stories.js @@ -1,5 +1,5 @@ import React, { useEffect } from 'react'; -import ChatHome from './index'; +import ChatHome from '.'; import Chat from '../Chat'; import Message from '../Message'; import MessageList from '../MessageList'; diff --git a/src/Comment/styles.js b/src/Comment/styles.js index b3494b364..8c095b0ec 100644 --- a/src/Comment/styles.js +++ b/src/Comment/styles.js @@ -28,7 +28,7 @@ export const CommentBlock = styled.div` const encodeHexColor = hex => hex.replace('#', '%23'); -//svg embeded in order to make theamed stroke color +// svg embeded in order to make theamed stroke color export const CommentContainer = styled.div` display: flex; color: black; @@ -37,7 +37,7 @@ export const CommentContainer = styled.div` background-position: 0 20px; background-repeat: no-repeat; background-image: url('data:image/svg+xml;utf8, - + '); } `; @@ -49,13 +49,13 @@ export const ReplyContainer = styled.div` &:last-child { background-repeat: no-repeat; background-image: url('data:image/svg+xml;utf8, - + '); } :not(:last-child) { background-repeat: repeat-y; background-image: url('data:image/svg+xml;utf8, - + '); } `; @@ -65,7 +65,7 @@ export const CommentComposeBar = styled(UICommentComposeBar)` padding: 8px 0 16px; background-repeat: no-repeat; background-image: url('data:image/svg+xml;utf8, - + '); `; diff --git a/src/CommentComposeBar/styles.js b/src/CommentComposeBar/styles.js index afa5ada7f..191753eba 100644 --- a/src/CommentComposeBar/styles.js +++ b/src/CommentComposeBar/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; -import { PrimaryButton } from '../commonComponents/Button'; import TextareaAutosize from 'react-autosize-textarea'; +import { PrimaryButton } from '../commonComponents/Button'; import UIAvatar from '../Avatar'; diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index 6385e6548..062748358 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -11,14 +11,14 @@ import { import { useCommunitiesMock } from '../mock'; -import FeedLayout from '../FeedLayout/'; +import FeedLayout from '../FeedLayout'; import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; import UserFeed from './UserFeed'; import NewsFeed from './NewsFeed'; import ExploreHome from '../ExploreHome'; import CategoryPage from '../ExploreHome/CategoryPage'; -import CommunityFeed from './index'; +import CommunityFeed from '.'; import CommunityCreationModal from '../CommunityCreationModal'; export default { diff --git a/src/Community/NewsFeed.js b/src/Community/NewsFeed.js index fe4eed7d0..67ffb82e1 100644 --- a/src/Community/NewsFeed.js +++ b/src/Community/NewsFeed.js @@ -15,23 +15,21 @@ const NewsFeed = ({ client, onPostAuthorClick }) => { const myCommunities = getMyCommunities(); return ( - <> - - - - {posts.length === 0 && } - {posts.map(post => ( - editPost(updatedPost)} - onDelete={() => removePost(post.postId)} - /> - ))} - - - + + + + {posts.length === 0 && } + {posts.map(post => ( + editPost(updatedPost)} + onDelete={() => removePost(post.postId)} + /> + ))} + + ); }; diff --git a/src/Community/UserFeed.js b/src/Community/UserFeed.js index e94a52bc6..37158da61 100644 --- a/src/Community/UserFeed.js +++ b/src/Community/UserFeed.js @@ -14,24 +14,22 @@ const UserFeed = ({ client }) => { const { posts, addPost, removePost, editPost } = usePostsMock(testUser.id); return ( - <> - - - - - {posts.length === 0 && } - {posts.map(post => ( - editPost(updatedPost)} - onDelete={() => removePost(post.postId)} - /> - ))} - - {/* */} - - + + + + + {posts.length === 0 && } + {posts.map(post => ( + editPost(updatedPost)} + onDelete={() => removePost(post.postId)} + /> + ))} + + {/* */} + ); }; diff --git a/src/CommunityForm/UserSelector.js b/src/CommunityForm/UserSelector.js index 7feb0fa04..1f258d2db 100644 --- a/src/CommunityForm/UserSelector.js +++ b/src/CommunityForm/UserSelector.js @@ -56,12 +56,9 @@ const UserSelector = ({ value: userIds, onChange }) => { const close = () => setIsOpen(false); // open selector list each time query changes - useRunOnUpdate( - () => { - open(); - }, - [query], - ); + useRunOnUpdate(() => { + open(); + }, [query]); const selectedUsers = userIds.map(id => testUsers.find(({ userId }) => id === userId)); diff --git a/src/CommunityForm/index.js b/src/CommunityForm/index.js index 75b769145..c46b62dc9 100644 --- a/src/CommunityForm/index.js +++ b/src/CommunityForm/index.js @@ -103,121 +103,117 @@ const CommunityForm = ({ }; return ( - <> -
- - - - - - - {name.length}/30 - - - - - - - - {description.length}/180 - - - - - - - - - - - -
- + + + + + + + + {name.length}/30 + + + + + + + + {description.length}/180 + + + + + + + + + + + +
+ - - Choose to allow Only Admins to create posts in this community. - -
- } - control={control} - /> -
-
- - - - - -
- Public - - Anyone can join, view, and search the posts 
in this page. - -
- -
- - - - -
- Private - - Onply members invited by the moderators can join, view, and search the posts in - this page. - -
- -
+ + Choose to allow Only Admins to create posts in this community. + +
+ } + control={control} + /> +
+
+ + + + + +
+ Public + Anyone can join, view, and search the posts 
in this page. +
+ +
+ + + + +
+ Private + + Onply members invited by the moderators can join, view, and search the posts in this + page. + +
+ +
+
+ {permission === PRIVATE && ( + + + + + + - {permission === PRIVATE && ( - - - - - - - - )} -
-
- {!edit && ( - - )} - {edit ? 'Save' : 'Create'} -
-
- + )} + +
+ {!edit && ( + + )} + {edit ? 'Save' : 'Create'} +
+ ); }; diff --git a/src/CommunityInformation/styles.js b/src/CommunityInformation/styles.js index 9fa81bdf7..0f4f4d1bd 100644 --- a/src/CommunityInformation/styles.js +++ b/src/CommunityInformation/styles.js @@ -1,12 +1,11 @@ import React from 'react'; import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; import { SecondaryButton, PrimaryButton } from '../commonComponents/Button'; import UIAvatar from '../Avatar'; import UIOptions from '../commonComponents/Options'; -import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; - export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` font-size: 16px; `; diff --git a/src/ExploreHome/CommunitySearch.js b/src/ExploreHome/CommunitySearch.js index 021501600..14126605a 100644 --- a/src/ExploreHome/CommunitySearch.js +++ b/src/ExploreHome/CommunitySearch.js @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import Popover from '../commonComponents/Popover/'; +import Popover from '../commonComponents/Popover'; import { MenuItem } from '../commonComponents/Menu'; import { getCommunities, getCategories } from '../mock'; @@ -34,12 +34,9 @@ const CommunitySearch = ({ onSearchResultCommunityClick }) => { const close = () => setIsOpen(false); // open if query not empty - useEffect( - () => { - query.length && open(); - }, - [query], - ); + useEffect(() => { + query.length && open(); + }, [query]); const communities = getCommunities(); diff --git a/src/ExploreHome/styles.js b/src/ExploreHome/styles.js index d7ad9ee56..cbaf5a96e 100644 --- a/src/ExploreHome/styles.js +++ b/src/ExploreHome/styles.js @@ -1,9 +1,4 @@ import styled from 'styled-components'; -import Button from '../commonComponents/Button'; -import UIAvatar from '../Avatar'; -import Menu from '../commonComponents/Menu'; -import { SecondaryButton } from '../commonComponents/Button'; - import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faSearch, @@ -11,6 +6,9 @@ import { faChevronLeft, faChevronRight, } from '@fortawesome/pro-regular-svg-icons'; +import Button, { SecondaryButton } from '../commonComponents/Button'; +import UIAvatar from '../Avatar'; +import Menu from '../commonComponents/Menu'; export const SearchIcon = styled(FaIcon).attrs({ icon: faSearch })` color: #898e9e; @@ -118,13 +116,13 @@ export const Blocks = styled.div` export const Block = styled.div` margin-top: 20px; background: #fff; - border: 1px solid${({ theme }) => theme.color.base4}; + border: 1px solid ${({ theme }) => theme.color.base4}; border-radius: 4px; `; export const BlockHeader = styled.div` padding: 16px 16px 12px; - border-bottom: 1px solid${({ theme }) => theme.color.base4}; + border-bottom: 1px solid ${({ theme }) => theme.color.base4}; ${({ theme }) => theme.typography.title} `; @@ -132,7 +130,7 @@ export const CommunityItem = styled.div` display: flex; flex-direction: column; justify-content: space-between; - border: 1px solid${({ theme }) => theme.color.base4}; + border: 1px solid ${({ theme }) => theme.color.base4}; border-radius: 4px; padding: 16px; overflow: hidden; @@ -187,7 +185,7 @@ export const CommunityInfo = styled.div` justify-content: space-between; padding-bottom: 12px; cursor: pointer; - border-bottom: 1px solid${({ theme }) => theme.color.base4}; + border-bottom: 1px solid ${({ theme }) => theme.color.base4}; `; export const TrendingCommunityContainer = styled.div` @@ -216,7 +214,7 @@ export const BackButton = styled(SecondaryButton)` `; export const ViewAllButton = styled(SecondaryButton)` - border-top: 1px solid${({ theme }) => theme.color.base4}; + border-top: 1px solid ${({ theme }) => theme.color.base4}; padding: 18px; width: 100%; border-radius: 0; diff --git a/src/Files/File.js b/src/Files/File.js index f8a36b422..9152e7711 100644 --- a/src/Files/File.js +++ b/src/Files/File.js @@ -9,16 +9,13 @@ import { FileContainer, Content, FileName, FileSize, ProgressBar, RemoveIcon } f const File = ({ editing, file, onRemove }) => { // simulate progress animation const [progress, setProgress] = useState(0); - useEffect( - () => { - if (!editing || progress >= 100) return; - const timeout = setTimeout(() => { - setProgress(progress + 0.5); - }, 50); - return () => clearTimeout(timeout); - }, - [progress], - ); + useEffect(() => { + if (!editing || progress >= 100) return; + const timeout = setTimeout(() => { + setProgress(progress + 0.5); + }, 50); + return () => clearTimeout(timeout); + }, [progress]); return ( diff --git a/src/Files/styles.js b/src/Files/styles.js index e2cf6f56d..e296fde80 100644 --- a/src/Files/styles.js +++ b/src/Files/styles.js @@ -17,7 +17,7 @@ export const FilesContainer = styled.div` export const FileContainer = styled.div` position: relative; - border: 1px solid${({ theme }) => theme.color.base4}; + border: 1px solid ${({ theme }) => theme.color.base4}; padding: 8px; border-radius: 4px; :not(:first-child) { @@ -33,7 +33,7 @@ export const Content = styled.div` `; export const ProgressBar = styled.div` - background:${({ theme }) => theme.color.base4}; + background: ${({ theme }) => theme.color.base4}; width: ${({ progress }) => progress}%; position: absolute; left: 0; diff --git a/src/ImageGallery/index.js b/src/ImageGallery/index.js index 43082719c..1ffd4f0fc 100644 --- a/src/ImageGallery/index.js +++ b/src/ImageGallery/index.js @@ -12,18 +12,15 @@ import { } from './styles'; const useKeyboardNavigation = (prev, next, onClose) => { - useEffect( - () => { - const listener = e => { - if (e.key === 'ArrowRight') next(); - if (e.key === 'ArrowLeft') prev(); - if (e.key === 'Escape') onClose(); - }; - document.addEventListener('keydown', listener); - return () => document.removeEventListener('keydown', listener); - }, - [prev, next, onClose], - ); + useEffect(() => { + const listener = e => { + if (e.key === 'ArrowRight') next(); + if (e.key === 'ArrowLeft') prev(); + if (e.key === 'Escape') onClose(); + }; + document.addEventListener('keydown', listener); + return () => document.removeEventListener('keydown', listener); + }, [prev, next, onClose]); }; const ImageGallery = ({ initialImageIndex, images = [], onClose }) => { diff --git a/src/Images/Image.js b/src/Images/Image.js index d0a6d4f6e..048eb43dd 100644 --- a/src/Images/Image.js +++ b/src/Images/Image.js @@ -12,16 +12,13 @@ import { const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { // simulate progress animation const [progress, setProgress] = useState(editing ? 0 : 100); - useEffect( - () => { - if (progress >= 100) return; - const timeout = setTimeout(() => { - setProgress(progress + 0.5); - }, 50); - return () => clearTimeout(timeout); - }, - [progress], - ); + useEffect(() => { + if (progress >= 100) return; + const timeout = setTimeout(() => { + setProgress(progress + 0.5); + }, 50); + return () => clearTimeout(timeout); + }, [progress]); const removeImage = e => { e.stopPropagation(); diff --git a/src/Images/styles.js b/src/Images/styles.js index 9a43cdddd..82544e4fa 100644 --- a/src/Images/styles.js +++ b/src/Images/styles.js @@ -84,7 +84,7 @@ export const ImagesContainer = styled.div` `; export const ProgressBar = styled.div` - background:${({ theme }) => theme.color.base4}; + background: ${({ theme }) => theme.color.base4}; width: ${({ progress }) => 100 - progress}%; position: absolute; right: 0; diff --git a/src/Layout/Layout.stories.js b/src/Layout/Layout.stories.js index 78fba1c37..f40e9f3a0 100644 --- a/src/Layout/Layout.stories.js +++ b/src/Layout/Layout.stories.js @@ -1,9 +1,9 @@ -import React, { useEffect } from "react"; -import Layout from "./index"; -import SideMenu from "../SideMenu"; +import React, { useEffect } from 'react'; +import Layout from '.'; +import SideMenu from '../SideMenu'; export default { - title: "Layout", + title: 'Layout', }; export const headers = () => { diff --git a/src/Layout/index.js b/src/Layout/index.js index f84928baa..2f015c361 100644 --- a/src/Layout/index.js +++ b/src/Layout/index.js @@ -1,18 +1,13 @@ -import React, { useState, useEffect } from "react"; -import { customizableComponent } from "../hoks/customization"; -import { - LayoutHeader, - Username, - DropdownIcon, - DropDownContainer, -} from "./styles"; -import Avatar from "../Avatar"; -import Popover from "../commonComponents/Popover"; -import Menu, { MenuItem } from "../commonComponents/Menu"; +import React, { useState, useEffect } from 'react'; +import { customizableComponent } from '../hoks/customization'; +import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; +import Avatar from '../Avatar'; +import Popover from '../commonComponents/Popover'; +import Menu, { MenuItem } from '../commonComponents/Menu'; const Layout = () => { const [isOpen, setIsOpen] = useState(false); - const username = "Jackies"; + const username = 'Jackies'; return ( @@ -38,4 +33,4 @@ const Layout = () => { ); }; -export default customizableComponent("Layout")(Layout); +export default customizableComponent('Layout')(Layout); diff --git a/src/Layout/styles.js b/src/Layout/styles.js index b16f8ec50..5de9559e7 100644 --- a/src/Layout/styles.js +++ b/src/Layout/styles.js @@ -1,6 +1,6 @@ -import styled from "styled-components"; -import { FontAwesomeIcon as FaIcon } from "@fortawesome/react-fontawesome"; -import { faSortDown } from "@fortawesome/pro-solid-svg-icons"; +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; export const LayoutHeader = styled.div` display: flex; diff --git a/src/Message/IncomingMessage.js b/src/Message/IncomingMessage.js index ec3fae7d0..d0172d4c5 100644 --- a/src/Message/IncomingMessage.js +++ b/src/Message/IncomingMessage.js @@ -1,5 +1,5 @@ import React from 'react'; -import Message from './index'; +import Message from '.'; import { customizableComponent } from '../hoks/customization'; const IncomingMessage = props => ; diff --git a/src/Message/Options.js b/src/Message/Options.js index afe83cca6..3418cb34c 100644 --- a/src/Message/Options.js +++ b/src/Message/Options.js @@ -22,15 +22,12 @@ const Flagging = ({ message: { messageId } = {} }) => { const [isFlaggedByMe, setIsFlaggedByMe] = useState(null); const [flagRepo, setFlagRepo] = useState(null); - useEffect( - () => { - if (!messageId) return; - const flagRepository = new MessageFlagRepository(messageId); - setFlagRepo(flagRepository); - flagRepository.isFlaggedByMe().then(setIsFlaggedByMe); - }, - [messageId], - ); + useEffect(() => { + if (!messageId) return; + const flagRepository = new MessageFlagRepository(messageId); + setFlagRepo(flagRepository); + flagRepository.isFlaggedByMe().then(setIsFlaggedByMe); + }, [messageId]); const flagMessage = messageId => { flagRepo.flag({ messageId }).then(() => { diff --git a/src/Message/OutgoingMessage.js b/src/Message/OutgoingMessage.js index 5d9852fea..c64365d73 100644 --- a/src/Message/OutgoingMessage.js +++ b/src/Message/OutgoingMessage.js @@ -1,5 +1,5 @@ import React from 'react'; -import Message from './index'; +import Message from '.'; import { customizableComponent } from '../hoks/customization'; export default customizableComponent('OutgoingMessage')(Message); diff --git a/src/Message/styles.js b/src/Message/styles.js index 1d243ae3d..169bd9141 100644 --- a/src/Message/styles.js +++ b/src/Message/styles.js @@ -1,10 +1,10 @@ import React from 'react'; import styled from 'styled-components'; -import UiKitAvatar from '../Avatar'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faEllipsisV } from '@fortawesome/pro-solid-svg-icons'; import { faSave, faTrashAlt, faTimes } from '@fortawesome/pro-regular-svg-icons'; +import UiKitAvatar from '../Avatar'; export const SystemMessageContainer = styled.span` opacity: 0.5; diff --git a/src/Post/Post.stories.js b/src/Post/Post.stories.js index 174d767f4..a7c4948f4 100644 --- a/src/Post/Post.stories.js +++ b/src/Post/Post.stories.js @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; -import Post from './index'; +import Post from '.'; import UiKitProvider from '../UiKitProvider'; export default { diff --git a/src/PostCompose/AuthorSelector.js b/src/PostCompose/AuthorSelector.js index 6b6b2a7eb..9d661d7f3 100644 --- a/src/PostCompose/AuthorSelector.js +++ b/src/PostCompose/AuthorSelector.js @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import Popover from '../commonComponents/Popover/'; +import Popover from '../commonComponents/Popover'; import Menu, { MenuItem } from '../commonComponents/Menu'; import { AuthorSelectorContainer, CommunitySeparator, SelectIcon, Avatar } from './styles'; diff --git a/src/SideMenu/MenuTab.js b/src/SideMenu/MenuTab.js index e9bfc3c81..8a8c847fa 100644 --- a/src/SideMenu/MenuTab.js +++ b/src/SideMenu/MenuTab.js @@ -1,6 +1,6 @@ -import React from "react"; -import { customizableComponent } from "../hoks/customization"; -import { MenuTabContainer, MenuName } from "./styles"; +import React from 'react'; +import { customizableComponent } from '../hoks/customization'; +import { MenuTabContainer, MenuName } from './styles'; const MenuTab = ({ icon, name, className, onClick, active }) => { return ( @@ -11,4 +11,4 @@ const MenuTab = ({ icon, name, className, onClick, active }) => { ); }; -export default customizableComponent("MenuTab")(MenuTab); +export default customizableComponent('MenuTab')(MenuTab); diff --git a/src/SideMenu/index.js b/src/SideMenu/index.js index b7e011a38..ec88c2189 100644 --- a/src/SideMenu/index.js +++ b/src/SideMenu/index.js @@ -1,12 +1,12 @@ -import React, { useState } from "react"; -import { customizableComponent } from "../hoks/customization"; -import { SideMenuContainer } from "./styles"; -import communityIcon from "./icons/community.svg"; -import MenuTab from "./MenuTab"; +import React, { useState } from 'react'; +import { customizableComponent } from '../hoks/customization'; +import { SideMenuContainer } from './styles'; +import communityIcon from './icons/community.svg'; +import MenuTab from './MenuTab'; const SideMenu = () => { const [active, setActive] = useState(false); - const Mockup = [{ name: "COMMUNITY", icon: communityIcon }]; + const Mockup = [{ name: 'COMMUNITY', icon: communityIcon }]; return ( {Mockup.map((tab, id) => ( @@ -22,4 +22,4 @@ const SideMenu = () => { ); }; -export default customizableComponent("SideMenu")(SideMenu); +export default customizableComponent('SideMenu')(SideMenu); diff --git a/src/SideMenu/styles.js b/src/SideMenu/styles.js index 4c6702b31..411b2cd50 100644 --- a/src/SideMenu/styles.js +++ b/src/SideMenu/styles.js @@ -1,4 +1,4 @@ -import styled from "styled-components"; +import styled from 'styled-components'; export const SideMenuContainer = styled.div` display: flex; @@ -28,7 +28,6 @@ export const MenuTabContainer = styled.div` width: 100%; height: 64px; cursor: pointer; - ${({ active }) => - active && "border-left: 2px solid #1054DE; background-color: #ebecef;"} + ${({ active }) => active && 'border-left: 2px solid #1054DE; background-color: #ebecef;'} ${({ theme }) => theme.typography.captionBold} `; diff --git a/src/UiKitProvider/Localisation/index.js b/src/UiKitProvider/Localisation/index.js index bd0d7afeb..9446d9fa2 100644 --- a/src/UiKitProvider/Localisation/index.js +++ b/src/UiKitProvider/Localisation/index.js @@ -1,8 +1,7 @@ import React from 'react'; -import { IntlProvider } from 'react-intl'; +import { IntlProvider, FormattedTime } from 'react-intl'; import TimeAgo from 'javascript-time-ago'; import en from 'javascript-time-ago/locale/en'; -import { FormattedTime } from 'react-intl'; TimeAgo.addLocale(en); diff --git a/src/UiKitProvider/index.js b/src/UiKitProvider/index.js index b439293ab..7c8281ab1 100644 --- a/src/UiKitProvider/index.js +++ b/src/UiKitProvider/index.js @@ -9,7 +9,7 @@ import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; import { UIStyles } from './styles'; import GlobalTheme from './GlobalTheme'; -import MockData from '../mock/'; +import MockData from '../mock'; import { ConfirmContainer } from '../commonComponents/Confirm'; import { NotificationsContainer } from '../commonComponents/Notification'; @@ -36,25 +36,22 @@ const UiKitProvider = ({ [customComponentsMap, customComponents], ); - const SDKInfo = useMemo( - () => { - // TODO fix - // initialize only one client - if (!client) { - client = new EkoClient(clientOptions); - // Register Session with EkoClient with userId and display name - client.registerSession({ - userId: 'Web-Test', - displayName: 'Web-Test', - }); - } + const SDKInfo = useMemo(() => { + // TODO fix + // initialize only one client + if (!client) { + client = new EkoClient(clientOptions); + // Register Session with EkoClient with userId and display name + client.registerSession({ + userId: 'Web-Test', + displayName: 'Web-Test', + }); + } - return { - client, - }; - }, - [clientOptions], - ); + return { + client, + }; + }, [clientOptions]); return ( diff --git a/src/commonComponents/Button/Button.stories.js b/src/commonComponents/Button/Button.stories.js index 865141984..49eb53fa5 100644 --- a/src/commonComponents/Button/Button.stories.js +++ b/src/commonComponents/Button/Button.stories.js @@ -1,5 +1,5 @@ import React, { useEffect } from 'react'; -import Button, { PrimaryButton, SecondaryButton } from './index'; +import Button, { PrimaryButton, SecondaryButton } from '.'; export default { title: 'Button', diff --git a/src/commonComponents/Tab/Tab.stories.js b/src/commonComponents/Tab/Tab.stories.js index 2fd9d4cc5..0ee46bf80 100644 --- a/src/commonComponents/Tab/Tab.stories.js +++ b/src/commonComponents/Tab/Tab.stories.js @@ -1,5 +1,5 @@ import React, { useEffect } from 'react'; -import Tab from './index'; +import Tab from '.'; export default { title: 'Tab', diff --git a/util/create-component.js b/util/create-component.js index fb3564602..25f1fb33f 100644 --- a/util/create-component.js +++ b/util/create-component.js @@ -1,15 +1,15 @@ -require("colors"); -const fs = require("fs"); -const templates = require("./templates"); +require('colors'); +const fs = require('fs'); +const templates = require('./templates'); const componentName = process.argv[2]; if (!componentName) { - console.error("Please supply a valid component name".red); + console.error('Please supply a valid component name'.red); process.exit(1); } -console.log("Creating Component Templates with name: " + componentName); +console.log(`Creating Component Templates with name: ${componentName}`); const componentDirectory = `./src/${componentName}`; @@ -20,15 +20,10 @@ if (fs.existsSync(componentDirectory)) { fs.mkdirSync(componentDirectory); -const generatedTemplates = templates.map((template) => template(componentName)); +const generatedTemplates = templates.map(template => template(componentName)); -generatedTemplates.forEach((template) => { - fs.writeFileSync( - `${componentDirectory}/${componentName}${template.extension}`, - template.content - ); +generatedTemplates.forEach(template => { + fs.writeFileSync(`${componentDirectory}/${componentName}${template.extension}`, template.content); }); -console.log( - "Successfully created component under: " + componentDirectory.green -); +console.log(`Successfully created component under: ${componentDirectory.green}`); diff --git a/util/templates/component.stories.js b/util/templates/component.stories.js index b4a3cc0f1..9a09b34ff 100644 --- a/util/templates/component.stories.js +++ b/util/templates/component.stories.js @@ -1,4 +1,4 @@ -module.exports = (componentName) => ({ +module.exports = componentName => ({ content: `// Generated with util/create-component.js import React from "react"; import ${componentName} from "./${componentName}"; @@ -11,5 +11,5 @@ export const WithBar = () => <${componentName} foo="bar" />; export const WithBaz = () => <${componentName} foo="baz" />; `, - extension: `.stories.tsx` + extension: `.stories.tsx`, }); diff --git a/util/templates/component.types.js b/util/templates/component.types.js index a2bf177ea..37d387c0b 100644 --- a/util/templates/component.types.js +++ b/util/templates/component.types.js @@ -1,8 +1,8 @@ -module.exports = (componentName) => ({ +module.exports = componentName => ({ content: `// Generated with util/create-component.js export interface ${componentName}Props { foo: string; } `, - extension: `.types.ts` + extension: `.types.ts`, }); From c397f7619d57588a8580c2677fa5297c7798dc65 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Thu, 3 Sep 2020 12:16:54 +0700 Subject: [PATCH 064/740] add storybook controls --- .storybook/main.js | 4 +- package-lock.json | 223 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 226 insertions(+), 2 deletions(-) diff --git a/.storybook/main.js b/.storybook/main.js index 1c63cd83a..efbbc7432 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,8 +4,8 @@ const webpack = require('webpack'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: ['@storybook/addon-storysource'], - webpackFinal: async config => { + addons: ['@storybook/addon-storysource', '@storybook/addon-controls'], + webpackFinal: async (config) => { config.resolve.extensions.push('.js'); config.plugins.push( diff --git a/package-lock.json b/package-lock.json index 424d89ce4..b2fa0f58a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,6 +2769,229 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-controls": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", + "integrity": "sha512-ksL+BqzWVTezY3u0AeSuQBZdiDzTImfLx1xjmLkPTeFgfVBzHRKN4sqIWHzy1zVCCVL0fAzZ8g3Sgk5iVNs3uw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/node-logger": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/node-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.21.tgz", + "integrity": "sha512-KRBf+Fz7fgtwHdnYt70JTZbcYMZ1pQPtDyqbrFYCjwkbx5GPX5vMOozlxCIj9elseqPIsF8CKgHOW7cFHVyWYw==", + "dev": true, + "requires": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.0.0", + "core-js": "^3.0.1", + "npmlog": "^4.1.2", + "pretty-hrtime": "^1.0.3" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", diff --git a/package.json b/package.json index 63df10d97..9b0476e10 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", + "@storybook/addon-controls": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", From 271cc7c2fed689858540aa879ba2a326701692e7 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Thu, 3 Sep 2020 12:19:17 +0700 Subject: [PATCH 065/740] add storybook actions addon --- .storybook/main.js | 2 +- package-lock.json | 209 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 211 insertions(+), 1 deletion(-) diff --git a/.storybook/main.js b/.storybook/main.js index efbbc7432..f40a87738 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,7 +4,7 @@ const webpack = require('webpack'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: ['@storybook/addon-storysource', '@storybook/addon-controls'], + addons: ['@storybook/addon-storysource', '@storybook/addon-controls', '@storybook/addon-actions'], webpackFinal: async (config) => { config.resolve.extensions.push('.js'); diff --git a/package-lock.json b/package-lock.json index b2fa0f58a..755252d46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,6 +2769,182 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-actions": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", + "integrity": "sha512-9y3ve+3GK1TsxQ5pxDjhB7E/XJXY+WqcSNlOX8Mb+XbS6AAgpFbkZCw1q8CGzyEUclHsQ6UK2+lo+IRGs4TLpA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "polished": "^3.4.4", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-inspector": "^5.0.1", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2", + "uuid": "^8.0.0" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + } + } + }, "@storybook/addon-controls": { "version": "6.0.21", "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", @@ -10809,6 +10985,16 @@ "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true }, + "is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", + "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "dev": true, + "requires": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -10883,6 +11069,12 @@ } } }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -10954,6 +11146,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -14396,6 +14594,17 @@ "prop-types": "^15.5.8" } }, + "react-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", + "integrity": "sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "is-dom": "^1.1.0", + "prop-types": "^15.6.1" + } + }, "react-intl": { "version": "4.7.6", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-4.7.6.tgz", diff --git a/package.json b/package.json index 9b0476e10..fdad7c7cb 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", + "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addons": "^6.0.21", From 7856c4454ee1bd9d14a56080cd40e857c44f1fea Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Thu, 3 Sep 2020 12:20:36 +0700 Subject: [PATCH 066/740] add storybook viewport addon --- .storybook/main.js | 7 ++- package-lock.json | 123 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 130 insertions(+), 1 deletion(-) diff --git a/.storybook/main.js b/.storybook/main.js index f40a87738..14decf07e 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,7 +4,12 @@ const webpack = require('webpack'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: ['@storybook/addon-storysource', '@storybook/addon-controls', '@storybook/addon-actions'], + addons: [ + '@storybook/addon-storysource', + '@storybook/addon-controls', + '@storybook/addon-actions', + '@storybook/addon-viewport', + ], webpackFinal: async (config) => { config.resolve.extensions.push('.js'); diff --git a/package-lock.json b/package-lock.json index 755252d46..37e418d61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3424,6 +3424,129 @@ } } }, + "@storybook/addon-viewport": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.0.21.tgz", + "integrity": "sha512-FFUkhpZy7npRTaqX9SwMz5Yzo0/ivuApwr47xqblDEEyq7edWqo7YKsPnpAGeM9MlRpQNf6aU9huwDqKeRfKuQ==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "prop-types": "^15.7.2", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, "@storybook/addons": { "version": "6.0.21", "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.21.tgz", diff --git a/package.json b/package.json index fdad7c7cb..c19f1f4ec 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", + "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", "@storybook/theming": "^6.0.21", From 65d9799013fdec458bc383b85de01f8be20e6422 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Thu, 3 Sep 2020 12:21:53 +0700 Subject: [PATCH 067/740] add storybook knobs addon --- .storybook/main.js | 1 + package-lock.json | 226 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 228 insertions(+) diff --git a/.storybook/main.js b/.storybook/main.js index 14decf07e..9a75ed950 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -9,6 +9,7 @@ module.exports = { '@storybook/addon-controls', '@storybook/addon-actions', '@storybook/addon-viewport', + '@storybook/addon-knobs', ], webpackFinal: async (config) => { config.resolve.extensions.push('.js'); diff --git a/package-lock.json b/package-lock.json index 37e418d61..c05f61b30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3168,6 +3168,177 @@ } } }, + "@storybook/addon-knobs": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.0.21.tgz", + "integrity": "sha512-QHcdL08wGzw67Igpow3wCHWq0WfG5E/q7EFwOwTvr4X3s8VBjuauVdWolcX1/N+z2U7m31rcD6tcMBMPjUibmw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "copy-to-clipboard": "^3.0.8", + "core-js": "^3.0.1", + "escape-html": "^1.0.3", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "prop-types": "^15.7.2", + "qs": "^6.6.0", + "react-color": "^2.17.0", + "react-lifecycles-compat": "^3.0.4", + "react-select": "^3.0.8", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", @@ -8199,6 +8370,24 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", + "dev": true + } + } + }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -14717,6 +14906,15 @@ "prop-types": "^15.5.8" } }, + "react-input-autosize": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", + "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", + "dev": true, + "requires": { + "prop-types": "^15.5.8" + } + }, "react-inspector": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", @@ -14845,6 +15043,22 @@ "tiny-warning": "^1.0.0" } }, + "react-select": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.1.0.tgz", + "integrity": "sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==", + "dev": true, + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/cache": "^10.0.9", + "@emotion/core": "^10.0.9", + "@emotion/css": "^10.0.9", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "react-input-autosize": "^2.2.2", + "react-transition-group": "^4.3.0" + } + }, "react-sizeme": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", @@ -14903,6 +15117,18 @@ "classnames": "^2.2.5" } }, + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "react-truncate-markup": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", diff --git a/package.json b/package.json index c19f1f4ec..d01410298 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@babel/preset-react": "^7.10.4", "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", + "@storybook/addon-knobs": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", From 9a003bbae89cb5f3a9ce29c3f1dbbe283eb5c75c Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Thu, 3 Sep 2020 12:51:32 +0700 Subject: [PATCH 068/740] add storybook a11y addon --- .storybook/main.js | 1 + package-lock.json | 174 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 176 insertions(+) diff --git a/.storybook/main.js b/.storybook/main.js index 9a75ed950..80986c3e7 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -10,6 +10,7 @@ module.exports = { '@storybook/addon-actions', '@storybook/addon-viewport', '@storybook/addon-knobs', + '@storybook/addon-a11y', ], webpackFinal: async (config) => { config.resolve.extensions.push('.js'); diff --git a/package-lock.json b/package-lock.json index c05f61b30..01ff70d19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,6 +2769,174 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-a11y": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.0.21.tgz", + "integrity": "sha512-jB6cOx8UwRjd2h04p6TBBwrZInaeE7w4NnmxWRW6Ifo3GLFiZFuI2oSWOe4LEKWWG1eTrk+285fd11zn0ihsTw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "axe-core": "^3.5.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "react-sizeme": "^2.5.2", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, "@storybook/addon-actions": { "version": "6.0.21", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", @@ -6022,6 +6190,12 @@ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, + "axe-core": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", + "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", diff --git a/package.json b/package.json index d01410298..7d57bc313 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", + "@storybook/addon-a11y": "^6.0.21", "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", "@storybook/addon-knobs": "^6.0.21", From 4c457404cc31ba7b1cd61af0a418f2e04058b329 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 2 Sep 2020 21:08:38 +0700 Subject: [PATCH 069/740] Manually fix lint errors --- src/Avatar/index.js | 2 +- src/Chat/index.js | 4 +-- src/ChatDetails/index.js | 3 +- src/ChatHeader/index.js | 3 +- src/ChatHome/ChatHome.stories.js | 5 +-- src/ChatHome/index.js | 22 +++++-------- src/ChatItem/index.js | 2 +- src/Comment/index.js | 22 ++++--------- src/CommentComposeBar/index.js | 3 +- src/Community/Community.stories.js | 15 +++++---- src/Community/CommunityMembers.js | 14 ++++++--- src/Community/NewsFeed.js | 6 ++-- src/Community/UserFeed.js | 8 ++--- src/Community/index.js | 15 +++++---- src/CommunityForm/CategorySelector.js | 19 ++++-------- src/CommunityForm/UserSelector.js | 3 -- src/CommunityForm/index.js | 13 +++----- src/CommunityInformation/index.js | 4 +-- src/CommunityInformation/styles.js | 3 +- src/CommunityItem/index.js | 2 +- src/EmptyFeed/index.js | 2 +- src/EngagementBar/index.js | 2 +- src/ExploreHome/CategoryPage.js | 8 +++-- src/ExploreHome/Community.js | 2 +- src/ExploreHome/CommunitySearch.js | 11 ++++--- src/ExploreHome/ExploreHeader.js | 2 +- src/ExploreHome/TrendingCommunity.js | 2 +- src/ExploreHome/index.js | 16 +++++----- src/FeedLayout/index.js | 2 +- src/FeedSideMenu/index.js | 7 ++--- src/FeedSideMenu/styles.js | 1 - src/Files/FileIcon.js | 2 +- src/Files/index.js | 4 +-- src/ImageGallery/index.js | 2 +- src/Images/Image.js | 10 ++---- src/Images/index.js | 2 +- src/Layout/Layout.stories.js | 2 +- src/Layout/index.js | 9 ++++-- src/Message/Options.js | 31 +++++-------------- src/Message/OutgoingMessage.js | 1 - src/Message/index.js | 10 ++---- src/Message/styles.js | 1 - src/MessageComposeBar/index.js | 3 +- src/MessageList/index.js | 2 +- src/Post/Post.stories.js | 4 +-- src/Post/index.js | 2 +- src/PostCompose/AuthorSelector.js | 3 +- src/PostCompose/index.js | 4 +-- src/RecentChat/CreateNewChat.js | 5 ++- src/RecentChat/index.js | 2 +- src/RecentChat/styles.js | 1 - src/SideMenu/MenuTab.js | 2 +- src/SideMenu/index.js | 4 +-- src/UiKitProvider/Localisation/index.js | 2 +- src/UiKitProvider/index.js | 14 ++------- src/UserFeedHeader/index.js | 4 +-- src/commonComponents/Button/Button.stories.js | 2 +- src/commonComponents/FeedHeaderTabs/index.js | 1 - src/commonComponents/Modal/index.js | 2 +- src/commonComponents/Modal/styles.js | 2 +- src/commonComponents/Notification/index.js | 11 +++---- src/commonComponents/Options/index.js | 6 ++-- src/commonComponents/Popover/styles.js | 4 ++- src/commonComponents/Tab/Tab.stories.js | 2 +- src/commonComponents/Tabs/index.js | 2 +- src/commonComponents/Time/index.js | 2 +- src/hoks/withSDK.js | 2 +- src/hooks/useLiveObject.js | 2 +- src/hooks/usePaginatedLiveObject.js | 4 +-- src/mock/index.js | 2 +- util/create-component.js | 2 ++ 71 files changed, 164 insertions(+), 231 deletions(-) diff --git a/src/Avatar/index.js b/src/Avatar/index.js index 63b5ac4a6..49f8764ad 100644 --- a/src/Avatar/index.js +++ b/src/Avatar/index.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; import { AvatarContainer, Img } from './styles'; diff --git a/src/Chat/index.js b/src/Chat/index.js index 82c246cb1..ec2081473 100644 --- a/src/Chat/index.js +++ b/src/Chat/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useEffect } from 'react'; import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; @@ -21,7 +21,7 @@ const Chat = ({ channelId, onChatDetailsClick }) => { }, []); const sendMessage = text => { - const messageLiveObject = messageRepo.createTextMessage({ + messageRepo.createTextMessage({ channelId, text, }); diff --git a/src/ChatDetails/index.js b/src/ChatDetails/index.js index dc3f76026..819c2ad16 100644 --- a/src/ChatDetails/index.js +++ b/src/ChatDetails/index.js @@ -1,5 +1,4 @@ -import React, { useState, useEffect } from 'react'; -import InfiniteScroll from 'react-infinite-scroller'; +import React from 'react'; import { ChannelRepository } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/ChatHeader/index.js b/src/ChatHeader/index.js index ac181551b..093eb32e1 100644 --- a/src/ChatHeader/index.js +++ b/src/ChatHeader/index.js @@ -1,5 +1,4 @@ -import React, { useState, useEffect } from 'react'; -import InfiniteScroll from 'react-infinite-scroller'; +import React from 'react'; import { ChannelRepository } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/ChatHome/ChatHome.stories.js b/src/ChatHome/ChatHome.stories.js index 869f7a275..2d891b549 100644 --- a/src/ChatHome/ChatHome.stories.js +++ b/src/ChatHome/ChatHome.stories.js @@ -1,9 +1,6 @@ -import React, { useEffect } from 'react'; +import React from 'react'; import ChatHome from '.'; -import Chat from '../Chat'; import Message from '../Message'; -import MessageList from '../MessageList'; -import UiKitProvider from '../UiKitProvider'; export default { title: 'ChatHome', diff --git a/src/ChatHome/index.js b/src/ChatHome/index.js index 8cf9d6ef9..9d2ce2d8b 100644 --- a/src/ChatHome/index.js +++ b/src/ChatHome/index.js @@ -1,16 +1,12 @@ -import React, { useState, useEffect } from 'react'; -import { ChannelRepository } from 'eko-sdk'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; -import useLiveObject from '../hooks/useLiveObject'; import RecentChat from '../RecentChat'; import Chat from '../Chat'; import ChatDetails from '../ChatDetails'; import { ChatHomeContainer } from './styles'; -const channelRepo = new ChannelRepository(); - // TODO add onCreateGroupChat const ChatHome = () => { const [currentChannelId, setCurrenChannelId] = useState(null); @@ -30,15 +26,13 @@ const ChatHome = () => { onChatDetailsClick={toggleShowChatDetails} /> )} - <> - {showChatDetails && currentChannelId && ( - - )} - + {showChatDetails && currentChannelId && ( + + )} ); }; diff --git a/src/ChatItem/index.js b/src/ChatItem/index.js index c800294f2..f87d1b9a0 100644 --- a/src/ChatItem/index.js +++ b/src/ChatItem/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/Comment/index.js b/src/Comment/index.js index 177a52d8b..4ab593847 100644 --- a/src/Comment/index.js +++ b/src/Comment/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; @@ -6,9 +6,6 @@ import { customizableComponent } from '../hoks/customization'; import Linkify from '../commonComponents/Linkify'; import { notification } from '../commonComponents/Notification'; -import Files from '../Files'; -import Images from '../Images'; - import { Avatar, CommentComposeBar, @@ -20,7 +17,6 @@ import { CommentContent, AuthorName, CommentDate, - CommentInfo, ReadMoreButton, InteractionBar, LikeIcon, @@ -61,12 +57,9 @@ const CommentText = ({ children }) => { const ReplyComment = ({ className, comment, - comment: { author, createdAt, updatedAt, text, isLiked, likes = 0 }, + comment: { author, createdAt, text, isLiked, likes = 0 }, onEdit, }) => { - const [userToReply, setUserToReply] = useState(null); - const reply = user => setUserToReply(user); - const toggleLike = () => { onEdit({ ...comment, @@ -74,9 +67,6 @@ const ReplyComment = ({ }); }; - const [isExpanded, setIsExpanded] = useState(false); - const expand = () => setIsExpanded(true); - const totalLikes = likes + (isLiked ? 1 : 0); return ( @@ -102,11 +92,11 @@ const ReplyComment = ({ const Comment = ({ className, comment, - comment: { author, createdAt, replies, updatedAt, text, isLiked, likes = 0 }, + comment: { author, createdAt, replies, text, isLiked, likes = 0 }, onEdit, }) => { const [userToReply, setUserToReply] = useState(null); - const reply = user => setUserToReply(user); + const handleReply = user => setUserToReply(user); const toggleLike = () => { onEdit({ @@ -151,7 +141,7 @@ const Comment = ({ {isLiked ? : } {!!totalLikes && totalLikes} - reply(author)}> + handleReply(author)}> Reply @@ -159,7 +149,7 @@ const Comment = ({ {replies.map(reply => ( - + ))} {userToReply && } diff --git a/src/CommentComposeBar/index.js b/src/CommentComposeBar/index.js index 98c94ac50..e6338cc86 100644 --- a/src/CommentComposeBar/index.js +++ b/src/CommentComposeBar/index.js @@ -1,5 +1,4 @@ -import React, { useState, useEffect } from 'react'; -import InfiniteScroll from 'react-infinite-scroller'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/Community/Community.stories.js b/src/Community/Community.stories.js index 062748358..8656526db 100644 --- a/src/Community/Community.stories.js +++ b/src/Community/Community.stories.js @@ -1,9 +1,8 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { HashRouter as Router, Switch, Route, - Link, useLocation, useHistory, useRouteMatch, @@ -35,12 +34,12 @@ const Pages = () => { const goToUserFeed = () => history.push(`/`); const goToNewsFeed = () => history.push(`/news`); const goToExplore = () => history.push(`/explore`); - const onCategoryClick = categoryId => { - history.push(`/category/${categoryId}`); + const onCategoryClick = id => { + history.push(`/category/${id}`); }; - const goToCommunity = communityId => { - history.push(`/community/${communityId}`); + const goToCommunity = id => { + history.push(`/community/${id}`); }; const pathToSelectionType = { @@ -59,8 +58,8 @@ const Pages = () => { if (userOrCommunity.communityId) goToCommunity(userOrCommunity.communityId); }; - const onEditCommunityClick = communityId => { - history.push(`/community/${communityId}/edit`); + const onEditCommunityClick = id => { + history.push(`/community/${id}/edit`); }; const [communityCreation, setCommunityCreation] = useState(false); diff --git a/src/Community/CommunityMembers.js b/src/Community/CommunityMembers.js index f18a96577..2b19a0ea0 100644 --- a/src/Community/CommunityMembers.js +++ b/src/Community/CommunityMembers.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; import Options from '../commonComponents/Options'; @@ -30,7 +30,7 @@ const CommunityMember = ({ user, onMemberClick }) => { content: 'This user won’t no longer be able to search, post and interact in this community. Are you sure you want tocontinue?', okText: 'Remove', - onOk: () => console.log('onRemove'), + onOk: () => {}, }); const onReportClick = () => @@ -57,7 +57,7 @@ const CommunityMember = ({ user, onMemberClick }) => { ); }; -const CommunityMembers = ({ communityId, onMemberClick }) => { +const CommunityMembers = ({ onMemberClick }) => { const [activeTab, setActiveTab] = useState(tabs.MEMBERS); return ( @@ -69,9 +69,13 @@ const CommunityMembers = ({ communityId, onMemberClick }) => { onChange={setActiveTab} /> {activeTab === tabs.MEMBERS && - testMembers.map(user => )} + testMembers.map(user => ( + + ))} {activeTab === tabs.MODERATORS && - testModerators.map(user => )} + testModerators.map(user => ( + + ))} ); }; diff --git a/src/Community/NewsFeed.js b/src/Community/NewsFeed.js index 67ffb82e1..255221707 100644 --- a/src/Community/NewsFeed.js +++ b/src/Community/NewsFeed.js @@ -1,15 +1,15 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; import withSDK from '../hoks/withSDK'; import EmptyFeed from '../EmptyFeed'; -import { getMyCommunities, testNewsFeed, usePostsMock } from '../mock'; +import { getMyCommunities, usePostsMock } from '../mock'; import { Content, Feed, PostCompose, Post } from './styles'; -const NewsFeed = ({ client, onPostAuthorClick }) => { +const NewsFeed = ({ onPostAuthorClick }) => { const { posts, addPost, removePost, editPost } = usePostsMock(); const myCommunities = getMyCommunities(); diff --git a/src/Community/UserFeed.js b/src/Community/UserFeed.js index 37158da61..29a56e05c 100644 --- a/src/Community/UserFeed.js +++ b/src/Community/UserFeed.js @@ -1,16 +1,16 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; import withSDK from '../hoks/withSDK'; -import CommunityInformation from '../CommunityInformation'; +// import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; -import { testUser, userFeed, usePostsMock } from '../mock'; +import { testUser, usePostsMock } from '../mock'; import { Content, Feed, PostCompose, Post, UserFeedHeader } from './styles'; -const UserFeed = ({ client }) => { +const UserFeed = () => { const { posts, addPost, removePost, editPost } = usePostsMock(testUser.id); return ( diff --git a/src/Community/index.js b/src/Community/index.js index 7d70ad2d7..3870b5fdc 100644 --- a/src/Community/index.js +++ b/src/Community/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; import withSDK from '../hoks/withSDK'; @@ -18,7 +18,7 @@ const tabs = { MEMBERS: 'Members', }; -const CommunityPosts = ({ communityId = { communityId }, community, onPostAuthorClick }) => { +const CommunityPosts = ({ communityId, community, onPostAuthorClick }) => { const { posts, addPost, removePost, editPost } = usePostsMock(communityId); return ( @@ -41,7 +41,7 @@ const CommunityPosts = ({ communityId = { communityId }, community, onPostAuthor const CommunityFeed = ({ communityId, onPostAuthorClick, onMemberClick, onEditCommunityClick }) => { const communities = getCommunities(); - const community = communities.find(community => community.communityId === communityId); + const currentCommunity = communities.find(community => community.communityId === communityId); const [activeTab, setActiveTab] = useState(tabs.TIMELINE); @@ -56,7 +56,7 @@ const CommunityFeed = ({ communityId, onPostAuthorClick, onMemberClick, onEditCo {activeTab === tabs.TIMELINE && ( )} @@ -64,12 +64,15 @@ const CommunityFeed = ({ communityId, onPostAuthorClick, onMemberClick, onEditCo {activeTab === tabs.MEMBERS && ( )} - + ); }; diff --git a/src/CommunityForm/CategorySelector.js b/src/CommunityForm/CategorySelector.js index a3b057aa8..242c92621 100644 --- a/src/CommunityForm/CategorySelector.js +++ b/src/CommunityForm/CategorySelector.js @@ -1,18 +1,10 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { MenuItem } from '../commonComponents/Menu'; import { customizableComponent } from '../hoks/customization'; import { getCategories, getCategory } from '../mock'; -import { - Avatar, - Categories, - CategoryItem, - Selector, - SelectorPopover, - SelectorList, - SelectIcon, -} from './styles'; +import { Avatar, Selector, SelectorPopover, SelectorList, SelectIcon } from './styles'; const Category = ({ category }) => ( <> @@ -27,19 +19,20 @@ const CategorySelector = ({ value: categoryId, onChange }) => { const categories = getCategories(); - const category = getCategory(categoryId); + const currentCategory = getCategory(categoryId); const list = ( {/* TODO empty state */} {categories.map(category => ( { close(); onChange(category.id); }} > - + ))} @@ -48,7 +41,7 @@ const CategorySelector = ({ value: categoryId, onChange }) => { return ( - {categoryId && } + {categoryId && } ); diff --git a/src/CommunityForm/UserSelector.js b/src/CommunityForm/UserSelector.js index 1f258d2db..d3cf4a3e8 100644 --- a/src/CommunityForm/UserSelector.js +++ b/src/CommunityForm/UserSelector.js @@ -6,11 +6,8 @@ import { testUsers } from '../mock'; import { Avatar, - Categories, - UserItem, Selector, SelectorList, - SelectIcon, SelectorPopover, UserSelectorInput, Chip, diff --git a/src/CommunityForm/index.js b/src/CommunityForm/index.js index c46b62dc9..546b38d02 100644 --- a/src/CommunityForm/index.js +++ b/src/CommunityForm/index.js @@ -4,7 +4,7 @@ import { useForm, Controller } from 'react-hook-form'; import { customizableComponent } from '../hoks/customization'; import Button from '../commonComponents/Button'; -import { testUser, getCategories, getCommunities } from '../mock'; +import { getCommunities } from '../mock'; import CategorySelector from './CategorySelector'; import UserSelector from './UserSelector'; @@ -12,7 +12,6 @@ import UserSelector from './UserSelector'; import { Form, TextField, - InformationBlock, Avatar, AvatarUploadContainer, AboutTextarea, @@ -40,7 +39,7 @@ import { FormBody, } from './styles'; -const AvatarUpload = ({ value, onChange }) => ( +const AvatarUpload = ({ value }) => ( @@ -60,11 +59,9 @@ const PUBLIC = 'public'; const PRIVATE = 'private'; const CommunityForm = ({ - user = testUser, community, // initialize form on editing edit, onSubmit, - onSave, className, onCancel, }) => { @@ -83,7 +80,7 @@ const CommunityForm = ({ }, }); - const name = watch('name'); + const currentName = watch('name'); const description = watch('description'); const permission = watch('permission'); @@ -112,7 +109,7 @@ const CommunityForm = ({ - {name.length}/30 + {currentName.length}/30 )} - {edit ? 'Save' : 'Create'} + {edit ? 'Save' : 'Create'}
); diff --git a/src/CommunityInformation/index.js b/src/CommunityInformation/index.js index 31e709534..963d68b5f 100644 --- a/src/CommunityInformation/index.js +++ b/src/CommunityInformation/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; @@ -20,7 +20,7 @@ import { } from './styles'; const CommunityInformation = ({ community, onEditCommunityClick }) => { - const { isPrivate, name, postsCount, membersCount } = community; + const { name } = community; const { joinCommunity, leaveCommunity } = useCommunitiesMock(); diff --git a/src/CommunityInformation/styles.js b/src/CommunityInformation/styles.js index 0f4f4d1bd..ae1db3299 100644 --- a/src/CommunityInformation/styles.js +++ b/src/CommunityInformation/styles.js @@ -1,8 +1,7 @@ -import React from 'react'; import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton, PrimaryButton } from '../commonComponents/Button'; +import { PrimaryButton } from '../commonComponents/Button'; import UIAvatar from '../Avatar'; import UIOptions from '../commonComponents/Options'; diff --git a/src/CommunityItem/index.js b/src/CommunityItem/index.js index a7894cc01..ac368a446 100644 --- a/src/CommunityItem/index.js +++ b/src/CommunityItem/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; import CommunityName from '../commonComponents/CommunityName'; diff --git a/src/EmptyFeed/index.js b/src/EmptyFeed/index.js index 22acc4d50..3c4cb68bb 100644 --- a/src/EmptyFeed/index.js +++ b/src/EmptyFeed/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; import { EmptyFeedContainer, FeedIcon } from './styles'; diff --git a/src/EngagementBar/index.js b/src/EngagementBar/index.js index fafc671e0..3cee37129 100644 --- a/src/EngagementBar/index.js +++ b/src/EngagementBar/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { toHumanString } from 'human-readable-numbers'; import { customizableComponent } from '../hoks/customization'; import { SecondaryButton } from '../commonComponents/Button'; diff --git a/src/ExploreHome/CategoryPage.js b/src/ExploreHome/CategoryPage.js index 9d86b42e0..c42d18e7b 100644 --- a/src/ExploreHome/CategoryPage.js +++ b/src/ExploreHome/CategoryPage.js @@ -18,7 +18,7 @@ import { BackIcon, } from './styles'; -const CategoryPage = ({ client, onCommunityClick, onHeaderBackButtonClick, categoryId }) => { +const CategoryPage = ({ onCommunityClick, onHeaderBackButtonClick, categoryId }) => { const communities = getCommunities(); const category = getCategory(categoryId); @@ -39,7 +39,11 @@ const CategoryPage = ({ client, onCommunityClick, onHeaderBackButtonClick, categ {[...communities, ...communities, ...communities].map(community => ( - onCommunityClick(community)} community={community} /> + onCommunityClick(community)} + community={community} + /> ))} diff --git a/src/ExploreHome/Community.js b/src/ExploreHome/Community.js index b9c3be1d0..db5d798ae 100644 --- a/src/ExploreHome/Community.js +++ b/src/ExploreHome/Community.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/ExploreHome/CommunitySearch.js b/src/ExploreHome/CommunitySearch.js index 14126605a..55908bf52 100644 --- a/src/ExploreHome/CommunitySearch.js +++ b/src/ExploreHome/CommunitySearch.js @@ -4,7 +4,7 @@ import { customizableComponent } from '../hoks/customization'; import Popover from '../commonComponents/Popover'; import { MenuItem } from '../commonComponents/Menu'; -import { getCommunities, getCategories } from '../mock'; +import { getCommunities } from '../mock'; import { Avatar, @@ -21,8 +21,8 @@ const Highlight = ({ query, text }) => { const chunks = text.split(new RegExp(`(${query})`, 'gi')); return chunks.map(chunk => { if (chunk.toLowerCase() === query.toLowerCase()) - return {chunk}; - return {chunk}; + return {chunk}; + return {chunk}; }); }; @@ -48,7 +48,10 @@ const CommunitySearch = ({ onSearchResultCommunityClick }) => { {/* TODO empty state */} {searchResult.map(community => ( - onSearchResultCommunityClick(community)}> + onSearchResultCommunityClick(community)} + > diff --git a/src/ExploreHome/ExploreHeader.js b/src/ExploreHome/ExploreHeader.js index ddfb6e865..7dc61770c 100644 --- a/src/ExploreHome/ExploreHeader.js +++ b/src/ExploreHome/ExploreHeader.js @@ -4,7 +4,7 @@ import { customizableComponent } from '../hoks/customization'; import CommunitySearch from './CommunitySearch'; -import { Avatar, CreateCommunityButton, ExploreHeaderContainer, PlusIcon } from './styles'; +import { CreateCommunityButton, ExploreHeaderContainer, PlusIcon } from './styles'; const ExploreHeader = ({ onSearchResultCommunityClick, onCreateCommunityClick }) => ( diff --git a/src/ExploreHome/TrendingCommunity.js b/src/ExploreHome/TrendingCommunity.js index d9bed4671..2092fa85e 100644 --- a/src/ExploreHome/TrendingCommunity.js +++ b/src/ExploreHome/TrendingCommunity.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/ExploreHome/index.js b/src/ExploreHome/index.js index 1fcae4472..79d3afbc3 100644 --- a/src/ExploreHome/index.js +++ b/src/ExploreHome/index.js @@ -1,9 +1,8 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; import Modal from '../commonComponents/Modal'; -import Menu, { MenuItem } from '../commonComponents/Menu'; -import CommunityName from '../commonComponents/CommunityName'; +import { MenuItem } from '../commonComponents/Menu'; import { getCommunities, getCategories } from '../mock'; @@ -27,7 +26,6 @@ import { } from './styles'; const ExploreHome = ({ - client, onSearchResultCommunityClick, onRecomendedCommunityClick, onTrendingCommunityClick, @@ -46,9 +44,9 @@ const ExploreHome = ({ {categories.map(category => ( - onCategoryClick(category.id)}> + onCategoryClick(category.id)}> - {category.name} + {category.name} ))} @@ -68,6 +66,7 @@ const ExploreHome = ({ {communities.slice(0, 5).map(community => ( onRecomendedCommunityClick(community)} community={community} /> @@ -76,10 +75,11 @@ const ExploreHome = ({ - Today's Trending + Today's Trending {communities.slice(0, 6).map(community => ( onTrendingCommunityClick(community)} community={community} /> @@ -91,7 +91,7 @@ const ExploreHome = ({ Categories {categories.map(category => ( - onCategoryClick(category.id)}> + onCategoryClick(category.id)}> {category.name} ))} diff --git a/src/FeedLayout/index.js b/src/FeedLayout/index.js index 7a10f83d6..6fc4d3724 100644 --- a/src/FeedLayout/index.js +++ b/src/FeedLayout/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { customizableComponent } from '../hoks/customization'; -import { LayoutContainer, FeedWrapper } from './styles'; +import { LayoutContainer } from './styles'; const FeedLayout = ({ sideMenu, children }) => { return ( diff --git a/src/FeedSideMenu/index.js b/src/FeedSideMenu/index.js index 3272d8d83..1be532393 100644 --- a/src/FeedSideMenu/index.js +++ b/src/FeedSideMenu/index.js @@ -1,7 +1,6 @@ import React from 'react'; import { customizableComponent } from '../hoks/customization'; -import useLiveObject from '../hooks/useLiveObject'; import CommunityItem from '../CommunityItem'; import SideMenuItem from '../commonComponents/SideMenuItem'; @@ -15,7 +14,6 @@ import { NewsIcon, SearchIcon, PlusIcon, - VervifiedIcon, } from './styles'; export const SELECTION_TYPES = { @@ -30,7 +28,6 @@ const FeedSideMenu = ({ onCommunityClick, onNewsFeedClick, onExploreClick, - selectedChannelId, }) => { const myCommunities = getMyCommunities(); @@ -58,11 +55,11 @@ const FeedSideMenu = ({ }> Create Community - {myCommunities.map((community, i) => ( + {myCommunities.map(community => ( onCommunityClick(community.communityId)} - key={i} community={community} /> ))} diff --git a/src/FeedSideMenu/styles.js b/src/FeedSideMenu/styles.js index 7fb7da5ef..adc308264 100644 --- a/src/FeedSideMenu/styles.js +++ b/src/FeedSideMenu/styles.js @@ -1,4 +1,3 @@ -import React from 'react'; import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/Files/FileIcon.js b/src/Files/FileIcon.js index 4e1553b1a..e09e8e301 100644 --- a/src/Files/FileIcon.js +++ b/src/Files/FileIcon.js @@ -50,7 +50,7 @@ const extensionsToIconsMap = { const FileIcon = ({ file }) => { const extension = file.filename.split('.').slice(-1); const icon = extensionsToIconsMap[extension] || defaultIcon; - return ; + return {file.filename}; }; export default FileIcon; diff --git a/src/Files/index.js b/src/Files/index.js index e479ad5bd..bd636eb9f 100644 --- a/src/Files/index.js +++ b/src/Files/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; @@ -20,7 +20,7 @@ const Files = ({ editing, files = [], onRemove }) => { return ( - {visibleFiles.map((file, i) => ( + {visibleFiles.map(file => ( ))} {haveHiddenFiles && View all files} diff --git a/src/ImageGallery/index.js b/src/ImageGallery/index.js index 1ffd4f0fc..e61333a8b 100644 --- a/src/ImageGallery/index.js +++ b/src/ImageGallery/index.js @@ -43,7 +43,7 @@ const ImageGallery = ({ initialImageIndex, images = [], onClose }) => { {currentIndex + 1} / {images.length} - +
{!isLast && }
diff --git a/src/Images/Image.js b/src/Images/Image.js index 048eb43dd..8c22293f2 100644 --- a/src/Images/Image.js +++ b/src/Images/Image.js @@ -1,13 +1,7 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../hoks/customization'; -import { - ImageContainer, - Content, - ProgressBar, - RemoveIcon, - NumberOfHiddenImagesOverlay, -} from './styles'; +import { ImageContainer, ProgressBar, RemoveIcon, NumberOfHiddenImagesOverlay } from './styles'; const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { // simulate progress animation @@ -31,7 +25,7 @@ const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { + {numberOfHiddenImages} )} - + {!!onRemove && } ); diff --git a/src/Images/index.js b/src/Images/index.js index a9902e35b..253c94551 100644 --- a/src/Images/index.js +++ b/src/Images/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/Layout/Layout.stories.js b/src/Layout/Layout.stories.js index f40e9f3a0..f18d2434e 100644 --- a/src/Layout/Layout.stories.js +++ b/src/Layout/Layout.stories.js @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React from 'react'; import Layout from '.'; import SideMenu from '../SideMenu'; diff --git a/src/Layout/index.js b/src/Layout/index.js index 2f015c361..671dc6fa3 100644 --- a/src/Layout/index.js +++ b/src/Layout/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; import Avatar from '../Avatar'; @@ -11,7 +11,12 @@ const Layout = () => { return ( -
setIsOpen(!isOpen)}> +
setIsOpen(!isOpen)} + onKeyDown={() => setIsOpen(!isOpen)} + >
{username} diff --git a/src/Message/Options.js b/src/Message/Options.js index 3418cb34c..b6edae5d7 100644 --- a/src/Message/Options.js +++ b/src/Message/Options.js @@ -1,22 +1,10 @@ import React, { useState, useEffect } from 'react'; -import { - MessageRepository, - UserRepository, - MessageEditorRepository, - MessageFlagRepository, -} from 'eko-sdk'; +import { MessageEditorRepository, MessageFlagRepository } from 'eko-sdk'; import Popover from '../commonComponents/Popover'; import Menu, { MenuItem } from '../commonComponents/Menu'; -import { - MessageOptionsIcon, - SaveIcon, - DeleteIcon, - CloseIcon, - EditingInput, - EditingContainer, -} from './styles'; +import { MessageOptionsIcon, SaveIcon, CloseIcon, EditingInput, EditingContainer } from './styles'; const Flagging = ({ message: { messageId } = {} }) => { const [isFlaggedByMe, setIsFlaggedByMe] = useState(null); @@ -29,14 +17,14 @@ const Flagging = ({ message: { messageId } = {} }) => { flagRepository.isFlaggedByMe().then(setIsFlaggedByMe); }, [messageId]); - const flagMessage = messageId => { - flagRepo.flag({ messageId }).then(() => { + const flagMessage = id => { + flagRepo.flag({ messageId: id }).then(() => { setIsFlaggedByMe(true); }); }; - const unflagMessage = messageId => { - flagRepo.unflag({ messageId }).then(() => { + const unflagMessage = id => { + flagRepo.unflag({ messageId: id }).then(() => { setIsFlaggedByMe(false); }); }; @@ -58,11 +46,6 @@ const Options = ({ incoming, message }) => { setIsEditing(true); }; - const stopEdit = e => { - e.stopPropagation(); - setIsEditing(false); - }; - const [isOpen, setIsOpen] = useState(false); const open = () => { setText(message.data.text); @@ -120,7 +103,7 @@ const Options = ({ incoming, message }) => { align={incoming ? 'start' : 'end'} content={isEditing ? editing : menu} > -
+
diff --git a/src/Message/OutgoingMessage.js b/src/Message/OutgoingMessage.js index c64365d73..1636a2ea0 100644 --- a/src/Message/OutgoingMessage.js +++ b/src/Message/OutgoingMessage.js @@ -1,4 +1,3 @@ -import React from 'react'; import Message from '.'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/Message/index.js b/src/Message/index.js index 5ea9c6157..3f70bb071 100644 --- a/src/Message/index.js +++ b/src/Message/index.js @@ -1,8 +1,7 @@ -import React, { useState } from 'react'; +import React from 'react'; import { FormattedTime } from 'react-intl'; import { customizableComponent } from '../hoks/customization'; -import useLiveObject from '../hooks/useLiveObject'; import Linkify from '../commonComponents/Linkify'; @@ -37,12 +36,7 @@ const MessageContent = ({ message: { data, type, isDeleted } }) => { } }; -const Message = ({ - message, - message: { data, type, createdAt, updatedAt, user }, - consequent, - incoming, -}) => { +const Message = ({ message, message: { createdAt, user }, consequent, incoming }) => { const { displayName } = user.model; return ( diff --git a/src/Message/styles.js b/src/Message/styles.js index 169bd9141..010382373 100644 --- a/src/Message/styles.js +++ b/src/Message/styles.js @@ -1,4 +1,3 @@ -import React from 'react'; import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/MessageComposeBar/index.js b/src/MessageComposeBar/index.js index 702b4dffc..db155e2f1 100644 --- a/src/MessageComposeBar/index.js +++ b/src/MessageComposeBar/index.js @@ -1,5 +1,4 @@ -import React, { useState, useEffect } from 'react'; -import InfiniteScroll from 'react-infinite-scroller'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/MessageList/index.js b/src/MessageList/index.js index a1977d4a7..cc0a6cbcc 100644 --- a/src/MessageList/index.js +++ b/src/MessageList/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import InfiniteScroll from 'react-infinite-scroller'; import { MessageRepository } from 'eko-sdk'; import IncomingMessage from '../Message/IncomingMessage'; diff --git a/src/Post/Post.stories.js b/src/Post/Post.stories.js index a7c4948f4..4651332dc 100644 --- a/src/Post/Post.stories.js +++ b/src/Post/Post.stories.js @@ -1,8 +1,6 @@ -import React, { useEffect } from 'react'; -import EkoClient, { ChannelRepository, _changeSDKDefaultConfig } from 'eko-sdk'; +import React from 'react'; import Post from '.'; -import UiKitProvider from '../UiKitProvider'; export default { title: 'Post', diff --git a/src/Post/index.js b/src/Post/index.js index d73ff7ac6..c2c9eff1b 100644 --- a/src/Post/index.js +++ b/src/Post/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/PostCompose/AuthorSelector.js b/src/PostCompose/AuthorSelector.js index 9d661d7f3..2495928e0 100644 --- a/src/PostCompose/AuthorSelector.js +++ b/src/PostCompose/AuthorSelector.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; import Popover from '../commonComponents/Popover'; @@ -26,6 +26,7 @@ const AuthorSelector = ({ author, user, communities, onChange }) => { Community {communities.map(community => ( { onChange(community); diff --git a/src/PostCompose/index.js b/src/PostCompose/index.js index d7d7eb0c2..da5fc3ad4 100644 --- a/src/PostCompose/index.js +++ b/src/PostCompose/index.js @@ -1,5 +1,4 @@ -import React, { useState, useEffect } from 'react'; -import InfiniteScroll from 'react-infinite-scroller'; +import React, { useState } from 'react'; import { customizableComponent } from '../hoks/customization'; import { notification } from '../commonComponents/Notification'; @@ -20,7 +19,6 @@ import { FooterActionBar, PostContainer, PostButton, - Avatar, PostAsCommunityContainer, Checkbox, Caption, diff --git a/src/RecentChat/CreateNewChat.js b/src/RecentChat/CreateNewChat.js index 73b248bf2..0e53f063c 100644 --- a/src/RecentChat/CreateNewChat.js +++ b/src/RecentChat/CreateNewChat.js @@ -1,10 +1,9 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { ChannelRepository, EkoChannelType } from 'eko-sdk'; import Popover from '../commonComponents/Popover'; import { CreateIcon, - DeleteIcon, CloseIcon, CreateNewChatIcon, CreationInput, @@ -32,7 +31,7 @@ const CreateNewChat = () => { type: EkoChannelType.Standard, userIds: [], }); - createChat.once('dataUpdated', model => { + createChat.once('dataUpdated', () => { close(); }); }; diff --git a/src/RecentChat/index.js b/src/RecentChat/index.js index a56f9bae7..12adeb3cd 100644 --- a/src/RecentChat/index.js +++ b/src/RecentChat/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { ChannelRepository } from 'eko-sdk'; import { customizableComponent } from '../hoks/customization'; diff --git a/src/RecentChat/styles.js b/src/RecentChat/styles.js index 886dd43f0..f24a7ac5a 100644 --- a/src/RecentChat/styles.js +++ b/src/RecentChat/styles.js @@ -1,4 +1,3 @@ -import React from 'react'; import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/SideMenu/MenuTab.js b/src/SideMenu/MenuTab.js index 8a8c847fa..46d133b4b 100644 --- a/src/SideMenu/MenuTab.js +++ b/src/SideMenu/MenuTab.js @@ -5,7 +5,7 @@ import { MenuTabContainer, MenuName } from './styles'; const MenuTab = ({ icon, name, className, onClick, active }) => { return ( - + {name} ); diff --git a/src/SideMenu/index.js b/src/SideMenu/index.js index ec88c2189..ca420b384 100644 --- a/src/SideMenu/index.js +++ b/src/SideMenu/index.js @@ -9,9 +9,9 @@ const SideMenu = () => { const Mockup = [{ name: 'COMMUNITY', icon: communityIcon }]; return ( - {Mockup.map((tab, id) => ( + {Mockup.map(tab => ( setActive(tab.name)} icon={tab.icon} diff --git a/src/UiKitProvider/Localisation/index.js b/src/UiKitProvider/Localisation/index.js index 9446d9fa2..134903912 100644 --- a/src/UiKitProvider/Localisation/index.js +++ b/src/UiKitProvider/Localisation/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { IntlProvider, FormattedTime } from 'react-intl'; +import { IntlProvider } from 'react-intl'; import TimeAgo from 'javascript-time-ago'; import en from 'javascript-time-ago/locale/en'; diff --git a/src/UiKitProvider/index.js b/src/UiKitProvider/index.js index 7c8281ab1..7d92bb5bd 100644 --- a/src/UiKitProvider/index.js +++ b/src/UiKitProvider/index.js @@ -1,9 +1,9 @@ -import React, { useContext, useMemo } from 'react'; +import React, { useMemo } from 'react'; import merge from 'lodash/merge'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; -import { CustomComponentsContext, CustomComponentsProvider } from '../hoks/customization'; +import { CustomComponentsProvider } from '../hoks/customization'; import { SDKProvider } from '../hoks/withSDK'; import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; @@ -26,16 +26,6 @@ const UiKitProvider = ({ clientOptions, children /* TODO localization */, }) => { - const customComponentsMap = useContext(CustomComponentsContext); - - const memoizedCustomComponentsMap = useMemo( - () => ({ - ...customComponentsMap, - ...customComponents, - }), - [customComponentsMap, customComponents], - ); - const SDKInfo = useMemo(() => { // TODO fix // initialize only one client diff --git a/src/UserFeedHeader/index.js b/src/UserFeedHeader/index.js index 30dadef65..390442db8 100644 --- a/src/UserFeedHeader/index.js +++ b/src/UserFeedHeader/index.js @@ -1,7 +1,5 @@ -import React, { useState, useEffect } from 'react'; -import { toHumanString } from 'human-readable-numbers'; +import React from 'react'; import { customizableComponent } from '../hoks/customization'; -import Button from '../commonComponents/Button'; import Tab from '../commonComponents/Tab'; import { UserFeedHeaderContainer, Tabs } from './styles'; diff --git a/src/commonComponents/Button/Button.stories.js b/src/commonComponents/Button/Button.stories.js index 49eb53fa5..985f9bbc6 100644 --- a/src/commonComponents/Button/Button.stories.js +++ b/src/commonComponents/Button/Button.stories.js @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React from 'react'; import Button, { PrimaryButton, SecondaryButton } from '.'; export default { diff --git a/src/commonComponents/FeedHeaderTabs/index.js b/src/commonComponents/FeedHeaderTabs/index.js index 73928d876..10009fb8e 100644 --- a/src/commonComponents/FeedHeaderTabs/index.js +++ b/src/commonComponents/FeedHeaderTabs/index.js @@ -1,4 +1,3 @@ -import React, { useState, useEffect } from 'react'; import { customizableComponent } from '../../hoks/customization'; import { FeedHeaderTabs } from './styles'; diff --git a/src/commonComponents/Modal/index.js b/src/commonComponents/Modal/index.js index 35b197fc6..8544c3d8c 100644 --- a/src/commonComponents/Modal/index.js +++ b/src/commonComponents/Modal/index.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React from 'react'; import { Overlay, ModalWindow, Header, Content, Footer, CloseIcon } from './styles'; diff --git a/src/commonComponents/Modal/styles.js b/src/commonComponents/Modal/styles.js index 9db7dda78..e183b9c37 100644 --- a/src/commonComponents/Modal/styles.js +++ b/src/commonComponents/Modal/styles.js @@ -45,7 +45,7 @@ export const ModalWindow = styled.div` export const Header = styled.div` padding: 16px 16px 12px 16px; - ${({ clean }) => !clean && 'border-bottom: 1px solid${({ theme }) => theme.color.base4};'} + ${({ clean }) => !clean && `border-bottom: 1px solid${({ theme }) => theme.color.base4};`} ${({ theme }) => theme.typography.title} display: flex; align-items: center; diff --git a/src/commonComponents/Notification/index.js b/src/commonComponents/Notification/index.js index 1d9480907..2cdf46c09 100644 --- a/src/commonComponents/Notification/index.js +++ b/src/commonComponents/Notification/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { NotificationContainer, Notifications, SuccessIcon, InfoIcon, ErrorIcon } from './styles'; @@ -18,12 +18,11 @@ export const NotificationsContainer = () => { const removeNotification = id => setNotifications && - setNotifications(notifications => notifications.filter(notification => notification.id != id)); + setNotifications(prevNotifications => + prevNotifications.filter(notification => notification.id !== id), + ); - spawnNewNotification = ( - { duration = DEFAULT_NOTIFICATION_DURATION, ...notificationData }, - icon, - ) => { + spawnNewNotification = ({ duration = DEFAULT_NOTIFICATION_DURATION, ...notificationData }) => { const id = Date.now(); setNotifications([{ id, ...notificationData }, ...notifications]); diff --git a/src/commonComponents/Options/index.js b/src/commonComponents/Options/index.js index a4b5110d0..85ee290ac 100644 --- a/src/commonComponents/Options/index.js +++ b/src/commonComponents/Options/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import Popover from '../Popover'; import Menu, { MenuItem } from '../Menu'; @@ -18,7 +18,9 @@ const Options = ({ className, icon, options, position = 'bottom', align = 'end' const menu = ( {options.map(({ name, action }) => ( - {name} + + {name} + ))} ); diff --git a/src/commonComponents/Popover/styles.js b/src/commonComponents/Popover/styles.js index 1a2d3cf77..bc489b212 100644 --- a/src/commonComponents/Popover/styles.js +++ b/src/commonComponents/Popover/styles.js @@ -2,7 +2,9 @@ import React from 'react'; import styled from 'styled-components'; import ReactTinyPopover from 'react-tiny-popover'; -const ReactPopover = props => ; +const ReactPopover = ({ className, ...rest }) => ( + +); export const Popover = styled(ReactPopover)` ${({ theme }) => theme.typography.body} diff --git a/src/commonComponents/Tab/Tab.stories.js b/src/commonComponents/Tab/Tab.stories.js index 0ee46bf80..972ac3113 100644 --- a/src/commonComponents/Tab/Tab.stories.js +++ b/src/commonComponents/Tab/Tab.stories.js @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React from 'react'; import Tab from '.'; export default { diff --git a/src/commonComponents/Tabs/index.js b/src/commonComponents/Tabs/index.js index 3deac325a..654021f13 100644 --- a/src/commonComponents/Tabs/index.js +++ b/src/commonComponents/Tabs/index.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { customizableComponent } from '../../hoks/customization'; import Tab from '../Tab'; diff --git a/src/commonComponents/Time/index.js b/src/commonComponents/Time/index.js index 6e94648eb..a5ba4f68c 100644 --- a/src/commonComponents/Time/index.js +++ b/src/commonComponents/Time/index.js @@ -1,4 +1,4 @@ -import React, { useEffect, useReducer } from 'react'; +import React from 'react'; import { FormattedDate } from 'react-intl'; import ReactTimeAgo from 'react-time-ago'; diff --git a/src/hoks/withSDK.js b/src/hoks/withSDK.js index 72d02766d..43ab07b4c 100644 --- a/src/hoks/withSDK.js +++ b/src/hoks/withSDK.js @@ -1,4 +1,4 @@ -import React, { useContext, useMemo } from 'react'; +import React, { useContext } from 'react'; export const SDKContext = React.createContext({}); diff --git a/src/hooks/useLiveObject.js b/src/hooks/useLiveObject.js index f7d6972aa..99efbb009 100644 --- a/src/hooks/useLiveObject.js +++ b/src/hooks/useLiveObject.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import { useState, useEffect } from 'react'; // TODO add errors handling const useLiveObject = (createLiveObject, defaultData) => { diff --git a/src/hooks/usePaginatedLiveObject.js b/src/hooks/usePaginatedLiveObject.js index be0643d41..f03be3f5e 100644 --- a/src/hooks/usePaginatedLiveObject.js +++ b/src/hooks/usePaginatedLiveObject.js @@ -1,5 +1,5 @@ -import React, { useState, useEffect } from 'react'; -import EkoClient, { EkoLoadingStatus } from 'eko-sdk'; +import { useState, useEffect } from 'react'; +import { EkoLoadingStatus } from 'eko-sdk'; const noop = () => null; diff --git a/src/mock/index.js b/src/mock/index.js index 27208fb58..98832c85b 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,4 +1,4 @@ -import React, { useContext, useMemo, useState } from 'react'; +/* eslint-disable */ import { RecoilRoot, atom, selector, useRecoilState, useRecoilValue } from 'recoil'; export const testUser = { diff --git a/util/create-component.js b/util/create-component.js index 25f1fb33f..af238cc2c 100644 --- a/util/create-component.js +++ b/util/create-component.js @@ -1,3 +1,5 @@ +/* eslint no-console: 0 */ +/* eslint import/no-extraneous-dependencies: 0 */ require('colors'); const fs = require('fs'); const templates = require('./templates'); From 9fe9c66c90ecca0652b14ee998bded47a926ca82 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 13:05:32 +0700 Subject: [PATCH 070/740] Allow stories dependencies to remain as devDependencies --- .eslintrc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 4c7f7a5b2..c4a3d6e5c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,6 +2,14 @@ "parser": "babel-eslint", "extends": ["eko/react"], "rules": { - "react/jsx-fragments": 0 + // Allow <> instead of + "react/jsx-fragments": "off", + // Allow dependencies used in some files to remain as devDependencies. + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": ["**/*.stories.*", "webpack.config.js"] + } + ] } } From 5e57e5d527f2798fe2546f9a385b218e37f49e04 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 15:25:03 +0700 Subject: [PATCH 071/740] All components into 'components' directory --- .storybook/UiKitDecorator.js | 6 +-- src/{ => components}/Avatar/index.js | 2 +- src/{ => components}/Avatar/styles.js | 0 .../Button/Button.stories.js | 0 .../Button/index.js | 0 .../Button/styles.js | 0 src/{ => components}/Chat/index.js | 2 +- src/{ => components}/Chat/styles.js | 0 src/{ => components}/ChatDetails/index.js | 4 +- src/{ => components}/ChatDetails/styles.js | 0 src/{ => components}/ChatHeader/index.js | 4 +- src/{ => components}/ChatHeader/styles.js | 0 .../ChatHome/ChatHome.stories.js | 0 src/{ => components}/ChatHome/index.js | 2 +- src/{ => components}/ChatHome/styles.js | 0 src/{ => components}/ChatItem/index.js | 2 +- src/{ => components}/ChatItem/styles.js | 2 +- src/{ => components}/Comment/index.js | 6 +-- src/{ => components}/Comment/styles.js | 6 +-- .../CommentComposeBar/index.js | 4 +- .../CommentComposeBar/styles.js | 2 +- .../Community/Community.stories.js | 2 +- .../Community/CommunityMembers.js | 10 ++-- src/{ => components}/Community/NewsFeed.js | 6 +-- src/{ => components}/Community/UserFeed.js | 6 +-- src/{ => components}/Community/index.js | 6 +-- src/{ => components}/Community/styles.js | 4 +- .../CommunityCreationModal/index.js | 6 +-- .../CommunityCreationModal/styles.js | 0 .../CommunityForm/CategorySelector.js | 6 +-- .../CommunityForm/UserSelector.js | 6 +-- src/{ => components}/CommunityForm/index.js | 6 +-- src/{ => components}/CommunityForm/styles.js | 6 +-- .../CommunityInformation/index.js | 6 +-- .../CommunityInformation/styles.js | 4 +- src/{ => components}/CommunityItem/index.js | 4 +- src/{ => components}/CommunityItem/styles.js | 2 +- .../CommunityName/index.js | 0 .../CommunityName/styles.js | 0 .../Confirm/index.js | 0 .../Confirm/styles.js | 0 src/{ => components}/EmptyFeed/index.js | 2 +- src/{ => components}/EmptyFeed/styles.js | 0 src/{ => components}/EngagementBar/index.js | 4 +- src/{ => components}/EngagementBar/styles.js | 0 .../ExploreHome/CategoryPage.js | 4 +- src/{ => components}/ExploreHome/Community.js | 4 +- .../ExploreHome/CommunitySearch.js | 8 ++-- .../ExploreHome/ExploreHeader.js | 2 +- .../ExploreHome/TrendingCommunity.js | 4 +- src/{ => components}/ExploreHome/index.js | 8 ++-- src/{ => components}/ExploreHome/styles.js | 4 +- .../FeedHeaderTabs/index.js | 0 .../FeedHeaderTabs/styles.js | 0 src/{ => components}/FeedLayout/index.js | 2 +- src/{ => components}/FeedLayout/styles.js | 0 src/{ => components}/FeedSideMenu/index.js | 6 +-- src/{ => components}/FeedSideMenu/styles.js | 0 src/{ => components}/Files/File.js | 2 +- src/{ => components}/Files/FileIcon.js | 0 src/{ => components}/Files/icons/audio.svg | 0 src/{ => components}/Files/icons/avi.svg | 0 src/{ => components}/Files/icons/csv.svg | 0 src/{ => components}/Files/icons/default.svg | 0 src/{ => components}/Files/icons/doc.svg | 0 src/{ => components}/Files/icons/exe.svg | 0 src/{ => components}/Files/icons/html.svg | 0 src/{ => components}/Files/icons/img.svg | 0 src/{ => components}/Files/icons/mov.svg | 0 src/{ => components}/Files/icons/mp3.svg | 0 src/{ => components}/Files/icons/mp4.svg | 0 src/{ => components}/Files/icons/mpeg.svg | 0 src/{ => components}/Files/icons/pdf.svg | 0 src/{ => components}/Files/icons/ppt.svg | 0 src/{ => components}/Files/icons/ppx.svg | 0 src/{ => components}/Files/icons/rar.svg | 0 src/{ => components}/Files/icons/txt.svg | 0 src/{ => components}/Files/icons/xls.svg | 0 src/{ => components}/Files/icons/zip.svg | 0 src/{ => components}/Files/index.js | 2 +- src/{ => components}/Files/styles.js | 2 +- src/{ => components}/ImageGallery/index.js | 2 +- src/{ => components}/ImageGallery/styles.js | 0 src/{ => components}/Images/Image.js | 2 +- src/{ => components}/Images/index.js | 2 +- src/{ => components}/Images/styles.js | 0 src/{ => components}/Layout/Layout.stories.js | 0 src/{ => components}/Layout/index.js | 6 +-- src/{ => components}/Layout/styles.js | 0 .../Linkify/index.js | 0 .../Linkify/styles.js | 0 .../Menu/index.js | 0 .../Menu/styles.js | 0 .../Message/IncomingMessage.js | 2 +- src/{ => components}/Message/Options.js | 4 +- .../Message/OutgoingMessage.js | 2 +- src/{ => components}/Message/index.js | 4 +- src/{ => components}/Message/styles.js | 0 .../MessageComposeBar/index.js | 2 +- .../MessageComposeBar/styles.js | 0 src/{ => components}/MessageList/index.js | 6 +-- src/{ => components}/MessageList/styles.js | 0 .../Modal/index.js | 0 .../Modal/styles.js | 0 .../Notification/index.js | 0 .../Notification/styles.js | 0 .../Options/index.js | 0 .../Options/styles.js | 0 .../Popover/index.js | 0 .../Popover/styles.js | 0 src/{ => components}/Post/Post.stories.js | 0 src/{ => components}/Post/index.js | 10 ++-- src/{ => components}/Post/styles.js | 4 +- .../PostCompose/AuthorSelector.js | 6 +-- src/{ => components}/PostCompose/index.js | 6 +-- src/{ => components}/PostCompose/styles.js | 2 +- .../RecentChat/CreateNewChat.js | 2 +- src/{ => components}/RecentChat/index.js | 4 +- src/{ => components}/RecentChat/styles.js | 0 src/{ => components}/SideMenu/MenuTab.js | 2 +- .../SideMenu/icons/community.svg | 0 src/{ => components}/SideMenu/index.js | 2 +- src/{ => components}/SideMenu/styles.js | 0 .../SideMenuItem/index.js | 0 .../SideMenuItem/styles.js | 0 .../Tab/Tab.stories.js | 0 .../Tab/index.js | 0 .../Tab/styles.js | 0 .../Tabs/index.js | 0 .../Tabs/styles.js | 0 .../Time/index.js | 0 .../Time/styles.js | 0 .../UiKitProvider/GlobalStyle.js | 0 .../UiKitProvider/GlobalTheme.js | 0 .../UiKitProvider/Localisation/index.js | 0 src/{ => components}/UiKitProvider/index.js | 10 ++-- src/{ => components}/UiKitProvider/styles.js | 0 src/{ => components}/UserFeedHeader/index.js | 4 +- src/{ => components}/UserFeedHeader/styles.js | 0 src/index.js | 48 +++++++++---------- 140 files changed, 154 insertions(+), 154 deletions(-) rename src/{ => components}/Avatar/index.js (86%) rename src/{ => components}/Avatar/styles.js (100%) rename src/{commonComponents => components}/Button/Button.stories.js (100%) rename src/{commonComponents => components}/Button/index.js (100%) rename src/{commonComponents => components}/Button/styles.js (100%) rename src/{ => components}/Chat/index.js (93%) rename src/{ => components}/Chat/styles.js (100%) rename src/{ => components}/ChatDetails/index.js (88%) rename src/{ => components}/ChatDetails/styles.js (100%) rename src/{ => components}/ChatHeader/index.js (87%) rename src/{ => components}/ChatHeader/styles.js (100%) rename src/{ => components}/ChatHome/ChatHome.stories.js (100%) rename src/{ => components}/ChatHome/index.js (94%) rename src/{ => components}/ChatHome/styles.js (100%) rename src/{ => components}/ChatItem/index.js (87%) rename src/{ => components}/ChatItem/styles.js (86%) rename src/{ => components}/Comment/index.js (95%) rename src/{ => components}/Comment/styles.js (95%) rename src/{ => components}/CommentComposeBar/index.js (92%) rename src/{ => components}/CommentComposeBar/styles.js (92%) rename src/{ => components}/Community/Community.stories.js (98%) rename src/{ => components}/Community/CommunityMembers.js (88%) rename src/{ => components}/Community/NewsFeed.js (83%) rename src/{ => components}/Community/UserFeed.js (84%) rename src/{ => components}/Community/index.js (92%) rename src/{ => components}/Community/styles.js (93%) rename src/{ => components}/CommunityCreationModal/index.js (82%) rename src/{ => components}/CommunityCreationModal/styles.js (100%) rename src/{ => components}/CommunityForm/CategorySelector.js (87%) rename src/{ => components}/CommunityForm/UserSelector.js (94%) rename src/{ => components}/CommunityForm/index.js (97%) rename src/{ => components}/CommunityForm/styles.js (97%) rename src/{ => components}/CommunityInformation/index.js (90%) rename src/{ => components}/CommunityInformation/styles.js (92%) rename src/{ => components}/CommunityItem/index.js (75%) rename src/{ => components}/CommunityItem/styles.js (77%) rename src/{commonComponents => components}/CommunityName/index.js (100%) rename src/{commonComponents => components}/CommunityName/styles.js (100%) rename src/{commonComponents => components}/Confirm/index.js (100%) rename src/{commonComponents => components}/Confirm/styles.js (100%) rename src/{ => components}/EmptyFeed/index.js (82%) rename src/{ => components}/EmptyFeed/styles.js (100%) rename src/{ => components}/EngagementBar/index.js (93%) rename src/{ => components}/EngagementBar/styles.js (100%) rename src/{ => components}/ExploreHome/CategoryPage.js (91%) rename src/{ => components}/ExploreHome/Community.js (83%) rename src/{ => components}/ExploreHome/CommunitySearch.js (91%) rename src/{ => components}/ExploreHome/ExploreHeader.js (90%) rename src/{ => components}/ExploreHome/TrendingCommunity.js (86%) rename src/{ => components}/ExploreHome/index.js (93%) rename src/{ => components}/ExploreHome/styles.js (97%) rename src/{commonComponents => components}/FeedHeaderTabs/index.js (100%) rename src/{commonComponents => components}/FeedHeaderTabs/styles.js (100%) rename src/{ => components}/FeedLayout/index.js (81%) rename src/{ => components}/FeedLayout/styles.js (100%) rename src/{ => components}/FeedSideMenu/index.js (90%) rename src/{ => components}/FeedSideMenu/styles.js (100%) rename src/{ => components}/Files/File.js (93%) rename src/{ => components}/Files/FileIcon.js (100%) rename src/{ => components}/Files/icons/audio.svg (100%) rename src/{ => components}/Files/icons/avi.svg (100%) rename src/{ => components}/Files/icons/csv.svg (100%) rename src/{ => components}/Files/icons/default.svg (100%) rename src/{ => components}/Files/icons/doc.svg (100%) rename src/{ => components}/Files/icons/exe.svg (100%) rename src/{ => components}/Files/icons/html.svg (100%) rename src/{ => components}/Files/icons/img.svg (100%) rename src/{ => components}/Files/icons/mov.svg (100%) rename src/{ => components}/Files/icons/mp3.svg (100%) rename src/{ => components}/Files/icons/mp4.svg (100%) rename src/{ => components}/Files/icons/mpeg.svg (100%) rename src/{ => components}/Files/icons/pdf.svg (100%) rename src/{ => components}/Files/icons/ppt.svg (100%) rename src/{ => components}/Files/icons/ppx.svg (100%) rename src/{ => components}/Files/icons/rar.svg (100%) rename src/{ => components}/Files/icons/txt.svg (100%) rename src/{ => components}/Files/icons/xls.svg (100%) rename src/{ => components}/Files/icons/zip.svg (100%) rename src/{ => components}/Files/index.js (92%) rename src/{ => components}/Files/styles.js (95%) rename src/{ => components}/ImageGallery/index.js (95%) rename src/{ => components}/ImageGallery/styles.js (100%) rename src/{ => components}/Images/Image.js (94%) rename src/{ => components}/Images/index.js (95%) rename src/{ => components}/Images/styles.js (100%) rename src/{ => components}/Layout/Layout.stories.js (100%) rename src/{ => components}/Layout/index.js (84%) rename src/{ => components}/Layout/styles.js (100%) rename src/{commonComponents => components}/Linkify/index.js (100%) rename src/{commonComponents => components}/Linkify/styles.js (100%) rename src/{commonComponents => components}/Menu/index.js (100%) rename src/{commonComponents => components}/Menu/styles.js (100%) rename src/{ => components}/Message/IncomingMessage.js (74%) rename src/{ => components}/Message/Options.js (96%) rename src/{ => components}/Message/OutgoingMessage.js (58%) rename src/{ => components}/Message/index.js (93%) rename src/{ => components}/Message/styles.js (100%) rename src/{ => components}/MessageComposeBar/index.js (93%) rename src/{ => components}/MessageComposeBar/styles.js (100%) rename src/{ => components}/MessageList/index.js (89%) rename src/{ => components}/MessageList/styles.js (100%) rename src/{commonComponents => components}/Modal/index.js (100%) rename src/{commonComponents => components}/Modal/styles.js (100%) rename src/{commonComponents => components}/Notification/index.js (100%) rename src/{commonComponents => components}/Notification/styles.js (100%) rename src/{commonComponents => components}/Options/index.js (100%) rename src/{commonComponents => components}/Options/styles.js (100%) rename src/{commonComponents => components}/Popover/index.js (100%) rename src/{commonComponents => components}/Popover/styles.js (100%) rename src/{ => components}/Post/Post.stories.js (100%) rename src/{ => components}/Post/index.js (91%) rename src/{ => components}/Post/styles.js (88%) rename src/{ => components}/PostCompose/AuthorSelector.js (89%) rename src/{ => components}/PostCompose/index.js (96%) rename src/{ => components}/PostCompose/styles.js (98%) rename src/{ => components}/RecentChat/CreateNewChat.js (96%) rename src/{ => components}/RecentChat/index.js (87%) rename src/{ => components}/RecentChat/styles.js (100%) rename src/{ => components}/SideMenu/MenuTab.js (85%) rename src/{ => components}/SideMenu/icons/community.svg (100%) rename src/{ => components}/SideMenu/index.js (90%) rename src/{ => components}/SideMenu/styles.js (100%) rename src/{commonComponents => components}/SideMenuItem/index.js (100%) rename src/{commonComponents => components}/SideMenuItem/styles.js (100%) rename src/{commonComponents => components}/Tab/Tab.stories.js (100%) rename src/{commonComponents => components}/Tab/index.js (100%) rename src/{commonComponents => components}/Tab/styles.js (100%) rename src/{commonComponents => components}/Tabs/index.js (100%) rename src/{commonComponents => components}/Tabs/styles.js (100%) rename src/{commonComponents => components}/Time/index.js (100%) rename src/{commonComponents => components}/Time/styles.js (100%) rename src/{ => components}/UiKitProvider/GlobalStyle.js (100%) rename src/{ => components}/UiKitProvider/GlobalTheme.js (100%) rename src/{ => components}/UiKitProvider/Localisation/index.js (100%) rename src/{ => components}/UiKitProvider/index.js (84%) rename src/{ => components}/UiKitProvider/styles.js (100%) rename src/{ => components}/UserFeedHeader/index.js (77%) rename src/{ => components}/UserFeedHeader/styles.js (100%) diff --git a/.storybook/UiKitDecorator.js b/.storybook/UiKitDecorator.js index 27263198b..885cfbd17 100644 --- a/.storybook/UiKitDecorator.js +++ b/.storybook/UiKitDecorator.js @@ -1,7 +1,7 @@ -import React, { useState, useEffect } from 'react'; -import UiKitProvider from '../src/UiKitProvider'; +import React from 'react'; +import UiKitProvider from '../src/components/UiKitProvider'; -const UiKitDecorator = storyFn => ( +const UiKitDecorator = (storyFn) => ( { diff --git a/src/CommunityCreationModal/styles.js b/src/components/CommunityCreationModal/styles.js similarity index 100% rename from src/CommunityCreationModal/styles.js rename to src/components/CommunityCreationModal/styles.js diff --git a/src/CommunityForm/CategorySelector.js b/src/components/CommunityForm/CategorySelector.js similarity index 87% rename from src/CommunityForm/CategorySelector.js rename to src/components/CommunityForm/CategorySelector.js index 242c92621..bfa8f8406 100644 --- a/src/CommunityForm/CategorySelector.js +++ b/src/components/CommunityForm/CategorySelector.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { MenuItem } from '../commonComponents/Menu'; +import { MenuItem } from '../Menu'; -import { customizableComponent } from '../hoks/customization'; -import { getCategories, getCategory } from '../mock'; +import { customizableComponent } from '../../hoks/customization'; +import { getCategories, getCategory } from '../../mock'; import { Avatar, Selector, SelectorPopover, SelectorList, SelectIcon } from './styles'; diff --git a/src/CommunityForm/UserSelector.js b/src/components/CommunityForm/UserSelector.js similarity index 94% rename from src/CommunityForm/UserSelector.js rename to src/components/CommunityForm/UserSelector.js index d3cf4a3e8..84a744816 100644 --- a/src/CommunityForm/UserSelector.js +++ b/src/components/CommunityForm/UserSelector.js @@ -1,8 +1,8 @@ import React, { useState, useEffect, useRef } from 'react'; -import { MenuItem } from '../commonComponents/Menu'; +import { MenuItem } from '../Menu'; -import { customizableComponent } from '../hoks/customization'; -import { testUsers } from '../mock'; +import { customizableComponent } from '../../hoks/customization'; +import { testUsers } from '../../mock'; import { Avatar, diff --git a/src/CommunityForm/index.js b/src/components/CommunityForm/index.js similarity index 97% rename from src/CommunityForm/index.js rename to src/components/CommunityForm/index.js index 546b38d02..47bb2699d 100644 --- a/src/CommunityForm/index.js +++ b/src/components/CommunityForm/index.js @@ -1,10 +1,10 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; -import { customizableComponent } from '../hoks/customization'; -import Button from '../commonComponents/Button'; +import { customizableComponent } from '../../hoks/customization'; +import Button from '../Button'; -import { getCommunities } from '../mock'; +import { getCommunities } from '../../mock'; import CategorySelector from './CategorySelector'; import UserSelector from './UserSelector'; diff --git a/src/CommunityForm/styles.js b/src/components/CommunityForm/styles.js similarity index 97% rename from src/CommunityForm/styles.js rename to src/components/CommunityForm/styles.js index d1b7111a9..8caf006fe 100644 --- a/src/CommunityForm/styles.js +++ b/src/components/CommunityForm/styles.js @@ -11,10 +11,10 @@ import { faChevronDown, faTimes, } from '@fortawesome/pro-regular-svg-icons'; -import { PrimaryButton } from '../commonComponents/Button'; -import Popover from '../commonComponents/Popover'; +import { PrimaryButton } from '../Button'; +import Popover from '../Popover'; import UIAvatar from '../Avatar'; -import Menu from '../commonComponents/Menu'; +import Menu from '../Menu'; const ErrorMessageWrapper = styled.div` margin-top: 8px; diff --git a/src/CommunityInformation/index.js b/src/components/CommunityInformation/index.js similarity index 90% rename from src/CommunityInformation/index.js rename to src/components/CommunityInformation/index.js index 963d68b5f..ea11e5e52 100644 --- a/src/CommunityInformation/index.js +++ b/src/components/CommunityInformation/index.js @@ -1,10 +1,10 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; -import { confirm } from '../commonComponents/Confirm'; -import { useCommunitiesMock, getMyCommunityIds } from '../mock'; +import { confirm } from '../Confirm'; +import { useCommunitiesMock, getMyCommunityIds } from '../../mock'; import { Count, diff --git a/src/CommunityInformation/styles.js b/src/components/CommunityInformation/styles.js similarity index 92% rename from src/CommunityInformation/styles.js rename to src/components/CommunityInformation/styles.js index ae1db3299..981e10797 100644 --- a/src/CommunityInformation/styles.js +++ b/src/components/CommunityInformation/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; -import { PrimaryButton } from '../commonComponents/Button'; +import { PrimaryButton } from '../Button'; import UIAvatar from '../Avatar'; -import UIOptions from '../commonComponents/Options'; +import UIOptions from '../Options'; export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` font-size: 16px; diff --git a/src/CommunityItem/index.js b/src/components/CommunityItem/index.js similarity index 75% rename from src/CommunityItem/index.js rename to src/components/CommunityItem/index.js index ac368a446..0af8fb81e 100644 --- a/src/CommunityItem/index.js +++ b/src/components/CommunityItem/index.js @@ -1,7 +1,7 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; -import CommunityName from '../commonComponents/CommunityName'; +import { customizableComponent } from '../../hoks/customization'; +import CommunityName from '../CommunityName'; import { Avatar, CommunityItemContainer } from './styles'; diff --git a/src/CommunityItem/styles.js b/src/components/CommunityItem/styles.js similarity index 77% rename from src/CommunityItem/styles.js rename to src/components/CommunityItem/styles.js index 93458f2e9..2c57241d0 100644 --- a/src/CommunityItem/styles.js +++ b/src/components/CommunityItem/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; import UiKitAvatar from '../Avatar'; -import SideMenuItem from '../commonComponents/SideMenuItem'; +import SideMenuItem from '../SideMenuItem'; export const CommunityItemContainer = styled(SideMenuItem)``; diff --git a/src/commonComponents/CommunityName/index.js b/src/components/CommunityName/index.js similarity index 100% rename from src/commonComponents/CommunityName/index.js rename to src/components/CommunityName/index.js diff --git a/src/commonComponents/CommunityName/styles.js b/src/components/CommunityName/styles.js similarity index 100% rename from src/commonComponents/CommunityName/styles.js rename to src/components/CommunityName/styles.js diff --git a/src/commonComponents/Confirm/index.js b/src/components/Confirm/index.js similarity index 100% rename from src/commonComponents/Confirm/index.js rename to src/components/Confirm/index.js diff --git a/src/commonComponents/Confirm/styles.js b/src/components/Confirm/styles.js similarity index 100% rename from src/commonComponents/Confirm/styles.js rename to src/components/Confirm/styles.js diff --git a/src/EmptyFeed/index.js b/src/components/EmptyFeed/index.js similarity index 82% rename from src/EmptyFeed/index.js rename to src/components/EmptyFeed/index.js index 3c4cb68bb..abe359fb3 100644 --- a/src/EmptyFeed/index.js +++ b/src/components/EmptyFeed/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { EmptyFeedContainer, FeedIcon } from './styles'; diff --git a/src/EmptyFeed/styles.js b/src/components/EmptyFeed/styles.js similarity index 100% rename from src/EmptyFeed/styles.js rename to src/components/EmptyFeed/styles.js diff --git a/src/EngagementBar/index.js b/src/components/EngagementBar/index.js similarity index 93% rename from src/EngagementBar/index.js rename to src/components/EngagementBar/index.js index 3cee37129..bfad04367 100644 --- a/src/EngagementBar/index.js +++ b/src/components/EngagementBar/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { toHumanString } from 'human-readable-numbers'; -import { customizableComponent } from '../hoks/customization'; -import { SecondaryButton } from '../commonComponents/Button'; +import { customizableComponent } from '../../hoks/customization'; +import { SecondaryButton } from '../Button'; import CommentComposeBar from '../CommentComposeBar'; import Comment from '../Comment'; diff --git a/src/EngagementBar/styles.js b/src/components/EngagementBar/styles.js similarity index 100% rename from src/EngagementBar/styles.js rename to src/components/EngagementBar/styles.js diff --git a/src/ExploreHome/CategoryPage.js b/src/components/ExploreHome/CategoryPage.js similarity index 91% rename from src/ExploreHome/CategoryPage.js rename to src/components/ExploreHome/CategoryPage.js index c42d18e7b..1d00b97af 100644 --- a/src/ExploreHome/CategoryPage.js +++ b/src/components/ExploreHome/CategoryPage.js @@ -1,8 +1,8 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; -import { getCommunities, getCategory } from '../mock'; +import { getCommunities, getCategory } from '../../mock'; import Community from './Community'; diff --git a/src/ExploreHome/Community.js b/src/components/ExploreHome/Community.js similarity index 83% rename from src/ExploreHome/Community.js rename to src/components/ExploreHome/Community.js index db5d798ae..e5bde83db 100644 --- a/src/ExploreHome/Community.js +++ b/src/components/ExploreHome/Community.js @@ -1,8 +1,8 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../hoks/customization'; -import CommunityName from '../commonComponents/CommunityName'; +import { customizableComponent } from '../../hoks/customization'; +import CommunityName from '../CommunityName'; import { Avatar, CommunityItem, Description, Count } from './styles'; diff --git a/src/ExploreHome/CommunitySearch.js b/src/components/ExploreHome/CommunitySearch.js similarity index 91% rename from src/ExploreHome/CommunitySearch.js rename to src/components/ExploreHome/CommunitySearch.js index 55908bf52..4decd727a 100644 --- a/src/ExploreHome/CommunitySearch.js +++ b/src/components/ExploreHome/CommunitySearch.js @@ -1,10 +1,10 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../hoks/customization'; -import Popover from '../commonComponents/Popover'; -import { MenuItem } from '../commonComponents/Menu'; +import { customizableComponent } from '../../hoks/customization'; +import Popover from '../Popover'; +import { MenuItem } from '../Menu'; -import { getCommunities } from '../mock'; +import { getCommunities } from '../../mock'; import { Avatar, diff --git a/src/ExploreHome/ExploreHeader.js b/src/components/ExploreHome/ExploreHeader.js similarity index 90% rename from src/ExploreHome/ExploreHeader.js rename to src/components/ExploreHome/ExploreHeader.js index 7dc61770c..4b0921d92 100644 --- a/src/ExploreHome/ExploreHeader.js +++ b/src/components/ExploreHome/ExploreHeader.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import CommunitySearch from './CommunitySearch'; diff --git a/src/ExploreHome/TrendingCommunity.js b/src/components/ExploreHome/TrendingCommunity.js similarity index 86% rename from src/ExploreHome/TrendingCommunity.js rename to src/components/ExploreHome/TrendingCommunity.js index 2092fa85e..32d5d7184 100644 --- a/src/ExploreHome/TrendingCommunity.js +++ b/src/components/ExploreHome/TrendingCommunity.js @@ -1,8 +1,8 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../hoks/customization'; -import CommunityName from '../commonComponents/CommunityName'; +import { customizableComponent } from '../../hoks/customization'; +import CommunityName from '../CommunityName'; import { Avatar, diff --git a/src/ExploreHome/index.js b/src/components/ExploreHome/index.js similarity index 93% rename from src/ExploreHome/index.js rename to src/components/ExploreHome/index.js index 79d3afbc3..905b3c1ac 100644 --- a/src/ExploreHome/index.js +++ b/src/components/ExploreHome/index.js @@ -1,10 +1,10 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; -import Modal from '../commonComponents/Modal'; -import { MenuItem } from '../commonComponents/Menu'; +import { customizableComponent } from '../../hoks/customization'; +import Modal from '../Modal'; +import { MenuItem } from '../Menu'; -import { getCommunities, getCategories } from '../mock'; +import { getCommunities, getCategories } from '../../mock'; import Community from './Community'; import TrendingCommunity from './TrendingCommunity'; diff --git a/src/ExploreHome/styles.js b/src/components/ExploreHome/styles.js similarity index 97% rename from src/ExploreHome/styles.js rename to src/components/ExploreHome/styles.js index cbaf5a96e..c31364ae8 100644 --- a/src/ExploreHome/styles.js +++ b/src/components/ExploreHome/styles.js @@ -6,9 +6,9 @@ import { faChevronLeft, faChevronRight, } from '@fortawesome/pro-regular-svg-icons'; -import Button, { SecondaryButton } from '../commonComponents/Button'; +import Button, { SecondaryButton } from '../Button'; import UIAvatar from '../Avatar'; -import Menu from '../commonComponents/Menu'; +import Menu from '../Menu'; export const SearchIcon = styled(FaIcon).attrs({ icon: faSearch })` color: #898e9e; diff --git a/src/commonComponents/FeedHeaderTabs/index.js b/src/components/FeedHeaderTabs/index.js similarity index 100% rename from src/commonComponents/FeedHeaderTabs/index.js rename to src/components/FeedHeaderTabs/index.js diff --git a/src/commonComponents/FeedHeaderTabs/styles.js b/src/components/FeedHeaderTabs/styles.js similarity index 100% rename from src/commonComponents/FeedHeaderTabs/styles.js rename to src/components/FeedHeaderTabs/styles.js diff --git a/src/FeedLayout/index.js b/src/components/FeedLayout/index.js similarity index 81% rename from src/FeedLayout/index.js rename to src/components/FeedLayout/index.js index 6fc4d3724..9d1097960 100644 --- a/src/FeedLayout/index.js +++ b/src/components/FeedLayout/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { LayoutContainer } from './styles'; diff --git a/src/FeedLayout/styles.js b/src/components/FeedLayout/styles.js similarity index 100% rename from src/FeedLayout/styles.js rename to src/components/FeedLayout/styles.js diff --git a/src/FeedSideMenu/index.js b/src/components/FeedSideMenu/index.js similarity index 90% rename from src/FeedSideMenu/index.js rename to src/components/FeedSideMenu/index.js index 1be532393..2eb826f90 100644 --- a/src/FeedSideMenu/index.js +++ b/src/components/FeedSideMenu/index.js @@ -1,10 +1,10 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import CommunityItem from '../CommunityItem'; -import SideMenuItem from '../commonComponents/SideMenuItem'; +import SideMenuItem from '../SideMenuItem'; -import { getMyCommunities } from '../mock'; +import { getMyCommunities } from '../../mock'; import { SideMenuListContainer, diff --git a/src/FeedSideMenu/styles.js b/src/components/FeedSideMenu/styles.js similarity index 100% rename from src/FeedSideMenu/styles.js rename to src/components/FeedSideMenu/styles.js diff --git a/src/Files/File.js b/src/components/Files/File.js similarity index 93% rename from src/Files/File.js rename to src/components/Files/File.js index 9152e7711..be2ae3d77 100644 --- a/src/Files/File.js +++ b/src/components/Files/File.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; import filesize from 'filesize'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import FileIcon from './FileIcon'; diff --git a/src/Files/FileIcon.js b/src/components/Files/FileIcon.js similarity index 100% rename from src/Files/FileIcon.js rename to src/components/Files/FileIcon.js diff --git a/src/Files/icons/audio.svg b/src/components/Files/icons/audio.svg similarity index 100% rename from src/Files/icons/audio.svg rename to src/components/Files/icons/audio.svg diff --git a/src/Files/icons/avi.svg b/src/components/Files/icons/avi.svg similarity index 100% rename from src/Files/icons/avi.svg rename to src/components/Files/icons/avi.svg diff --git a/src/Files/icons/csv.svg b/src/components/Files/icons/csv.svg similarity index 100% rename from src/Files/icons/csv.svg rename to src/components/Files/icons/csv.svg diff --git a/src/Files/icons/default.svg b/src/components/Files/icons/default.svg similarity index 100% rename from src/Files/icons/default.svg rename to src/components/Files/icons/default.svg diff --git a/src/Files/icons/doc.svg b/src/components/Files/icons/doc.svg similarity index 100% rename from src/Files/icons/doc.svg rename to src/components/Files/icons/doc.svg diff --git a/src/Files/icons/exe.svg b/src/components/Files/icons/exe.svg similarity index 100% rename from src/Files/icons/exe.svg rename to src/components/Files/icons/exe.svg diff --git a/src/Files/icons/html.svg b/src/components/Files/icons/html.svg similarity index 100% rename from src/Files/icons/html.svg rename to src/components/Files/icons/html.svg diff --git a/src/Files/icons/img.svg b/src/components/Files/icons/img.svg similarity index 100% rename from src/Files/icons/img.svg rename to src/components/Files/icons/img.svg diff --git a/src/Files/icons/mov.svg b/src/components/Files/icons/mov.svg similarity index 100% rename from src/Files/icons/mov.svg rename to src/components/Files/icons/mov.svg diff --git a/src/Files/icons/mp3.svg b/src/components/Files/icons/mp3.svg similarity index 100% rename from src/Files/icons/mp3.svg rename to src/components/Files/icons/mp3.svg diff --git a/src/Files/icons/mp4.svg b/src/components/Files/icons/mp4.svg similarity index 100% rename from src/Files/icons/mp4.svg rename to src/components/Files/icons/mp4.svg diff --git a/src/Files/icons/mpeg.svg b/src/components/Files/icons/mpeg.svg similarity index 100% rename from src/Files/icons/mpeg.svg rename to src/components/Files/icons/mpeg.svg diff --git a/src/Files/icons/pdf.svg b/src/components/Files/icons/pdf.svg similarity index 100% rename from src/Files/icons/pdf.svg rename to src/components/Files/icons/pdf.svg diff --git a/src/Files/icons/ppt.svg b/src/components/Files/icons/ppt.svg similarity index 100% rename from src/Files/icons/ppt.svg rename to src/components/Files/icons/ppt.svg diff --git a/src/Files/icons/ppx.svg b/src/components/Files/icons/ppx.svg similarity index 100% rename from src/Files/icons/ppx.svg rename to src/components/Files/icons/ppx.svg diff --git a/src/Files/icons/rar.svg b/src/components/Files/icons/rar.svg similarity index 100% rename from src/Files/icons/rar.svg rename to src/components/Files/icons/rar.svg diff --git a/src/Files/icons/txt.svg b/src/components/Files/icons/txt.svg similarity index 100% rename from src/Files/icons/txt.svg rename to src/components/Files/icons/txt.svg diff --git a/src/Files/icons/xls.svg b/src/components/Files/icons/xls.svg similarity index 100% rename from src/Files/icons/xls.svg rename to src/components/Files/icons/xls.svg diff --git a/src/Files/icons/zip.svg b/src/components/Files/icons/zip.svg similarity index 100% rename from src/Files/icons/zip.svg rename to src/components/Files/icons/zip.svg diff --git a/src/Files/index.js b/src/components/Files/index.js similarity index 92% rename from src/Files/index.js rename to src/components/Files/index.js index bd636eb9f..9360f653e 100644 --- a/src/Files/index.js +++ b/src/components/Files/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import File from './File'; diff --git a/src/Files/styles.js b/src/components/Files/styles.js similarity index 95% rename from src/Files/styles.js rename to src/components/Files/styles.js index e296fde80..d75e98354 100644 --- a/src/Files/styles.js +++ b/src/components/Files/styles.js @@ -3,7 +3,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton } from '../commonComponents/Button'; +import { SecondaryButton } from '../Button'; export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` padding: 0 10px; diff --git a/src/ImageGallery/index.js b/src/components/ImageGallery/index.js similarity index 95% rename from src/ImageGallery/index.js rename to src/components/ImageGallery/index.js index e61333a8b..3de3180c7 100644 --- a/src/ImageGallery/index.js +++ b/src/components/ImageGallery/index.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { ImageGalleryContainer, diff --git a/src/ImageGallery/styles.js b/src/components/ImageGallery/styles.js similarity index 100% rename from src/ImageGallery/styles.js rename to src/components/ImageGallery/styles.js diff --git a/src/Images/Image.js b/src/components/Images/Image.js similarity index 94% rename from src/Images/Image.js rename to src/components/Images/Image.js index 8c22293f2..40b759a9c 100644 --- a/src/Images/Image.js +++ b/src/components/Images/Image.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { ImageContainer, ProgressBar, RemoveIcon, NumberOfHiddenImagesOverlay } from './styles'; diff --git a/src/Images/index.js b/src/components/Images/index.js similarity index 95% rename from src/Images/index.js rename to src/components/Images/index.js index 253c94551..c63fe9115 100644 --- a/src/Images/index.js +++ b/src/components/Images/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import Image from './Image'; import ImageGallery from '../ImageGallery'; diff --git a/src/Images/styles.js b/src/components/Images/styles.js similarity index 100% rename from src/Images/styles.js rename to src/components/Images/styles.js diff --git a/src/Layout/Layout.stories.js b/src/components/Layout/Layout.stories.js similarity index 100% rename from src/Layout/Layout.stories.js rename to src/components/Layout/Layout.stories.js diff --git a/src/Layout/index.js b/src/components/Layout/index.js similarity index 84% rename from src/Layout/index.js rename to src/components/Layout/index.js index 671dc6fa3..1395a35ab 100644 --- a/src/Layout/index.js +++ b/src/components/Layout/index.js @@ -1,9 +1,9 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; import Avatar from '../Avatar'; -import Popover from '../commonComponents/Popover'; -import Menu, { MenuItem } from '../commonComponents/Menu'; +import Popover from '../Popover'; +import Menu, { MenuItem } from '../Menu'; const Layout = () => { const [isOpen, setIsOpen] = useState(false); diff --git a/src/Layout/styles.js b/src/components/Layout/styles.js similarity index 100% rename from src/Layout/styles.js rename to src/components/Layout/styles.js diff --git a/src/commonComponents/Linkify/index.js b/src/components/Linkify/index.js similarity index 100% rename from src/commonComponents/Linkify/index.js rename to src/components/Linkify/index.js diff --git a/src/commonComponents/Linkify/styles.js b/src/components/Linkify/styles.js similarity index 100% rename from src/commonComponents/Linkify/styles.js rename to src/components/Linkify/styles.js diff --git a/src/commonComponents/Menu/index.js b/src/components/Menu/index.js similarity index 100% rename from src/commonComponents/Menu/index.js rename to src/components/Menu/index.js diff --git a/src/commonComponents/Menu/styles.js b/src/components/Menu/styles.js similarity index 100% rename from src/commonComponents/Menu/styles.js rename to src/components/Menu/styles.js diff --git a/src/Message/IncomingMessage.js b/src/components/Message/IncomingMessage.js similarity index 74% rename from src/Message/IncomingMessage.js rename to src/components/Message/IncomingMessage.js index d0172d4c5..86c7f8fe7 100644 --- a/src/Message/IncomingMessage.js +++ b/src/components/Message/IncomingMessage.js @@ -1,6 +1,6 @@ import React from 'react'; import Message from '.'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; const IncomingMessage = props => ; diff --git a/src/Message/Options.js b/src/components/Message/Options.js similarity index 96% rename from src/Message/Options.js rename to src/components/Message/Options.js index b6edae5d7..ef39494c3 100644 --- a/src/Message/Options.js +++ b/src/components/Message/Options.js @@ -1,8 +1,8 @@ import React, { useState, useEffect } from 'react'; import { MessageEditorRepository, MessageFlagRepository } from 'eko-sdk'; -import Popover from '../commonComponents/Popover'; -import Menu, { MenuItem } from '../commonComponents/Menu'; +import Popover from '../Popover'; +import Menu, { MenuItem } from '../Menu'; import { MessageOptionsIcon, SaveIcon, CloseIcon, EditingInput, EditingContainer } from './styles'; diff --git a/src/Message/OutgoingMessage.js b/src/components/Message/OutgoingMessage.js similarity index 58% rename from src/Message/OutgoingMessage.js rename to src/components/Message/OutgoingMessage.js index 1636a2ea0..bb13db073 100644 --- a/src/Message/OutgoingMessage.js +++ b/src/components/Message/OutgoingMessage.js @@ -1,4 +1,4 @@ import Message from '.'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; export default customizableComponent('OutgoingMessage')(Message); diff --git a/src/Message/index.js b/src/components/Message/index.js similarity index 93% rename from src/Message/index.js rename to src/components/Message/index.js index 3f70bb071..cf6482616 100644 --- a/src/Message/index.js +++ b/src/components/Message/index.js @@ -1,9 +1,9 @@ import React from 'react'; import { FormattedTime } from 'react-intl'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; -import Linkify from '../commonComponents/Linkify'; +import Linkify from '../Linkify'; import Options from './Options'; diff --git a/src/Message/styles.js b/src/components/Message/styles.js similarity index 100% rename from src/Message/styles.js rename to src/components/Message/styles.js diff --git a/src/MessageComposeBar/index.js b/src/components/MessageComposeBar/index.js similarity index 93% rename from src/MessageComposeBar/index.js rename to src/components/MessageComposeBar/index.js index db155e2f1..2b8131463 100644 --- a/src/MessageComposeBar/index.js +++ b/src/components/MessageComposeBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { MessageComposeBarContainer, diff --git a/src/MessageComposeBar/styles.js b/src/components/MessageComposeBar/styles.js similarity index 100% rename from src/MessageComposeBar/styles.js rename to src/components/MessageComposeBar/styles.js diff --git a/src/MessageList/index.js b/src/components/MessageList/index.js similarity index 89% rename from src/MessageList/index.js rename to src/components/MessageList/index.js index cc0a6cbcc..58e31fabe 100644 --- a/src/MessageList/index.js +++ b/src/components/MessageList/index.js @@ -4,9 +4,9 @@ import { MessageRepository } from 'eko-sdk'; import IncomingMessage from '../Message/IncomingMessage'; import OutgoingMessage from '../Message/OutgoingMessage'; -import { customizableComponent } from '../hoks/customization'; -import withSDK from '../hoks/withSDK'; -import usePaginatedLiveObject from '../hooks/usePaginatedLiveObject'; +import { customizableComponent } from '../../hoks/customization'; +import withSDK from '../../hoks/withSDK'; +import usePaginatedLiveObject from '../../hooks/usePaginatedLiveObject'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; diff --git a/src/MessageList/styles.js b/src/components/MessageList/styles.js similarity index 100% rename from src/MessageList/styles.js rename to src/components/MessageList/styles.js diff --git a/src/commonComponents/Modal/index.js b/src/components/Modal/index.js similarity index 100% rename from src/commonComponents/Modal/index.js rename to src/components/Modal/index.js diff --git a/src/commonComponents/Modal/styles.js b/src/components/Modal/styles.js similarity index 100% rename from src/commonComponents/Modal/styles.js rename to src/components/Modal/styles.js diff --git a/src/commonComponents/Notification/index.js b/src/components/Notification/index.js similarity index 100% rename from src/commonComponents/Notification/index.js rename to src/components/Notification/index.js diff --git a/src/commonComponents/Notification/styles.js b/src/components/Notification/styles.js similarity index 100% rename from src/commonComponents/Notification/styles.js rename to src/components/Notification/styles.js diff --git a/src/commonComponents/Options/index.js b/src/components/Options/index.js similarity index 100% rename from src/commonComponents/Options/index.js rename to src/components/Options/index.js diff --git a/src/commonComponents/Options/styles.js b/src/components/Options/styles.js similarity index 100% rename from src/commonComponents/Options/styles.js rename to src/components/Options/styles.js diff --git a/src/commonComponents/Popover/index.js b/src/components/Popover/index.js similarity index 100% rename from src/commonComponents/Popover/index.js rename to src/components/Popover/index.js diff --git a/src/commonComponents/Popover/styles.js b/src/components/Popover/styles.js similarity index 100% rename from src/commonComponents/Popover/styles.js rename to src/components/Popover/styles.js diff --git a/src/Post/Post.stories.js b/src/components/Post/Post.stories.js similarity index 100% rename from src/Post/Post.stories.js rename to src/components/Post/Post.stories.js diff --git a/src/Post/index.js b/src/components/Post/index.js similarity index 91% rename from src/Post/index.js rename to src/components/Post/index.js index c2c9eff1b..c5e3b3054 100644 --- a/src/Post/index.js +++ b/src/components/Post/index.js @@ -1,12 +1,12 @@ import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; -import Linkify from '../commonComponents/Linkify'; -import Modal from '../commonComponents/Modal'; -import Time from '../commonComponents/Time'; -import { confirm } from '../commonComponents/Confirm'; +import Linkify from '../Linkify'; +import Modal from '../Modal'; +import Time from '../Time'; +import { confirm } from '../Confirm'; import EngagementBar from '../EngagementBar'; import Avatar from '../Avatar'; diff --git a/src/Post/styles.js b/src/components/Post/styles.js similarity index 88% rename from src/Post/styles.js rename to src/components/Post/styles.js index 4f2783691..768a80538 100644 --- a/src/Post/styles.js +++ b/src/components/Post/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; -import { SecondaryButton } from '../commonComponents/Button'; -import UIOptions from '../commonComponents/Options'; +import { SecondaryButton } from '../Button'; +import UIOptions from '../Options'; export const Options = styled(UIOptions)` margin-left: auto; diff --git a/src/PostCompose/AuthorSelector.js b/src/components/PostCompose/AuthorSelector.js similarity index 89% rename from src/PostCompose/AuthorSelector.js rename to src/components/PostCompose/AuthorSelector.js index 2495928e0..bab4b705d 100644 --- a/src/PostCompose/AuthorSelector.js +++ b/src/components/PostCompose/AuthorSelector.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; -import Popover from '../commonComponents/Popover'; -import Menu, { MenuItem } from '../commonComponents/Menu'; +import { customizableComponent } from '../../hoks/customization'; +import Popover from '../Popover'; +import Menu, { MenuItem } from '../Menu'; import { AuthorSelectorContainer, CommunitySeparator, SelectIcon, Avatar } from './styles'; diff --git a/src/PostCompose/index.js b/src/components/PostCompose/index.js similarity index 96% rename from src/PostCompose/index.js rename to src/components/PostCompose/index.js index da5fc3ad4..f3ea4f9da 100644 --- a/src/PostCompose/index.js +++ b/src/components/PostCompose/index.js @@ -1,11 +1,11 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; -import { notification } from '../commonComponents/Notification'; +import { customizableComponent } from '../../hoks/customization'; +import { notification } from '../Notification'; import Files from '../Files'; import Images from '../Images'; -import { testUser, testFiles, testImages } from '../mock'; +import { testUser, testFiles, testImages } from '../../mock'; import AuthorSelector from './AuthorSelector'; diff --git a/src/PostCompose/styles.js b/src/components/PostCompose/styles.js similarity index 98% rename from src/PostCompose/styles.js rename to src/components/PostCompose/styles.js index b2e7fc3b5..aa7702f94 100644 --- a/src/PostCompose/styles.js +++ b/src/components/PostCompose/styles.js @@ -3,7 +3,7 @@ import TextareaAutosize from 'react-autosize-textarea'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; -import { PrimaryButton } from '../commonComponents/Button'; +import { PrimaryButton } from '../Button'; import UIAvatar from '../Avatar'; // TODO add icon button diff --git a/src/RecentChat/CreateNewChat.js b/src/components/RecentChat/CreateNewChat.js similarity index 96% rename from src/RecentChat/CreateNewChat.js rename to src/components/RecentChat/CreateNewChat.js index 0e53f063c..25fc1c83f 100644 --- a/src/RecentChat/CreateNewChat.js +++ b/src/components/RecentChat/CreateNewChat.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { ChannelRepository, EkoChannelType } from 'eko-sdk'; -import Popover from '../commonComponents/Popover'; +import Popover from '../Popover'; import { CreateIcon, diff --git a/src/RecentChat/index.js b/src/components/RecentChat/index.js similarity index 87% rename from src/RecentChat/index.js rename to src/components/RecentChat/index.js index 12adeb3cd..477c3ea22 100644 --- a/src/RecentChat/index.js +++ b/src/components/RecentChat/index.js @@ -1,8 +1,8 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../hoks/customization'; -import useLiveObject from '../hooks/useLiveObject'; +import { customizableComponent } from '../../hoks/customization'; +import useLiveObject from '../../hooks/useLiveObject'; import ChatItem from '../ChatItem'; import CreateNewChat from './CreateNewChat'; diff --git a/src/RecentChat/styles.js b/src/components/RecentChat/styles.js similarity index 100% rename from src/RecentChat/styles.js rename to src/components/RecentChat/styles.js diff --git a/src/SideMenu/MenuTab.js b/src/components/SideMenu/MenuTab.js similarity index 85% rename from src/SideMenu/MenuTab.js rename to src/components/SideMenu/MenuTab.js index 46d133b4b..cfc3146d4 100644 --- a/src/SideMenu/MenuTab.js +++ b/src/components/SideMenu/MenuTab.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { MenuTabContainer, MenuName } from './styles'; const MenuTab = ({ icon, name, className, onClick, active }) => { diff --git a/src/SideMenu/icons/community.svg b/src/components/SideMenu/icons/community.svg similarity index 100% rename from src/SideMenu/icons/community.svg rename to src/components/SideMenu/icons/community.svg diff --git a/src/SideMenu/index.js b/src/components/SideMenu/index.js similarity index 90% rename from src/SideMenu/index.js rename to src/components/SideMenu/index.js index ca420b384..9cd8d4789 100644 --- a/src/SideMenu/index.js +++ b/src/components/SideMenu/index.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../hoks/customization'; +import { customizableComponent } from '../../hoks/customization'; import { SideMenuContainer } from './styles'; import communityIcon from './icons/community.svg'; import MenuTab from './MenuTab'; diff --git a/src/SideMenu/styles.js b/src/components/SideMenu/styles.js similarity index 100% rename from src/SideMenu/styles.js rename to src/components/SideMenu/styles.js diff --git a/src/commonComponents/SideMenuItem/index.js b/src/components/SideMenuItem/index.js similarity index 100% rename from src/commonComponents/SideMenuItem/index.js rename to src/components/SideMenuItem/index.js diff --git a/src/commonComponents/SideMenuItem/styles.js b/src/components/SideMenuItem/styles.js similarity index 100% rename from src/commonComponents/SideMenuItem/styles.js rename to src/components/SideMenuItem/styles.js diff --git a/src/commonComponents/Tab/Tab.stories.js b/src/components/Tab/Tab.stories.js similarity index 100% rename from src/commonComponents/Tab/Tab.stories.js rename to src/components/Tab/Tab.stories.js diff --git a/src/commonComponents/Tab/index.js b/src/components/Tab/index.js similarity index 100% rename from src/commonComponents/Tab/index.js rename to src/components/Tab/index.js diff --git a/src/commonComponents/Tab/styles.js b/src/components/Tab/styles.js similarity index 100% rename from src/commonComponents/Tab/styles.js rename to src/components/Tab/styles.js diff --git a/src/commonComponents/Tabs/index.js b/src/components/Tabs/index.js similarity index 100% rename from src/commonComponents/Tabs/index.js rename to src/components/Tabs/index.js diff --git a/src/commonComponents/Tabs/styles.js b/src/components/Tabs/styles.js similarity index 100% rename from src/commonComponents/Tabs/styles.js rename to src/components/Tabs/styles.js diff --git a/src/commonComponents/Time/index.js b/src/components/Time/index.js similarity index 100% rename from src/commonComponents/Time/index.js rename to src/components/Time/index.js diff --git a/src/commonComponents/Time/styles.js b/src/components/Time/styles.js similarity index 100% rename from src/commonComponents/Time/styles.js rename to src/components/Time/styles.js diff --git a/src/UiKitProvider/GlobalStyle.js b/src/components/UiKitProvider/GlobalStyle.js similarity index 100% rename from src/UiKitProvider/GlobalStyle.js rename to src/components/UiKitProvider/GlobalStyle.js diff --git a/src/UiKitProvider/GlobalTheme.js b/src/components/UiKitProvider/GlobalTheme.js similarity index 100% rename from src/UiKitProvider/GlobalTheme.js rename to src/components/UiKitProvider/GlobalTheme.js diff --git a/src/UiKitProvider/Localisation/index.js b/src/components/UiKitProvider/Localisation/index.js similarity index 100% rename from src/UiKitProvider/Localisation/index.js rename to src/components/UiKitProvider/Localisation/index.js diff --git a/src/UiKitProvider/index.js b/src/components/UiKitProvider/index.js similarity index 84% rename from src/UiKitProvider/index.js rename to src/components/UiKitProvider/index.js index 7d92bb5bd..249b7862b 100644 --- a/src/UiKitProvider/index.js +++ b/src/components/UiKitProvider/index.js @@ -3,15 +3,15 @@ import merge from 'lodash/merge'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; -import { CustomComponentsProvider } from '../hoks/customization'; -import { SDKProvider } from '../hoks/withSDK'; +import { CustomComponentsProvider } from '../../hoks/customization'; +import { SDKProvider } from '../../hoks/withSDK'; import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; import { UIStyles } from './styles'; import GlobalTheme from './GlobalTheme'; -import MockData from '../mock'; -import { ConfirmContainer } from '../commonComponents/Confirm'; -import { NotificationsContainer } from '../commonComponents/Notification'; +import MockData from '../../mock'; +import { ConfirmContainer } from '../Confirm'; +import { NotificationsContainer } from '../Notification'; _changeSDKDefaultConfig({ ws: { endpoint: 'https://api.staging.ekomedia.technology' }, diff --git a/src/UiKitProvider/styles.js b/src/components/UiKitProvider/styles.js similarity index 100% rename from src/UiKitProvider/styles.js rename to src/components/UiKitProvider/styles.js diff --git a/src/UserFeedHeader/index.js b/src/components/UserFeedHeader/index.js similarity index 77% rename from src/UserFeedHeader/index.js rename to src/components/UserFeedHeader/index.js index 390442db8..49664025b 100644 --- a/src/UserFeedHeader/index.js +++ b/src/components/UserFeedHeader/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../hoks/customization'; -import Tab from '../commonComponents/Tab'; +import { customizableComponent } from '../../hoks/customization'; +import Tab from '../Tab'; import { UserFeedHeaderContainer, Tabs } from './styles'; diff --git a/src/UserFeedHeader/styles.js b/src/components/UserFeedHeader/styles.js similarity index 100% rename from src/UserFeedHeader/styles.js rename to src/components/UserFeedHeader/styles.js diff --git a/src/index.js b/src/index.js index b12032d4f..02278be46 100644 --- a/src/index.js +++ b/src/index.js @@ -1,27 +1,27 @@ -import EkoAvatar from './Avatar'; -import EkoChat from './Chat'; -import EkoChatDetails from './ChatDetails'; -import EkoChatHeader from './ChatHeader'; -import EkoChatHome from './ChatHome'; -import EkoChatItem from './ChatItem'; -import EkoComment from './Comment'; -import EkoCommentComposeBar from './CommentComposeBar'; -import EkoCommunity from './Community'; -import EkoCommunityInformation from './CommunityInformation'; -import EkoCommunityItem from './CommunityItem'; -import EkoEmptyFeed from './EmptyFeed'; -import EkoEngagementBar from './EngagementBar'; -import EkoFiles from './Files'; -import EkoImageGallery from './ImageGallery'; -import EkoImages from './Images'; -import EkoMessage from './Message'; -import EkoMessageComposeBar from './MessageComposeBar'; -import EkoMessageList from './MessageList'; -import EkoPost from './Post'; -import EkoPostCompose from './PostCompose'; -import EkoRecentChat from './RecentChat'; -import EkoSideMenu from './SideMenu'; -import EkoUiKitProvider from './UiKitProvider'; +import EkoAvatar from './components/Avatar'; +import EkoChat from './components/Chat'; +import EkoChatDetails from './components/ChatDetails'; +import EkoChatHeader from './components/ChatHeader'; +import EkoChatHome from './components/ChatHome'; +import EkoChatItem from './components/ChatItem'; +import EkoComment from './components/Comment'; +import EkoCommentComposeBar from './components/CommentComposeBar'; +import EkoCommunity from './components/Community'; +import EkoCommunityInformation from './components/CommunityInformation'; +import EkoCommunityItem from './components/CommunityItem'; +import EkoEmptyFeed from './components/EmptyFeed'; +import EkoEngagementBar from './components/EngagementBar'; +import EkoFiles from './components/Files'; +import EkoImageGallery from './components/ImageGallery'; +import EkoImages from './components/Images'; +import EkoMessage from './components/Message'; +import EkoMessageComposeBar from './components/MessageComposeBar'; +import EkoMessageList from './components/MessageList'; +import EkoPost from './components/Post'; +import EkoPostCompose from './components/PostCompose'; +import EkoRecentChat from './components/RecentChat'; +import EkoSideMenu from './components/SideMenu'; +import EkoUiKitProvider from './components/UiKitProvider'; export { EkoAvatar, From 59f5e6e78b13fa489bb3aede408c441cb4a0acbb Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 15:27:31 +0700 Subject: [PATCH 072/740] Rename hoks to hocs --- src/components/Avatar/index.js | 2 +- src/components/Chat/index.js | 2 +- src/components/ChatDetails/index.js | 2 +- src/components/ChatHeader/index.js | 2 +- src/components/ChatHome/index.js | 2 +- src/components/ChatItem/index.js | 2 +- src/components/Comment/index.js | 2 +- src/components/CommentComposeBar/index.js | 2 +- src/components/Community/CommunityMembers.js | 2 +- src/components/Community/NewsFeed.js | 4 ++-- src/components/Community/UserFeed.js | 4 ++-- src/components/Community/index.js | 4 ++-- src/components/CommunityCreationModal/index.js | 2 +- src/components/CommunityForm/CategorySelector.js | 2 +- src/components/CommunityForm/UserSelector.js | 2 +- src/components/CommunityForm/index.js | 2 +- src/components/CommunityInformation/index.js | 2 +- src/components/CommunityItem/index.js | 2 +- src/components/EmptyFeed/index.js | 2 +- src/components/EngagementBar/index.js | 2 +- src/components/ExploreHome/CategoryPage.js | 2 +- src/components/ExploreHome/Community.js | 2 +- src/components/ExploreHome/CommunitySearch.js | 2 +- src/components/ExploreHome/ExploreHeader.js | 2 +- src/components/ExploreHome/TrendingCommunity.js | 2 +- src/components/ExploreHome/index.js | 2 +- src/components/FeedHeaderTabs/index.js | 2 +- src/components/FeedLayout/index.js | 2 +- src/components/FeedSideMenu/index.js | 2 +- src/components/Files/File.js | 2 +- src/components/Files/index.js | 2 +- src/components/ImageGallery/index.js | 2 +- src/components/Images/Image.js | 2 +- src/components/Images/index.js | 2 +- src/components/Layout/index.js | 2 +- src/components/Message/IncomingMessage.js | 2 +- src/components/Message/OutgoingMessage.js | 2 +- src/components/Message/index.js | 2 +- src/components/MessageComposeBar/index.js | 2 +- src/components/MessageList/index.js | 4 ++-- src/components/Post/index.js | 2 +- src/components/PostCompose/AuthorSelector.js | 2 +- src/components/PostCompose/index.js | 2 +- src/components/RecentChat/index.js | 2 +- src/components/SideMenu/MenuTab.js | 2 +- src/components/SideMenu/index.js | 2 +- src/components/Tabs/index.js | 2 +- src/components/UiKitProvider/index.js | 4 ++-- src/components/UserFeedHeader/index.js | 2 +- src/{hoks => hocs}/customization.js | 2 +- src/{hoks => hocs}/withSDK.js | 0 51 files changed, 55 insertions(+), 55 deletions(-) rename src/{hoks => hocs}/customization.js (96%) rename src/{hoks => hocs}/withSDK.js (100%) diff --git a/src/components/Avatar/index.js b/src/components/Avatar/index.js index b4ff35acf..633d60974 100644 --- a/src/components/Avatar/index.js +++ b/src/components/Avatar/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { AvatarContainer, Img } from './styles'; diff --git a/src/components/Chat/index.js b/src/components/Chat/index.js index a76d6af06..67e1da4ee 100644 --- a/src/components/Chat/index.js +++ b/src/components/Chat/index.js @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import ChatHeader from '../ChatHeader'; import MessageList from '../MessageList'; diff --git a/src/components/ChatDetails/index.js b/src/components/ChatDetails/index.js index ab794eccb..841236dc4 100644 --- a/src/components/ChatDetails/index.js +++ b/src/components/ChatDetails/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import useLiveObject from '../../hooks/useLiveObject'; import { diff --git a/src/components/ChatHeader/index.js b/src/components/ChatHeader/index.js index 5cbb82188..275163e79 100644 --- a/src/components/ChatHeader/index.js +++ b/src/components/ChatHeader/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import useLiveObject from '../../hooks/useLiveObject'; import { diff --git a/src/components/ChatHome/index.js b/src/components/ChatHome/index.js index a259add9b..821760c43 100644 --- a/src/components/ChatHome/index.js +++ b/src/components/ChatHome/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import RecentChat from '../RecentChat'; import Chat from '../Chat'; import ChatDetails from '../ChatDetails'; diff --git a/src/components/ChatItem/index.js b/src/components/ChatItem/index.js index dcd521275..817d097e9 100644 --- a/src/components/ChatItem/index.js +++ b/src/components/ChatItem/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { Avatar, ChatItemContainer, UnreadCount } from './styles'; diff --git a/src/components/Comment/index.js b/src/components/Comment/index.js index 11c80019c..c7afa70a1 100644 --- a/src/components/Comment/index.js +++ b/src/components/Comment/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Linkify from '../Linkify'; import { notification } from '../Notification'; diff --git a/src/components/CommentComposeBar/index.js b/src/components/CommentComposeBar/index.js index d16636a80..e530dcd4f 100644 --- a/src/components/CommentComposeBar/index.js +++ b/src/components/CommentComposeBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { testUser } from '../../mock'; diff --git a/src/components/Community/CommunityMembers.js b/src/components/Community/CommunityMembers.js index 602439b9e..3c0d1c2ee 100644 --- a/src/components/Community/CommunityMembers.js +++ b/src/components/Community/CommunityMembers.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Options from '../Options'; import { confirm } from '../Confirm'; import { notification } from '../Notification'; diff --git a/src/components/Community/NewsFeed.js b/src/components/Community/NewsFeed.js index 89b83a39f..cd5cc2f5b 100644 --- a/src/components/Community/NewsFeed.js +++ b/src/components/Community/NewsFeed.js @@ -1,7 +1,7 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; -import withSDK from '../../hoks/withSDK'; +import { customizableComponent } from '../../hocs/customization'; +import withSDK from '../../hocs/withSDK'; import EmptyFeed from '../EmptyFeed'; diff --git a/src/components/Community/UserFeed.js b/src/components/Community/UserFeed.js index 5c9a50ecd..3e2c1f714 100644 --- a/src/components/Community/UserFeed.js +++ b/src/components/Community/UserFeed.js @@ -1,7 +1,7 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; -import withSDK from '../../hoks/withSDK'; +import { customizableComponent } from '../../hocs/customization'; +import withSDK from '../../hocs/withSDK'; // import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; diff --git a/src/components/Community/index.js b/src/components/Community/index.js index 7589c4b9f..601301dd6 100644 --- a/src/components/Community/index.js +++ b/src/components/Community/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; -import withSDK from '../../hoks/withSDK'; +import { customizableComponent } from '../../hocs/customization'; +import withSDK from '../../hocs/withSDK'; import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; diff --git a/src/components/CommunityCreationModal/index.js b/src/components/CommunityCreationModal/index.js index 688020c7d..5c4d53a86 100644 --- a/src/components/CommunityCreationModal/index.js +++ b/src/components/CommunityCreationModal/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { confirm } from '../Confirm'; import Modal from '../Modal'; import { CommunityForm } from './styles'; diff --git a/src/components/CommunityForm/CategorySelector.js b/src/components/CommunityForm/CategorySelector.js index bfa8f8406..d68eda6dd 100644 --- a/src/components/CommunityForm/CategorySelector.js +++ b/src/components/CommunityForm/CategorySelector.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { MenuItem } from '../Menu'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { getCategories, getCategory } from '../../mock'; import { Avatar, Selector, SelectorPopover, SelectorList, SelectIcon } from './styles'; diff --git a/src/components/CommunityForm/UserSelector.js b/src/components/CommunityForm/UserSelector.js index 84a744816..6cbc3e03d 100644 --- a/src/components/CommunityForm/UserSelector.js +++ b/src/components/CommunityForm/UserSelector.js @@ -1,7 +1,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { MenuItem } from '../Menu'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { testUsers } from '../../mock'; import { diff --git a/src/components/CommunityForm/index.js b/src/components/CommunityForm/index.js index 47bb2699d..d0cdb1fad 100644 --- a/src/components/CommunityForm/index.js +++ b/src/components/CommunityForm/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Button from '../Button'; import { getCommunities } from '../../mock'; diff --git a/src/components/CommunityInformation/index.js b/src/components/CommunityInformation/index.js index ea11e5e52..e4b03f994 100644 --- a/src/components/CommunityInformation/index.js +++ b/src/components/CommunityInformation/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { confirm } from '../Confirm'; import { useCommunitiesMock, getMyCommunityIds } from '../../mock'; diff --git a/src/components/CommunityItem/index.js b/src/components/CommunityItem/index.js index 0af8fb81e..49735b2e2 100644 --- a/src/components/CommunityItem/index.js +++ b/src/components/CommunityItem/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import CommunityName from '../CommunityName'; import { Avatar, CommunityItemContainer } from './styles'; diff --git a/src/components/EmptyFeed/index.js b/src/components/EmptyFeed/index.js index abe359fb3..019e916b5 100644 --- a/src/components/EmptyFeed/index.js +++ b/src/components/EmptyFeed/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { EmptyFeedContainer, FeedIcon } from './styles'; diff --git a/src/components/EngagementBar/index.js b/src/components/EngagementBar/index.js index bfad04367..62d5ad910 100644 --- a/src/components/EngagementBar/index.js +++ b/src/components/EngagementBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { toHumanString } from 'human-readable-numbers'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { SecondaryButton } from '../Button'; import CommentComposeBar from '../CommentComposeBar'; diff --git a/src/components/ExploreHome/CategoryPage.js b/src/components/ExploreHome/CategoryPage.js index 1d00b97af..f72713fee 100644 --- a/src/components/ExploreHome/CategoryPage.js +++ b/src/components/ExploreHome/CategoryPage.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { getCommunities, getCategory } from '../../mock'; diff --git a/src/components/ExploreHome/Community.js b/src/components/ExploreHome/Community.js index e5bde83db..830272c10 100644 --- a/src/components/ExploreHome/Community.js +++ b/src/components/ExploreHome/Community.js @@ -1,7 +1,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import CommunityName from '../CommunityName'; import { Avatar, CommunityItem, Description, Count } from './styles'; diff --git a/src/components/ExploreHome/CommunitySearch.js b/src/components/ExploreHome/CommunitySearch.js index 4decd727a..28af7d0b8 100644 --- a/src/components/ExploreHome/CommunitySearch.js +++ b/src/components/ExploreHome/CommunitySearch.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Popover from '../Popover'; import { MenuItem } from '../Menu'; diff --git a/src/components/ExploreHome/ExploreHeader.js b/src/components/ExploreHome/ExploreHeader.js index 4b0921d92..bd7bf8938 100644 --- a/src/components/ExploreHome/ExploreHeader.js +++ b/src/components/ExploreHome/ExploreHeader.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import CommunitySearch from './CommunitySearch'; diff --git a/src/components/ExploreHome/TrendingCommunity.js b/src/components/ExploreHome/TrendingCommunity.js index 32d5d7184..188b63bad 100644 --- a/src/components/ExploreHome/TrendingCommunity.js +++ b/src/components/ExploreHome/TrendingCommunity.js @@ -1,7 +1,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import CommunityName from '../CommunityName'; import { diff --git a/src/components/ExploreHome/index.js b/src/components/ExploreHome/index.js index 905b3c1ac..9f710b403 100644 --- a/src/components/ExploreHome/index.js +++ b/src/components/ExploreHome/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Modal from '../Modal'; import { MenuItem } from '../Menu'; diff --git a/src/components/FeedHeaderTabs/index.js b/src/components/FeedHeaderTabs/index.js index 10009fb8e..dcdc40e07 100644 --- a/src/components/FeedHeaderTabs/index.js +++ b/src/components/FeedHeaderTabs/index.js @@ -1,4 +1,4 @@ -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { FeedHeaderTabs } from './styles'; diff --git a/src/components/FeedLayout/index.js b/src/components/FeedLayout/index.js index 9d1097960..05f06f45c 100644 --- a/src/components/FeedLayout/index.js +++ b/src/components/FeedLayout/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { LayoutContainer } from './styles'; diff --git a/src/components/FeedSideMenu/index.js b/src/components/FeedSideMenu/index.js index 2eb826f90..a754ff7c4 100644 --- a/src/components/FeedSideMenu/index.js +++ b/src/components/FeedSideMenu/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import CommunityItem from '../CommunityItem'; import SideMenuItem from '../SideMenuItem'; diff --git a/src/components/Files/File.js b/src/components/Files/File.js index be2ae3d77..de3a7b126 100644 --- a/src/components/Files/File.js +++ b/src/components/Files/File.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; import filesize from 'filesize'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import FileIcon from './FileIcon'; diff --git a/src/components/Files/index.js b/src/components/Files/index.js index 9360f653e..b46a87c49 100644 --- a/src/components/Files/index.js +++ b/src/components/Files/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import File from './File'; diff --git a/src/components/ImageGallery/index.js b/src/components/ImageGallery/index.js index 3de3180c7..2b5944904 100644 --- a/src/components/ImageGallery/index.js +++ b/src/components/ImageGallery/index.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { ImageGalleryContainer, diff --git a/src/components/Images/Image.js b/src/components/Images/Image.js index 40b759a9c..8969c429f 100644 --- a/src/components/Images/Image.js +++ b/src/components/Images/Image.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { ImageContainer, ProgressBar, RemoveIcon, NumberOfHiddenImagesOverlay } from './styles'; diff --git a/src/components/Images/index.js b/src/components/Images/index.js index c63fe9115..976af1e16 100644 --- a/src/components/Images/index.js +++ b/src/components/Images/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Image from './Image'; import ImageGallery from '../ImageGallery'; diff --git a/src/components/Layout/index.js b/src/components/Layout/index.js index 1395a35ab..07e9ac5f3 100644 --- a/src/components/Layout/index.js +++ b/src/components/Layout/index.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; import Avatar from '../Avatar'; import Popover from '../Popover'; diff --git a/src/components/Message/IncomingMessage.js b/src/components/Message/IncomingMessage.js index 86c7f8fe7..34d7b96db 100644 --- a/src/components/Message/IncomingMessage.js +++ b/src/components/Message/IncomingMessage.js @@ -1,6 +1,6 @@ import React from 'react'; import Message from '.'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; const IncomingMessage = props => ; diff --git a/src/components/Message/OutgoingMessage.js b/src/components/Message/OutgoingMessage.js index bb13db073..162c45ec8 100644 --- a/src/components/Message/OutgoingMessage.js +++ b/src/components/Message/OutgoingMessage.js @@ -1,4 +1,4 @@ import Message from '.'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; export default customizableComponent('OutgoingMessage')(Message); diff --git a/src/components/Message/index.js b/src/components/Message/index.js index cf6482616..329ecdd49 100644 --- a/src/components/Message/index.js +++ b/src/components/Message/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { FormattedTime } from 'react-intl'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Linkify from '../Linkify'; diff --git a/src/components/MessageComposeBar/index.js b/src/components/MessageComposeBar/index.js index 2b8131463..e369239b3 100644 --- a/src/components/MessageComposeBar/index.js +++ b/src/components/MessageComposeBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { MessageComposeBarContainer, diff --git a/src/components/MessageList/index.js b/src/components/MessageList/index.js index 58e31fabe..a8ca10b58 100644 --- a/src/components/MessageList/index.js +++ b/src/components/MessageList/index.js @@ -4,8 +4,8 @@ import { MessageRepository } from 'eko-sdk'; import IncomingMessage from '../Message/IncomingMessage'; import OutgoingMessage from '../Message/OutgoingMessage'; -import { customizableComponent } from '../../hoks/customization'; -import withSDK from '../../hoks/withSDK'; +import { customizableComponent } from '../../hocs/customization'; +import withSDK from '../../hocs/withSDK'; import usePaginatedLiveObject from '../../hooks/usePaginatedLiveObject'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; diff --git a/src/components/Post/index.js b/src/components/Post/index.js index c5e3b3054..90940b7c6 100644 --- a/src/components/Post/index.js +++ b/src/components/Post/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Linkify from '../Linkify'; import Modal from '../Modal'; diff --git a/src/components/PostCompose/AuthorSelector.js b/src/components/PostCompose/AuthorSelector.js index bab4b705d..77765aaf1 100644 --- a/src/components/PostCompose/AuthorSelector.js +++ b/src/components/PostCompose/AuthorSelector.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Popover from '../Popover'; import Menu, { MenuItem } from '../Menu'; diff --git a/src/components/PostCompose/index.js b/src/components/PostCompose/index.js index f3ea4f9da..6d523cbb1 100644 --- a/src/components/PostCompose/index.js +++ b/src/components/PostCompose/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { notification } from '../Notification'; import Files from '../Files'; import Images from '../Images'; diff --git a/src/components/RecentChat/index.js b/src/components/RecentChat/index.js index 477c3ea22..88d870de3 100644 --- a/src/components/RecentChat/index.js +++ b/src/components/RecentChat/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import useLiveObject from '../../hooks/useLiveObject'; import ChatItem from '../ChatItem'; import CreateNewChat from './CreateNewChat'; diff --git a/src/components/SideMenu/MenuTab.js b/src/components/SideMenu/MenuTab.js index cfc3146d4..a908ee6d0 100644 --- a/src/components/SideMenu/MenuTab.js +++ b/src/components/SideMenu/MenuTab.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { MenuTabContainer, MenuName } from './styles'; const MenuTab = ({ icon, name, className, onClick, active }) => { diff --git a/src/components/SideMenu/index.js b/src/components/SideMenu/index.js index 9cd8d4789..9e45994a1 100644 --- a/src/components/SideMenu/index.js +++ b/src/components/SideMenu/index.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import { SideMenuContainer } from './styles'; import communityIcon from './icons/community.svg'; import MenuTab from './MenuTab'; diff --git a/src/components/Tabs/index.js b/src/components/Tabs/index.js index 654021f13..a2a08899b 100644 --- a/src/components/Tabs/index.js +++ b/src/components/Tabs/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Tab from '../Tab'; import { TabsContainer } from './styles'; diff --git a/src/components/UiKitProvider/index.js b/src/components/UiKitProvider/index.js index 249b7862b..1b16d2556 100644 --- a/src/components/UiKitProvider/index.js +++ b/src/components/UiKitProvider/index.js @@ -3,8 +3,8 @@ import merge from 'lodash/merge'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; -import { CustomComponentsProvider } from '../../hoks/customization'; -import { SDKProvider } from '../../hoks/withSDK'; +import { CustomComponentsProvider } from '../../hocs/customization'; +import { SDKProvider } from '../../hocs/withSDK'; import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; import { UIStyles } from './styles'; diff --git a/src/components/UserFeedHeader/index.js b/src/components/UserFeedHeader/index.js index 49664025b..9d3280d84 100644 --- a/src/components/UserFeedHeader/index.js +++ b/src/components/UserFeedHeader/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hoks/customization'; +import { customizableComponent } from '../../hocs/customization'; import Tab from '../Tab'; import { UserFeedHeaderContainer, Tabs } from './styles'; diff --git a/src/hoks/customization.js b/src/hocs/customization.js similarity index 96% rename from src/hoks/customization.js rename to src/hocs/customization.js index 1d7480d71..92e6ec22c 100644 --- a/src/hoks/customization.js +++ b/src/hocs/customization.js @@ -4,7 +4,7 @@ export const CustomComponentsContext = React.createContext({}); export const CustomComponentsProvider = CustomComponentsContext.Provider; /* - This hok allow as to customize components by it name + This hoc allow as to customize components by it name usage: 1) wrap component diff --git a/src/hoks/withSDK.js b/src/hocs/withSDK.js similarity index 100% rename from src/hoks/withSDK.js rename to src/hocs/withSDK.js From c2e6eb684deb0ea69d3ef0b11074234745b8cd22 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 16:56:57 +0700 Subject: [PATCH 073/740] Set up webpack aliases for importing --- .eslintrc | 7 +++++ package-lock.json | 70 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + webpack.config.js | 9 ++++++ 4 files changed, 87 insertions(+) diff --git a/.eslintrc b/.eslintrc index c4a3d6e5c..c6050353d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,6 +1,13 @@ { "parser": "babel-eslint", "extends": ["eko/react"], + "settings": { + "import/resolver": { + "webpack": { + "config": "webpack.config.js" + } + } + }, "rules": { // Allow <> instead of "react/jsx-fragments": "off", diff --git a/package-lock.json b/package-lock.json index 7cc4f4c9c..c24c40c0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5111,6 +5111,12 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, + "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 + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -8548,6 +8554,70 @@ } } }, + "eslint-import-resolver-webpack": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.2.tgz", + "integrity": "sha512-7Jnm4YAoNNkvqPaZkKdIHsKGmv8/uNnYC5QsXkiSodvX4XEEfH2AKOna98FK52fCDXm3q4HzuX+7pRMKkJ64EQ==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^2.6.9", + "enhanced-resolve": "^0.9.1", + "find-root": "^1.1.0", + "has": "^1.0.3", + "interpret": "^1.2.0", + "lodash": "^4.17.15", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.13.1", + "semver": "^5.7.1" + }, + "dependencies": { + "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" + } + }, + "enhanced-resolve": { + "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", + "tapable": "^0.1.8" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + } + } + }, "eslint-module-utils": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", diff --git a/package.json b/package.json index c348efd0b..59d69f754 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "eslint-config-airbnb-base": "~14.0.0", "eslint-config-eko": "~2.0.0", "eslint-config-prettier": "~6.9.0", + "eslint-import-resolver-webpack": "^0.12.2", "eslint-plugin-import": "~2.20.2", "eslint-plugin-jsx-a11y": "~6.2.3", "eslint-plugin-prettier": "~3.1.4", diff --git a/webpack.config.js b/webpack.config.js index e9709fe21..f3f0023d0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -12,6 +12,15 @@ module.exports = { libraryTarget: 'commonjs', }, plugins: [new CleanWebpackPlugin()], + resolve: { + alias: { + components: path.resolve(__dirname, 'src/components'), + hocs: path.resolve(__dirname, 'src/hocs'), + hooks: path.resolve(__dirname, 'src/hooks'), + mock: path.resolve(__dirname, 'src/mock'), + }, + extensions: ['.js', '.jsx', '.css', '.svg'], + }, module: { rules: [ { From 0b173453ebb54cd910d88fee2a8d7777f0ac06a4 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 17:12:20 +0700 Subject: [PATCH 074/740] Storybook to support webpack aliasing --- .storybook/main.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.storybook/main.js b/.storybook/main.js index 1c63cd83a..fe47279c6 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,13 +1,11 @@ -const path = require('path'); const webpack = require('webpack'); +const mainWebpack = require('../webpack.config.js'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ addons: ['@storybook/addon-storysource'], webpackFinal: async config => { - config.resolve.extensions.push('.js'); - config.plugins.push( // fix static storybook styling new webpack.DefinePlugin({ @@ -15,6 +13,12 @@ module.exports = { }), ); + // Merge with resolve config from main webpack. + config.resolve = { + ...config.resolve, + ...mainWebpack.resolve, + }; + return config; }, }; From f3052d1e63a3901e369655fca8af21c9bd019ae8 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 17:16:09 +0700 Subject: [PATCH 075/740] Use alias imports for hooks, hocs and mock --- src/components/Avatar/index.js | 2 +- src/components/Chat/index.js | 2 +- src/components/ChatDetails/index.js | 4 ++-- src/components/ChatHeader/index.js | 4 ++-- src/components/ChatHome/index.js | 2 +- src/components/ChatItem/index.js | 2 +- src/components/Comment/index.js | 2 +- src/components/CommentComposeBar/index.js | 4 ++-- src/components/Community/Community.stories.js | 2 +- src/components/Community/CommunityMembers.js | 4 ++-- src/components/Community/NewsFeed.js | 7 +++---- src/components/Community/UserFeed.js | 7 +++---- src/components/Community/index.js | 7 +++---- src/components/CommunityCreationModal/index.js | 2 +- src/components/CommunityForm/CategorySelector.js | 6 +++--- src/components/CommunityForm/UserSelector.js | 6 +++--- src/components/CommunityForm/index.js | 5 ++--- src/components/CommunityInformation/index.js | 4 ++-- src/components/CommunityItem/index.js | 2 +- src/components/EmptyFeed/index.js | 2 +- src/components/EngagementBar/index.js | 2 +- src/components/ExploreHome/CategoryPage.js | 4 ++-- src/components/ExploreHome/Community.js | 2 +- src/components/ExploreHome/CommunitySearch.js | 5 ++--- src/components/ExploreHome/ExploreHeader.js | 2 +- src/components/ExploreHome/TrendingCommunity.js | 2 +- src/components/ExploreHome/index.js | 5 ++--- src/components/FeedHeaderTabs/index.js | 2 +- src/components/FeedLayout/index.js | 2 +- src/components/FeedSideMenu/index.js | 5 ++--- src/components/Files/File.js | 2 +- src/components/Files/index.js | 2 +- src/components/ImageGallery/index.js | 2 +- src/components/Images/Image.js | 2 +- src/components/Images/index.js | 2 +- src/components/Layout/index.js | 2 +- src/components/Message/IncomingMessage.js | 2 +- src/components/Message/OutgoingMessage.js | 2 +- src/components/Message/index.js | 2 +- src/components/MessageComposeBar/index.js | 2 +- src/components/MessageList/index.js | 10 +++++----- src/components/Post/index.js | 2 +- src/components/PostCompose/AuthorSelector.js | 2 +- src/components/PostCompose/index.js | 5 ++--- src/components/RecentChat/index.js | 4 ++-- src/components/SideMenu/MenuTab.js | 2 +- src/components/SideMenu/index.js | 2 +- src/components/Tabs/index.js | 2 +- src/components/UiKitProvider/index.js | 6 +++--- src/components/UserFeedHeader/index.js | 2 +- 50 files changed, 78 insertions(+), 86 deletions(-) diff --git a/src/components/Avatar/index.js b/src/components/Avatar/index.js index 633d60974..9108bdcde 100644 --- a/src/components/Avatar/index.js +++ b/src/components/Avatar/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { AvatarContainer, Img } from './styles'; diff --git a/src/components/Chat/index.js b/src/components/Chat/index.js index 67e1da4ee..ec634f14e 100644 --- a/src/components/Chat/index.js +++ b/src/components/Chat/index.js @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import ChatHeader from '../ChatHeader'; import MessageList from '../MessageList'; diff --git a/src/components/ChatDetails/index.js b/src/components/ChatDetails/index.js index 841236dc4..4a3c62120 100644 --- a/src/components/ChatDetails/index.js +++ b/src/components/ChatDetails/index.js @@ -1,8 +1,8 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../../hocs/customization'; -import useLiveObject from '../../hooks/useLiveObject'; +import { customizableComponent } from 'hocs/customization'; +import useLiveObject from 'hooks/useLiveObject'; import { Avatar, diff --git a/src/components/ChatHeader/index.js b/src/components/ChatHeader/index.js index 275163e79..07b7c12f5 100644 --- a/src/components/ChatHeader/index.js +++ b/src/components/ChatHeader/index.js @@ -1,8 +1,8 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../../hocs/customization'; -import useLiveObject from '../../hooks/useLiveObject'; +import { customizableComponent } from 'hocs/customization'; +import useLiveObject from 'hooks/useLiveObject'; import { Avatar, diff --git a/src/components/ChatHome/index.js b/src/components/ChatHome/index.js index 821760c43..2e280ec6e 100644 --- a/src/components/ChatHome/index.js +++ b/src/components/ChatHome/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import RecentChat from '../RecentChat'; import Chat from '../Chat'; import ChatDetails from '../ChatDetails'; diff --git a/src/components/ChatItem/index.js b/src/components/ChatItem/index.js index 817d097e9..db9147f53 100644 --- a/src/components/ChatItem/index.js +++ b/src/components/ChatItem/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { Avatar, ChatItemContainer, UnreadCount } from './styles'; diff --git a/src/components/Comment/index.js b/src/components/Comment/index.js index c7afa70a1..e1f44f652 100644 --- a/src/components/Comment/index.js +++ b/src/components/Comment/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Linkify from '../Linkify'; import { notification } from '../Notification'; diff --git a/src/components/CommentComposeBar/index.js b/src/components/CommentComposeBar/index.js index e530dcd4f..7958099f3 100644 --- a/src/components/CommentComposeBar/index.js +++ b/src/components/CommentComposeBar/index.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; -import { testUser } from '../../mock'; +import { testUser } from 'mock'; import { Avatar, diff --git a/src/components/Community/Community.stories.js b/src/components/Community/Community.stories.js index 5d5571948..8cbf72010 100644 --- a/src/components/Community/Community.stories.js +++ b/src/components/Community/Community.stories.js @@ -8,7 +8,7 @@ import { useRouteMatch, } from 'react-router-dom'; -import { useCommunitiesMock } from '../../mock'; +import { useCommunitiesMock } from 'mock'; import FeedLayout from '../FeedLayout'; import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; diff --git a/src/components/Community/CommunityMembers.js b/src/components/Community/CommunityMembers.js index 3c0d1c2ee..6c39adea3 100644 --- a/src/components/Community/CommunityMembers.js +++ b/src/components/Community/CommunityMembers.js @@ -1,10 +1,10 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { testMembers, testModerators } from 'mock'; import Options from '../Options'; import { confirm } from '../Confirm'; import { notification } from '../Notification'; -import { testMembers, testModerators } from '../../mock'; import { Avatar, diff --git a/src/components/Community/NewsFeed.js b/src/components/Community/NewsFeed.js index cd5cc2f5b..3e839fac9 100644 --- a/src/components/Community/NewsFeed.js +++ b/src/components/Community/NewsFeed.js @@ -1,12 +1,11 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; -import withSDK from '../../hocs/withSDK'; +import { customizableComponent } from 'hocs/customization'; +import withSDK from 'hocs/withSDK'; +import { getMyCommunities, usePostsMock } from 'mock'; import EmptyFeed from '../EmptyFeed'; -import { getMyCommunities, usePostsMock } from '../../mock'; - import { Content, Feed, PostCompose, Post } from './styles'; const NewsFeed = ({ onPostAuthorClick }) => { diff --git a/src/components/Community/UserFeed.js b/src/components/Community/UserFeed.js index 3e2c1f714..4a297b5bc 100644 --- a/src/components/Community/UserFeed.js +++ b/src/components/Community/UserFeed.js @@ -1,13 +1,12 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; -import withSDK from '../../hocs/withSDK'; +import { customizableComponent } from 'hocs/customization'; +import withSDK from 'hocs/withSDK'; // import CommunityInformation from '../CommunityInformation'; +import { testUser, usePostsMock } from 'mock'; import EmptyFeed from '../EmptyFeed'; -import { testUser, usePostsMock } from '../../mock'; - import { Content, Feed, PostCompose, Post, UserFeedHeader } from './styles'; const UserFeed = () => { diff --git a/src/components/Community/index.js b/src/components/Community/index.js index 601301dd6..20e77bf4a 100644 --- a/src/components/Community/index.js +++ b/src/components/Community/index.js @@ -1,15 +1,14 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; -import withSDK from '../../hocs/withSDK'; +import { customizableComponent } from 'hocs/customization'; +import withSDK from 'hocs/withSDK'; +import { getCommunities, usePostsMock } from 'mock'; import CommunityInformation from '../CommunityInformation'; import EmptyFeed from '../EmptyFeed'; import CommunityMembers from './CommunityMembers'; -import { getCommunities, usePostsMock } from '../../mock'; - import { Content, Feed, PostCompose, Post, FeedHeaderTabs } from './styles'; // TODO replace with translations keys diff --git a/src/components/CommunityCreationModal/index.js b/src/components/CommunityCreationModal/index.js index 5c4d53a86..aa4aaac22 100644 --- a/src/components/CommunityCreationModal/index.js +++ b/src/components/CommunityCreationModal/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { confirm } from '../Confirm'; import Modal from '../Modal'; import { CommunityForm } from './styles'; diff --git a/src/components/CommunityForm/CategorySelector.js b/src/components/CommunityForm/CategorySelector.js index d68eda6dd..5d10bee01 100644 --- a/src/components/CommunityForm/CategorySelector.js +++ b/src/components/CommunityForm/CategorySelector.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { MenuItem } from '../Menu'; -import { customizableComponent } from '../../hocs/customization'; -import { getCategories, getCategory } from '../../mock'; +import { customizableComponent } from 'hocs/customization'; +import { getCategories, getCategory } from 'mock'; +import { MenuItem } from '../Menu'; import { Avatar, Selector, SelectorPopover, SelectorList, SelectIcon } from './styles'; diff --git a/src/components/CommunityForm/UserSelector.js b/src/components/CommunityForm/UserSelector.js index 6cbc3e03d..ab9dede82 100644 --- a/src/components/CommunityForm/UserSelector.js +++ b/src/components/CommunityForm/UserSelector.js @@ -1,8 +1,8 @@ import React, { useState, useEffect, useRef } from 'react'; -import { MenuItem } from '../Menu'; -import { customizableComponent } from '../../hocs/customization'; -import { testUsers } from '../../mock'; +import { customizableComponent } from 'hocs/customization'; +import { testUsers } from 'mock'; +import { MenuItem } from '../Menu'; import { Avatar, diff --git a/src/components/CommunityForm/index.js b/src/components/CommunityForm/index.js index d0cdb1fad..b8b897e8e 100644 --- a/src/components/CommunityForm/index.js +++ b/src/components/CommunityForm/index.js @@ -1,11 +1,10 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { getCommunities } from 'mock'; import Button from '../Button'; -import { getCommunities } from '../../mock'; - import CategorySelector from './CategorySelector'; import UserSelector from './UserSelector'; diff --git a/src/components/CommunityInformation/index.js b/src/components/CommunityInformation/index.js index e4b03f994..2d4751769 100644 --- a/src/components/CommunityInformation/index.js +++ b/src/components/CommunityInformation/index.js @@ -1,10 +1,10 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { useCommunitiesMock, getMyCommunityIds } from 'mock'; import { confirm } from '../Confirm'; -import { useCommunitiesMock, getMyCommunityIds } from '../../mock'; import { Count, diff --git a/src/components/CommunityItem/index.js b/src/components/CommunityItem/index.js index 49735b2e2..abb83634c 100644 --- a/src/components/CommunityItem/index.js +++ b/src/components/CommunityItem/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import CommunityName from '../CommunityName'; import { Avatar, CommunityItemContainer } from './styles'; diff --git a/src/components/EmptyFeed/index.js b/src/components/EmptyFeed/index.js index 019e916b5..d0a807312 100644 --- a/src/components/EmptyFeed/index.js +++ b/src/components/EmptyFeed/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { EmptyFeedContainer, FeedIcon } from './styles'; diff --git a/src/components/EngagementBar/index.js b/src/components/EngagementBar/index.js index 62d5ad910..2df4906c6 100644 --- a/src/components/EngagementBar/index.js +++ b/src/components/EngagementBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { toHumanString } from 'human-readable-numbers'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { SecondaryButton } from '../Button'; import CommentComposeBar from '../CommentComposeBar'; diff --git a/src/components/ExploreHome/CategoryPage.js b/src/components/ExploreHome/CategoryPage.js index f72713fee..c97576cdf 100644 --- a/src/components/ExploreHome/CategoryPage.js +++ b/src/components/ExploreHome/CategoryPage.js @@ -1,8 +1,8 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; -import { getCommunities, getCategory } from '../../mock'; +import { getCommunities, getCategory } from 'mock'; import Community from './Community'; diff --git a/src/components/ExploreHome/Community.js b/src/components/ExploreHome/Community.js index 830272c10..35ca82eec 100644 --- a/src/components/ExploreHome/Community.js +++ b/src/components/ExploreHome/Community.js @@ -1,7 +1,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import CommunityName from '../CommunityName'; import { Avatar, CommunityItem, Description, Count } from './styles'; diff --git a/src/components/ExploreHome/CommunitySearch.js b/src/components/ExploreHome/CommunitySearch.js index 28af7d0b8..d69a2c657 100644 --- a/src/components/ExploreHome/CommunitySearch.js +++ b/src/components/ExploreHome/CommunitySearch.js @@ -1,11 +1,10 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { getCommunities } from 'mock'; import Popover from '../Popover'; import { MenuItem } from '../Menu'; -import { getCommunities } from '../../mock'; - import { Avatar, CommunitiesSearchContainer, diff --git a/src/components/ExploreHome/ExploreHeader.js b/src/components/ExploreHome/ExploreHeader.js index bd7bf8938..0a13ab5f7 100644 --- a/src/components/ExploreHome/ExploreHeader.js +++ b/src/components/ExploreHome/ExploreHeader.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import CommunitySearch from './CommunitySearch'; diff --git a/src/components/ExploreHome/TrendingCommunity.js b/src/components/ExploreHome/TrendingCommunity.js index 188b63bad..4cf868177 100644 --- a/src/components/ExploreHome/TrendingCommunity.js +++ b/src/components/ExploreHome/TrendingCommunity.js @@ -1,7 +1,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import CommunityName from '../CommunityName'; import { diff --git a/src/components/ExploreHome/index.js b/src/components/ExploreHome/index.js index 9f710b403..3493023aa 100644 --- a/src/components/ExploreHome/index.js +++ b/src/components/ExploreHome/index.js @@ -1,11 +1,10 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { getCommunities, getCategories } from 'mock'; import Modal from '../Modal'; import { MenuItem } from '../Menu'; -import { getCommunities, getCategories } from '../../mock'; - import Community from './Community'; import TrendingCommunity from './TrendingCommunity'; import ExploreHeader from './ExploreHeader'; diff --git a/src/components/FeedHeaderTabs/index.js b/src/components/FeedHeaderTabs/index.js index dcdc40e07..a10530e86 100644 --- a/src/components/FeedHeaderTabs/index.js +++ b/src/components/FeedHeaderTabs/index.js @@ -1,4 +1,4 @@ -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { FeedHeaderTabs } from './styles'; diff --git a/src/components/FeedLayout/index.js b/src/components/FeedLayout/index.js index 05f06f45c..1b9339078 100644 --- a/src/components/FeedLayout/index.js +++ b/src/components/FeedLayout/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { LayoutContainer } from './styles'; diff --git a/src/components/FeedSideMenu/index.js b/src/components/FeedSideMenu/index.js index a754ff7c4..3c6bc02c2 100644 --- a/src/components/FeedSideMenu/index.js +++ b/src/components/FeedSideMenu/index.js @@ -1,11 +1,10 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { getMyCommunities } from 'mock'; import CommunityItem from '../CommunityItem'; import SideMenuItem from '../SideMenuItem'; -import { getMyCommunities } from '../../mock'; - import { SideMenuListContainer, BlockTitle, diff --git a/src/components/Files/File.js b/src/components/Files/File.js index de3a7b126..288e19d65 100644 --- a/src/components/Files/File.js +++ b/src/components/Files/File.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; import filesize from 'filesize'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import FileIcon from './FileIcon'; diff --git a/src/components/Files/index.js b/src/components/Files/index.js index b46a87c49..342dc0b28 100644 --- a/src/components/Files/index.js +++ b/src/components/Files/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import File from './File'; diff --git a/src/components/ImageGallery/index.js b/src/components/ImageGallery/index.js index 2b5944904..bbfc5e972 100644 --- a/src/components/ImageGallery/index.js +++ b/src/components/ImageGallery/index.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { ImageGalleryContainer, diff --git a/src/components/Images/Image.js b/src/components/Images/Image.js index 8969c429f..3fc098a1f 100644 --- a/src/components/Images/Image.js +++ b/src/components/Images/Image.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { ImageContainer, ProgressBar, RemoveIcon, NumberOfHiddenImagesOverlay } from './styles'; diff --git a/src/components/Images/index.js b/src/components/Images/index.js index 976af1e16..53d86db33 100644 --- a/src/components/Images/index.js +++ b/src/components/Images/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Image from './Image'; import ImageGallery from '../ImageGallery'; diff --git a/src/components/Layout/index.js b/src/components/Layout/index.js index 07e9ac5f3..b3dee7408 100644 --- a/src/components/Layout/index.js +++ b/src/components/Layout/index.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; import Avatar from '../Avatar'; import Popover from '../Popover'; diff --git a/src/components/Message/IncomingMessage.js b/src/components/Message/IncomingMessage.js index 34d7b96db..3dad31775 100644 --- a/src/components/Message/IncomingMessage.js +++ b/src/components/Message/IncomingMessage.js @@ -1,6 +1,6 @@ import React from 'react'; +import { customizableComponent } from 'hocs/customization'; import Message from '.'; -import { customizableComponent } from '../../hocs/customization'; const IncomingMessage = props => ; diff --git a/src/components/Message/OutgoingMessage.js b/src/components/Message/OutgoingMessage.js index 162c45ec8..d72da37f6 100644 --- a/src/components/Message/OutgoingMessage.js +++ b/src/components/Message/OutgoingMessage.js @@ -1,4 +1,4 @@ +import { customizableComponent } from 'hocs/customization'; import Message from '.'; -import { customizableComponent } from '../../hocs/customization'; export default customizableComponent('OutgoingMessage')(Message); diff --git a/src/components/Message/index.js b/src/components/Message/index.js index 329ecdd49..2868a2c1d 100644 --- a/src/components/Message/index.js +++ b/src/components/Message/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { FormattedTime } from 'react-intl'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Linkify from '../Linkify'; diff --git a/src/components/MessageComposeBar/index.js b/src/components/MessageComposeBar/index.js index e369239b3..dbf2ea1c8 100644 --- a/src/components/MessageComposeBar/index.js +++ b/src/components/MessageComposeBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { MessageComposeBarContainer, diff --git a/src/components/MessageList/index.js b/src/components/MessageList/index.js index a8ca10b58..777a7bed5 100644 --- a/src/components/MessageList/index.js +++ b/src/components/MessageList/index.js @@ -1,12 +1,12 @@ import React from 'react'; import InfiniteScroll from 'react-infinite-scroller'; import { MessageRepository } from 'eko-sdk'; -import IncomingMessage from '../Message/IncomingMessage'; -import OutgoingMessage from '../Message/OutgoingMessage'; -import { customizableComponent } from '../../hocs/customization'; -import withSDK from '../../hocs/withSDK'; -import usePaginatedLiveObject from '../../hooks/usePaginatedLiveObject'; +import { customizableComponent } from 'hocs/customization'; +import withSDK from 'hocs/withSDK'; +import usePaginatedLiveObject from 'hooks/usePaginatedLiveObject'; +import OutgoingMessage from '../Message/OutgoingMessage'; +import IncomingMessage from '../Message/IncomingMessage'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; diff --git a/src/components/Post/index.js b/src/components/Post/index.js index 90940b7c6..b303f41ae 100644 --- a/src/components/Post/index.js +++ b/src/components/Post/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Linkify from '../Linkify'; import Modal from '../Modal'; diff --git a/src/components/PostCompose/AuthorSelector.js b/src/components/PostCompose/AuthorSelector.js index 77765aaf1..b4235d2e1 100644 --- a/src/components/PostCompose/AuthorSelector.js +++ b/src/components/PostCompose/AuthorSelector.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Popover from '../Popover'; import Menu, { MenuItem } from '../Menu'; diff --git a/src/components/PostCompose/index.js b/src/components/PostCompose/index.js index 6d523cbb1..478a1925c 100644 --- a/src/components/PostCompose/index.js +++ b/src/components/PostCompose/index.js @@ -1,12 +1,11 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; +import { testUser, testFiles, testImages } from 'mock'; import { notification } from '../Notification'; import Files from '../Files'; import Images from '../Images'; -import { testUser, testFiles, testImages } from '../../mock'; - import AuthorSelector from './AuthorSelector'; import { diff --git a/src/components/RecentChat/index.js b/src/components/RecentChat/index.js index 88d870de3..0dfb949a6 100644 --- a/src/components/RecentChat/index.js +++ b/src/components/RecentChat/index.js @@ -1,8 +1,8 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from '../../hocs/customization'; -import useLiveObject from '../../hooks/useLiveObject'; +import { customizableComponent } from 'hocs/customization'; +import useLiveObject from 'hooks/useLiveObject'; import ChatItem from '../ChatItem'; import CreateNewChat from './CreateNewChat'; diff --git a/src/components/SideMenu/MenuTab.js b/src/components/SideMenu/MenuTab.js index a908ee6d0..ee528b65d 100644 --- a/src/components/SideMenu/MenuTab.js +++ b/src/components/SideMenu/MenuTab.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { MenuTabContainer, MenuName } from './styles'; const MenuTab = ({ icon, name, className, onClick, active }) => { diff --git a/src/components/SideMenu/index.js b/src/components/SideMenu/index.js index 9e45994a1..ceeeb6411 100644 --- a/src/components/SideMenu/index.js +++ b/src/components/SideMenu/index.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import { SideMenuContainer } from './styles'; import communityIcon from './icons/community.svg'; import MenuTab from './MenuTab'; diff --git a/src/components/Tabs/index.js b/src/components/Tabs/index.js index a2a08899b..0a77b0492 100644 --- a/src/components/Tabs/index.js +++ b/src/components/Tabs/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Tab from '../Tab'; import { TabsContainer } from './styles'; diff --git a/src/components/UiKitProvider/index.js b/src/components/UiKitProvider/index.js index 1b16d2556..3940aa8a1 100644 --- a/src/components/UiKitProvider/index.js +++ b/src/components/UiKitProvider/index.js @@ -3,13 +3,13 @@ import merge from 'lodash/merge'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; -import { CustomComponentsProvider } from '../../hocs/customization'; -import { SDKProvider } from '../../hocs/withSDK'; +import { CustomComponentsProvider } from 'hocs/customization'; +import { SDKProvider } from 'hocs/withSDK'; +import MockData from 'mock'; import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; import { UIStyles } from './styles'; import GlobalTheme from './GlobalTheme'; -import MockData from '../../mock'; import { ConfirmContainer } from '../Confirm'; import { NotificationsContainer } from '../Notification'; diff --git a/src/components/UserFeedHeader/index.js b/src/components/UserFeedHeader/index.js index 9d3280d84..5ff65b786 100644 --- a/src/components/UserFeedHeader/index.js +++ b/src/components/UserFeedHeader/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from '../../hocs/customization'; +import { customizableComponent } from 'hocs/customization'; import Tab from '../Tab'; import { UserFeedHeaderContainer, Tabs } from './styles'; From 74131bbf0bf3c5758e141afca20c71db2eb07303 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 3 Sep 2020 17:23:19 +0700 Subject: [PATCH 076/740] Use alias imports for components --- src/components/Chat/index.js | 6 +++--- src/components/ChatDetails/styles.js | 2 +- src/components/ChatHeader/styles.js | 2 +- src/components/ChatHome/ChatHome.stories.js | 2 +- src/components/ChatHome/index.js | 6 +++--- src/components/ChatItem/styles.js | 4 ++-- src/components/Comment/index.js | 4 ++-- src/components/Comment/styles.js | 10 +++++----- src/components/CommentComposeBar/styles.js | 4 ++-- src/components/Community/Community.stories.js | 10 +++++----- src/components/Community/CommunityMembers.js | 6 +++--- src/components/Community/NewsFeed.js | 2 +- src/components/Community/UserFeed.js | 4 ++-- src/components/Community/index.js | 4 ++-- src/components/Community/styles.js | 12 ++++++------ src/components/CommunityCreationModal/index.js | 4 ++-- .../CommunityCreationModal/styles.js | 4 ++-- .../CommunityForm/CategorySelector.js | 2 +- src/components/CommunityForm/UserSelector.js | 2 +- src/components/CommunityForm/index.js | 2 +- src/components/CommunityForm/styles.js | 8 ++++---- src/components/CommunityInformation/index.js | 2 +- src/components/CommunityInformation/styles.js | 6 +++--- src/components/CommunityItem/index.js | 2 +- src/components/CommunityItem/styles.js | 4 ++-- src/components/Confirm/styles.js | 4 ++-- src/components/EngagementBar/index.js | 6 +++--- src/components/ExploreHome/Community.js | 2 +- src/components/ExploreHome/CommunitySearch.js | 4 ++-- .../ExploreHome/TrendingCommunity.js | 2 +- src/components/ExploreHome/index.js | 4 ++-- src/components/ExploreHome/styles.js | 6 +++--- src/components/FeedHeaderTabs/styles.js | 2 +- src/components/FeedSideMenu/index.js | 4 ++-- src/components/Files/styles.js | 2 +- src/components/Images/index.js | 2 +- src/components/Layout/Layout.stories.js | 2 +- src/components/Layout/index.js | 6 +++--- src/components/Message/Options.js | 4 ++-- src/components/Message/index.js | 2 +- src/components/Message/styles.js | 2 +- src/components/MessageList/index.js | 4 ++-- src/components/Options/index.js | 4 ++-- src/components/Options/styles.js | 2 +- src/components/Post/index.js | 18 +++++++++--------- src/components/Post/styles.js | 4 ++-- src/components/PostCompose/AuthorSelector.js | 4 ++-- src/components/PostCompose/index.js | 6 +++--- src/components/PostCompose/styles.js | 4 ++-- src/components/RecentChat/CreateNewChat.js | 2 +- src/components/RecentChat/index.js | 2 +- src/components/SideMenuItem/styles.js | 2 +- src/components/Tabs/index.js | 2 +- src/components/UiKitProvider/index.js | 4 ++-- src/components/UserFeedHeader/index.js | 2 +- 55 files changed, 114 insertions(+), 114 deletions(-) diff --git a/src/components/Chat/index.js b/src/components/Chat/index.js index ec634f14e..26c4ba644 100644 --- a/src/components/Chat/index.js +++ b/src/components/Chat/index.js @@ -3,9 +3,9 @@ import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; import { customizableComponent } from 'hocs/customization'; -import ChatHeader from '../ChatHeader'; -import MessageList from '../MessageList'; -import MessageComposeBar from '../MessageComposeBar'; +import ChatHeader from 'components/ChatHeader'; +import MessageList from 'components/MessageList'; +import MessageComposeBar from 'components/MessageComposeBar'; import { ChannelContainer } from './styles'; diff --git a/src/components/ChatDetails/styles.js b/src/components/ChatDetails/styles.js index 3dba2826d..0a243008c 100644 --- a/src/components/ChatDetails/styles.js +++ b/src/components/ChatDetails/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; -import UiKitAvatar from '../Avatar'; +import UiKitAvatar from 'components/Avatar'; export const Avatar = styled(UiKitAvatar)``; diff --git a/src/components/ChatHeader/styles.js b/src/components/ChatHeader/styles.js index 6a73cb7cd..b96d6f9c6 100644 --- a/src/components/ChatHeader/styles.js +++ b/src/components/ChatHeader/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faBars } from '@fortawesome/free-solid-svg-icons'; -import UiKitAvatar from '../Avatar'; +import UiKitAvatar from 'components/Avatar'; export const Avatar = styled(UiKitAvatar)``; diff --git a/src/components/ChatHome/ChatHome.stories.js b/src/components/ChatHome/ChatHome.stories.js index 2d891b549..96d126faf 100644 --- a/src/components/ChatHome/ChatHome.stories.js +++ b/src/components/ChatHome/ChatHome.stories.js @@ -1,6 +1,6 @@ import React from 'react'; +import Message from 'components/Message'; import ChatHome from '.'; -import Message from '../Message'; export default { title: 'ChatHome', diff --git a/src/components/ChatHome/index.js b/src/components/ChatHome/index.js index 2e280ec6e..1604f0002 100644 --- a/src/components/ChatHome/index.js +++ b/src/components/ChatHome/index.js @@ -1,9 +1,9 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; -import RecentChat from '../RecentChat'; -import Chat from '../Chat'; -import ChatDetails from '../ChatDetails'; +import RecentChat from 'components/RecentChat'; +import Chat from 'components/Chat'; +import ChatDetails from 'components/ChatDetails'; import { ChatHomeContainer } from './styles'; diff --git a/src/components/ChatItem/styles.js b/src/components/ChatItem/styles.js index bdbdd218d..a2b699ece 100644 --- a/src/components/ChatItem/styles.js +++ b/src/components/ChatItem/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import SideMenuItem from '../SideMenuItem'; -import UiKitAvatar from '../Avatar'; +import SideMenuItem from 'components/SideMenuItem'; +import UiKitAvatar from 'components/Avatar'; export const ChatItemContainer = styled(SideMenuItem)``; diff --git a/src/components/Comment/index.js b/src/components/Comment/index.js index e1f44f652..e46c45c7e 100644 --- a/src/components/Comment/index.js +++ b/src/components/Comment/index.js @@ -3,8 +3,8 @@ import Truncate from 'react-truncate-markup'; import { customizableComponent } from 'hocs/customization'; -import Linkify from '../Linkify'; -import { notification } from '../Notification'; +import Linkify from 'components/Linkify'; +import { notification } from 'components/Notification'; import { Avatar, diff --git a/src/components/Comment/styles.js b/src/components/Comment/styles.js index 39a4dd97c..eb7a17e79 100644 --- a/src/components/Comment/styles.js +++ b/src/components/Comment/styles.js @@ -4,12 +4,12 @@ import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faThumbsUp, faShare } from '@fortawesome/pro-regular-svg-icons'; import { faThumbsUp as faThumbsUpSolid } from '@fortawesome/pro-solid-svg-icons'; -import { SecondaryButton } from '../Button'; -import Time from '../Time'; -import UIOptions from '../Options'; -import UICommentComposeBar from '../CommentComposeBar'; +import { SecondaryButton } from 'components/Button'; +import Time from 'components/Time'; +import UIOptions from 'components/Options'; +import UICommentComposeBar from 'components/CommentComposeBar'; -import UIAvatar from '../Avatar'; +import UIAvatar from 'components/Avatar'; export const Avatar = styled(UIAvatar)` margin-right: 8px; diff --git a/src/components/CommentComposeBar/styles.js b/src/components/CommentComposeBar/styles.js index 028deb9c6..082b2b53a 100644 --- a/src/components/CommentComposeBar/styles.js +++ b/src/components/CommentComposeBar/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; import TextareaAutosize from 'react-autosize-textarea'; -import { PrimaryButton } from '../Button'; +import { PrimaryButton } from 'components/Button'; -import UIAvatar from '../Avatar'; +import UIAvatar from 'components/Avatar'; export const Avatar = styled(UIAvatar)` margin-right: 8px; diff --git a/src/components/Community/Community.stories.js b/src/components/Community/Community.stories.js index 8cbf72010..11876af77 100644 --- a/src/components/Community/Community.stories.js +++ b/src/components/Community/Community.stories.js @@ -10,15 +10,15 @@ import { import { useCommunitiesMock } from 'mock'; -import FeedLayout from '../FeedLayout'; -import FeedSideMenu, { SELECTION_TYPES } from '../FeedSideMenu'; +import FeedLayout from 'components/FeedLayout'; +import FeedSideMenu, { SELECTION_TYPES } from 'components/FeedSideMenu'; +import ExploreHome from 'components/ExploreHome'; +import CategoryPage from 'components/ExploreHome/CategoryPage'; +import CommunityCreationModal from 'components/CommunityCreationModal'; import UserFeed from './UserFeed'; import NewsFeed from './NewsFeed'; -import ExploreHome from '../ExploreHome'; -import CategoryPage from '../ExploreHome/CategoryPage'; import CommunityFeed from '.'; -import CommunityCreationModal from '../CommunityCreationModal'; export default { title: 'Community', diff --git a/src/components/Community/CommunityMembers.js b/src/components/Community/CommunityMembers.js index 6c39adea3..933031ee3 100644 --- a/src/components/Community/CommunityMembers.js +++ b/src/components/Community/CommunityMembers.js @@ -2,9 +2,9 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; import { testMembers, testModerators } from 'mock'; -import Options from '../Options'; -import { confirm } from '../Confirm'; -import { notification } from '../Notification'; +import Options from 'components/Options'; +import { confirm } from 'components/Confirm'; +import { notification } from 'components/Notification'; import { Avatar, diff --git a/src/components/Community/NewsFeed.js b/src/components/Community/NewsFeed.js index 3e839fac9..37173e5aa 100644 --- a/src/components/Community/NewsFeed.js +++ b/src/components/Community/NewsFeed.js @@ -4,7 +4,7 @@ import { customizableComponent } from 'hocs/customization'; import withSDK from 'hocs/withSDK'; import { getMyCommunities, usePostsMock } from 'mock'; -import EmptyFeed from '../EmptyFeed'; +import EmptyFeed from 'components/EmptyFeed'; import { Content, Feed, PostCompose, Post } from './styles'; diff --git a/src/components/Community/UserFeed.js b/src/components/Community/UserFeed.js index 4a297b5bc..bee79befa 100644 --- a/src/components/Community/UserFeed.js +++ b/src/components/Community/UserFeed.js @@ -3,9 +3,9 @@ import React from 'react'; import { customizableComponent } from 'hocs/customization'; import withSDK from 'hocs/withSDK'; -// import CommunityInformation from '../CommunityInformation'; +// import CommunityInformation from 'components/CommunityInformation'; import { testUser, usePostsMock } from 'mock'; -import EmptyFeed from '../EmptyFeed'; +import EmptyFeed from 'components/EmptyFeed'; import { Content, Feed, PostCompose, Post, UserFeedHeader } from './styles'; diff --git a/src/components/Community/index.js b/src/components/Community/index.js index 20e77bf4a..6a06c0255 100644 --- a/src/components/Community/index.js +++ b/src/components/Community/index.js @@ -4,8 +4,8 @@ import { customizableComponent } from 'hocs/customization'; import withSDK from 'hocs/withSDK'; import { getCommunities, usePostsMock } from 'mock'; -import CommunityInformation from '../CommunityInformation'; -import EmptyFeed from '../EmptyFeed'; +import CommunityInformation from 'components/CommunityInformation'; +import EmptyFeed from 'components/EmptyFeed'; import CommunityMembers from './CommunityMembers'; diff --git a/src/components/Community/styles.js b/src/components/Community/styles.js index 72e0062a7..17b275654 100644 --- a/src/components/Community/styles.js +++ b/src/components/Community/styles.js @@ -1,11 +1,11 @@ import styled from 'styled-components'; -import UIPost from '../Post'; -import UIPostCompose from '../PostCompose'; -import UIFeedHeaderTabs from '../FeedHeaderTabs'; -import UIUserFeedHeader from '../UserFeedHeader'; -import UiKitAvatar from '../Avatar'; +import UIPost from 'components/Post'; +import UIPostCompose from 'components/PostCompose'; +import UIFeedHeaderTabs from 'components/FeedHeaderTabs'; +import UIUserFeedHeader from 'components/UserFeedHeader'; +import UiKitAvatar from 'components/Avatar'; -import Tabs from '../Tabs'; +import Tabs from 'components/Tabs'; export const CommunityMembersTabs = styled(Tabs)` margin-bottom: 14px; diff --git a/src/components/CommunityCreationModal/index.js b/src/components/CommunityCreationModal/index.js index aa4aaac22..0b99809a2 100644 --- a/src/components/CommunityCreationModal/index.js +++ b/src/components/CommunityCreationModal/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { customizableComponent } from 'hocs/customization'; -import { confirm } from '../Confirm'; -import Modal from '../Modal'; +import { confirm } from 'components/Confirm'; +import Modal from 'components/Modal'; import { CommunityForm } from './styles'; const CommunityCreationModal = ({ isOpen, onClose, onSubmit }) => { diff --git a/src/components/CommunityCreationModal/styles.js b/src/components/CommunityCreationModal/styles.js index 1db54e351..f7f5f3227 100644 --- a/src/components/CommunityCreationModal/styles.js +++ b/src/components/CommunityCreationModal/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import UICommunityForm from '../CommunityForm'; -import { FormBody } from '../CommunityForm/styles'; +import UICommunityForm from 'components/CommunityForm'; +import { FormBody } from 'components/CommunityForm/styles'; export const CommunityForm = styled(UICommunityForm)` ${FormBody} { diff --git a/src/components/CommunityForm/CategorySelector.js b/src/components/CommunityForm/CategorySelector.js index 5d10bee01..7f312aef8 100644 --- a/src/components/CommunityForm/CategorySelector.js +++ b/src/components/CommunityForm/CategorySelector.js @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; import { getCategories, getCategory } from 'mock'; -import { MenuItem } from '../Menu'; +import { MenuItem } from 'components/Menu'; import { Avatar, Selector, SelectorPopover, SelectorList, SelectIcon } from './styles'; diff --git a/src/components/CommunityForm/UserSelector.js b/src/components/CommunityForm/UserSelector.js index ab9dede82..ce3c1bd3b 100644 --- a/src/components/CommunityForm/UserSelector.js +++ b/src/components/CommunityForm/UserSelector.js @@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { customizableComponent } from 'hocs/customization'; import { testUsers } from 'mock'; -import { MenuItem } from '../Menu'; +import { MenuItem } from 'components/Menu'; import { Avatar, diff --git a/src/components/CommunityForm/index.js b/src/components/CommunityForm/index.js index b8b897e8e..379d17dcc 100644 --- a/src/components/CommunityForm/index.js +++ b/src/components/CommunityForm/index.js @@ -3,7 +3,7 @@ import { useForm, Controller } from 'react-hook-form'; import { customizableComponent } from 'hocs/customization'; import { getCommunities } from 'mock'; -import Button from '../Button'; +import Button from 'components/Button'; import CategorySelector from './CategorySelector'; import UserSelector from './UserSelector'; diff --git a/src/components/CommunityForm/styles.js b/src/components/CommunityForm/styles.js index 8caf006fe..b21b27a65 100644 --- a/src/components/CommunityForm/styles.js +++ b/src/components/CommunityForm/styles.js @@ -11,10 +11,10 @@ import { faChevronDown, faTimes, } from '@fortawesome/pro-regular-svg-icons'; -import { PrimaryButton } from '../Button'; -import Popover from '../Popover'; -import UIAvatar from '../Avatar'; -import Menu from '../Menu'; +import { PrimaryButton } from 'components/Button'; +import Popover from 'components/Popover'; +import UIAvatar from 'components/Avatar'; +import Menu from 'components/Menu'; const ErrorMessageWrapper = styled.div` margin-top: 8px; diff --git a/src/components/CommunityInformation/index.js b/src/components/CommunityInformation/index.js index 2d4751769..c206fc831 100644 --- a/src/components/CommunityInformation/index.js +++ b/src/components/CommunityInformation/index.js @@ -4,7 +4,7 @@ import Truncate from 'react-truncate-markup'; import { customizableComponent } from 'hocs/customization'; import { useCommunitiesMock, getMyCommunityIds } from 'mock'; -import { confirm } from '../Confirm'; +import { confirm } from 'components/Confirm'; import { Count, diff --git a/src/components/CommunityInformation/styles.js b/src/components/CommunityInformation/styles.js index 981e10797..67b18c747 100644 --- a/src/components/CommunityInformation/styles.js +++ b/src/components/CommunityInformation/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; -import { PrimaryButton } from '../Button'; -import UIAvatar from '../Avatar'; -import UIOptions from '../Options'; +import { PrimaryButton } from 'components/Button'; +import UIAvatar from 'components/Avatar'; +import UIOptions from 'components/Options'; export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` font-size: 16px; diff --git a/src/components/CommunityItem/index.js b/src/components/CommunityItem/index.js index abb83634c..6b3ab3c07 100644 --- a/src/components/CommunityItem/index.js +++ b/src/components/CommunityItem/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { customizableComponent } from 'hocs/customization'; -import CommunityName from '../CommunityName'; +import CommunityName from 'components/CommunityName'; import { Avatar, CommunityItemContainer } from './styles'; diff --git a/src/components/CommunityItem/styles.js b/src/components/CommunityItem/styles.js index 2c57241d0..f226c0b16 100644 --- a/src/components/CommunityItem/styles.js +++ b/src/components/CommunityItem/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import UiKitAvatar from '../Avatar'; -import SideMenuItem from '../SideMenuItem'; +import UiKitAvatar from 'components/Avatar'; +import SideMenuItem from 'components/SideMenuItem'; export const CommunityItemContainer = styled(SideMenuItem)``; diff --git a/src/components/Confirm/styles.js b/src/components/Confirm/styles.js index 991b77a0a..bdc53bc98 100644 --- a/src/components/Confirm/styles.js +++ b/src/components/Confirm/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import Modal from '../Modal'; -import Button, { PrimaryButton } from '../Button'; +import Modal from 'components/Modal'; +import Button, { PrimaryButton } from 'components/Button'; export const ConfirmModal = styled(Modal)` max-width: 360px; diff --git a/src/components/EngagementBar/index.js b/src/components/EngagementBar/index.js index 2df4906c6..fc0cb0ae5 100644 --- a/src/components/EngagementBar/index.js +++ b/src/components/EngagementBar/index.js @@ -1,10 +1,10 @@ import React, { useState } from 'react'; import { toHumanString } from 'human-readable-numbers'; import { customizableComponent } from 'hocs/customization'; -import { SecondaryButton } from '../Button'; +import { SecondaryButton } from 'components/Button'; -import CommentComposeBar from '../CommentComposeBar'; -import Comment from '../Comment'; +import CommentComposeBar from 'components/CommentComposeBar'; +import Comment from 'components/Comment'; import { EngagementBarContainer, Counters, InteractionBar, LikeIcon, CommentIcon } from './styles'; diff --git a/src/components/ExploreHome/Community.js b/src/components/ExploreHome/Community.js index 35ca82eec..0a11a3b0c 100644 --- a/src/components/ExploreHome/Community.js +++ b/src/components/ExploreHome/Community.js @@ -2,7 +2,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from 'hocs/customization'; -import CommunityName from '../CommunityName'; +import CommunityName from 'components/CommunityName'; import { Avatar, CommunityItem, Description, Count } from './styles'; diff --git a/src/components/ExploreHome/CommunitySearch.js b/src/components/ExploreHome/CommunitySearch.js index d69a2c657..250b04c60 100644 --- a/src/components/ExploreHome/CommunitySearch.js +++ b/src/components/ExploreHome/CommunitySearch.js @@ -2,8 +2,8 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from 'hocs/customization'; import { getCommunities } from 'mock'; -import Popover from '../Popover'; -import { MenuItem } from '../Menu'; +import Popover from 'components/Popover'; +import { MenuItem } from 'components/Menu'; import { Avatar, diff --git a/src/components/ExploreHome/TrendingCommunity.js b/src/components/ExploreHome/TrendingCommunity.js index 4cf868177..20f1b6b0d 100644 --- a/src/components/ExploreHome/TrendingCommunity.js +++ b/src/components/ExploreHome/TrendingCommunity.js @@ -2,7 +2,7 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; import { customizableComponent } from 'hocs/customization'; -import CommunityName from '../CommunityName'; +import CommunityName from 'components/CommunityName'; import { Avatar, diff --git a/src/components/ExploreHome/index.js b/src/components/ExploreHome/index.js index 3493023aa..93a69107c 100644 --- a/src/components/ExploreHome/index.js +++ b/src/components/ExploreHome/index.js @@ -2,8 +2,8 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; import { getCommunities, getCategories } from 'mock'; -import Modal from '../Modal'; -import { MenuItem } from '../Menu'; +import Modal from 'components/Modal'; +import { MenuItem } from 'components/Menu'; import Community from './Community'; import TrendingCommunity from './TrendingCommunity'; diff --git a/src/components/ExploreHome/styles.js b/src/components/ExploreHome/styles.js index c31364ae8..7102e04c2 100644 --- a/src/components/ExploreHome/styles.js +++ b/src/components/ExploreHome/styles.js @@ -6,9 +6,9 @@ import { faChevronLeft, faChevronRight, } from '@fortawesome/pro-regular-svg-icons'; -import Button, { SecondaryButton } from '../Button'; -import UIAvatar from '../Avatar'; -import Menu from '../Menu'; +import Button, { SecondaryButton } from 'components/Button'; +import UIAvatar from 'components/Avatar'; +import Menu from 'components/Menu'; export const SearchIcon = styled(FaIcon).attrs({ icon: faSearch })` color: #898e9e; diff --git a/src/components/FeedHeaderTabs/styles.js b/src/components/FeedHeaderTabs/styles.js index 655c13abe..03ac01967 100644 --- a/src/components/FeedHeaderTabs/styles.js +++ b/src/components/FeedHeaderTabs/styles.js @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import UITabs from '../Tabs'; +import UITabs from 'components/Tabs'; export const FeedHeaderTabs = styled(UITabs)` background: #ffffff; diff --git a/src/components/FeedSideMenu/index.js b/src/components/FeedSideMenu/index.js index 3c6bc02c2..c98377371 100644 --- a/src/components/FeedSideMenu/index.js +++ b/src/components/FeedSideMenu/index.js @@ -2,8 +2,8 @@ import React from 'react'; import { customizableComponent } from 'hocs/customization'; import { getMyCommunities } from 'mock'; -import CommunityItem from '../CommunityItem'; -import SideMenuItem from '../SideMenuItem'; +import CommunityItem from 'components/CommunityItem'; +import SideMenuItem from 'components/SideMenuItem'; import { SideMenuListContainer, diff --git a/src/components/Files/styles.js b/src/components/Files/styles.js index d75e98354..bc4289a92 100644 --- a/src/components/Files/styles.js +++ b/src/components/Files/styles.js @@ -3,7 +3,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton } from '../Button'; +import { SecondaryButton } from 'components/Button'; export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` padding: 0 10px; diff --git a/src/components/Images/index.js b/src/components/Images/index.js index 53d86db33..6e7797a63 100644 --- a/src/components/Images/index.js +++ b/src/components/Images/index.js @@ -2,8 +2,8 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; +import ImageGallery from 'components/ImageGallery'; import Image from './Image'; -import ImageGallery from '../ImageGallery'; import { ImagesContainer } from './styles'; diff --git a/src/components/Layout/Layout.stories.js b/src/components/Layout/Layout.stories.js index f18d2434e..5714c73da 100644 --- a/src/components/Layout/Layout.stories.js +++ b/src/components/Layout/Layout.stories.js @@ -1,6 +1,6 @@ import React from 'react'; +import SideMenu from 'components/SideMenu'; import Layout from '.'; -import SideMenu from '../SideMenu'; export default { title: 'Layout', diff --git a/src/components/Layout/index.js b/src/components/Layout/index.js index b3dee7408..ea59cc92b 100644 --- a/src/components/Layout/index.js +++ b/src/components/Layout/index.js @@ -1,9 +1,9 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; +import Avatar from 'components/Avatar'; +import Popover from 'components/Popover'; +import Menu, { MenuItem } from 'components/Menu'; import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; -import Avatar from '../Avatar'; -import Popover from '../Popover'; -import Menu, { MenuItem } from '../Menu'; const Layout = () => { const [isOpen, setIsOpen] = useState(false); diff --git a/src/components/Message/Options.js b/src/components/Message/Options.js index ef39494c3..7318eec71 100644 --- a/src/components/Message/Options.js +++ b/src/components/Message/Options.js @@ -1,8 +1,8 @@ import React, { useState, useEffect } from 'react'; import { MessageEditorRepository, MessageFlagRepository } from 'eko-sdk'; -import Popover from '../Popover'; -import Menu, { MenuItem } from '../Menu'; +import Popover from 'components/Popover'; +import Menu, { MenuItem } from 'components/Menu'; import { MessageOptionsIcon, SaveIcon, CloseIcon, EditingInput, EditingContainer } from './styles'; diff --git a/src/components/Message/index.js b/src/components/Message/index.js index 2868a2c1d..2b192315a 100644 --- a/src/components/Message/index.js +++ b/src/components/Message/index.js @@ -3,7 +3,7 @@ import { FormattedTime } from 'react-intl'; import { customizableComponent } from 'hocs/customization'; -import Linkify from '../Linkify'; +import Linkify from 'components/Linkify'; import Options from './Options'; diff --git a/src/components/Message/styles.js b/src/components/Message/styles.js index 010382373..5d2dc1faa 100644 --- a/src/components/Message/styles.js +++ b/src/components/Message/styles.js @@ -3,7 +3,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faEllipsisV } from '@fortawesome/pro-solid-svg-icons'; import { faSave, faTrashAlt, faTimes } from '@fortawesome/pro-regular-svg-icons'; -import UiKitAvatar from '../Avatar'; +import UiKitAvatar from 'components/Avatar'; export const SystemMessageContainer = styled.span` opacity: 0.5; diff --git a/src/components/MessageList/index.js b/src/components/MessageList/index.js index 777a7bed5..31b7f5c71 100644 --- a/src/components/MessageList/index.js +++ b/src/components/MessageList/index.js @@ -5,8 +5,8 @@ import { MessageRepository } from 'eko-sdk'; import { customizableComponent } from 'hocs/customization'; import withSDK from 'hocs/withSDK'; import usePaginatedLiveObject from 'hooks/usePaginatedLiveObject'; -import OutgoingMessage from '../Message/OutgoingMessage'; -import IncomingMessage from '../Message/IncomingMessage'; +import OutgoingMessage from 'components/Message/OutgoingMessage'; +import IncomingMessage from 'components/Message/IncomingMessage'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; diff --git a/src/components/Options/index.js b/src/components/Options/index.js index 85ee290ac..9d590e866 100644 --- a/src/components/Options/index.js +++ b/src/components/Options/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; -import Popover from '../Popover'; -import Menu, { MenuItem } from '../Menu'; +import Popover from 'components/Popover'; +import Menu, { MenuItem } from 'components/Menu'; import { OptionsIcon, OptionsButton } from './styles'; diff --git a/src/components/Options/styles.js b/src/components/Options/styles.js index c7d0dd489..21752b7cf 100644 --- a/src/components/Options/styles.js +++ b/src/components/Options/styles.js @@ -2,7 +2,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faEllipsisH } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton } from '../Button'; +import { SecondaryButton } from 'components/Button'; export const OptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisH })` font-size: 16px; diff --git a/src/components/Post/index.js b/src/components/Post/index.js index b303f41ae..6a18c7b0e 100644 --- a/src/components/Post/index.js +++ b/src/components/Post/index.js @@ -3,16 +3,16 @@ import Truncate from 'react-truncate-markup'; import { customizableComponent } from 'hocs/customization'; -import Linkify from '../Linkify'; -import Modal from '../Modal'; -import Time from '../Time'; -import { confirm } from '../Confirm'; +import Linkify from 'components/Linkify'; +import Modal from 'components/Modal'; +import Time from 'components/Time'; +import { confirm } from 'components/Confirm'; -import EngagementBar from '../EngagementBar'; -import Avatar from '../Avatar'; -import Files from '../Files'; -import Images from '../Images'; -import PostCompose from '../PostCompose'; +import EngagementBar from 'components/EngagementBar'; +import Avatar from 'components/Avatar'; +import Files from 'components/Files'; +import Images from 'components/Images'; +import PostCompose from 'components/PostCompose'; import { PostContainer, diff --git a/src/components/Post/styles.js b/src/components/Post/styles.js index 768a80538..2c0baa94c 100644 --- a/src/components/Post/styles.js +++ b/src/components/Post/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; -import { SecondaryButton } from '../Button'; -import UIOptions from '../Options'; +import { SecondaryButton } from 'components/Button'; +import UIOptions from 'components/Options'; export const Options = styled(UIOptions)` margin-left: auto; diff --git a/src/components/PostCompose/AuthorSelector.js b/src/components/PostCompose/AuthorSelector.js index b4235d2e1..03b34614c 100644 --- a/src/components/PostCompose/AuthorSelector.js +++ b/src/components/PostCompose/AuthorSelector.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; -import Popover from '../Popover'; -import Menu, { MenuItem } from '../Menu'; +import Popover from 'components/Popover'; +import Menu, { MenuItem } from 'components/Menu'; import { AuthorSelectorContainer, CommunitySeparator, SelectIcon, Avatar } from './styles'; diff --git a/src/components/PostCompose/index.js b/src/components/PostCompose/index.js index 478a1925c..b999d65b3 100644 --- a/src/components/PostCompose/index.js +++ b/src/components/PostCompose/index.js @@ -2,9 +2,9 @@ import React, { useState } from 'react'; import { customizableComponent } from 'hocs/customization'; import { testUser, testFiles, testImages } from 'mock'; -import { notification } from '../Notification'; -import Files from '../Files'; -import Images from '../Images'; +import { notification } from 'components/Notification'; +import Files from 'components/Files'; +import Images from 'components/Images'; import AuthorSelector from './AuthorSelector'; diff --git a/src/components/PostCompose/styles.js b/src/components/PostCompose/styles.js index aa7702f94..9000208fe 100644 --- a/src/components/PostCompose/styles.js +++ b/src/components/PostCompose/styles.js @@ -3,8 +3,8 @@ import TextareaAutosize from 'react-autosize-textarea'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; -import { PrimaryButton } from '../Button'; -import UIAvatar from '../Avatar'; +import { PrimaryButton } from 'components/Button'; +import UIAvatar from 'components/Avatar'; // TODO add icon button export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` diff --git a/src/components/RecentChat/CreateNewChat.js b/src/components/RecentChat/CreateNewChat.js index 25fc1c83f..f85e96b35 100644 --- a/src/components/RecentChat/CreateNewChat.js +++ b/src/components/RecentChat/CreateNewChat.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { ChannelRepository, EkoChannelType } from 'eko-sdk'; -import Popover from '../Popover'; +import Popover from 'components/Popover'; import { CreateIcon, diff --git a/src/components/RecentChat/index.js b/src/components/RecentChat/index.js index 0dfb949a6..d8f437147 100644 --- a/src/components/RecentChat/index.js +++ b/src/components/RecentChat/index.js @@ -3,7 +3,7 @@ import { ChannelRepository } from 'eko-sdk'; import { customizableComponent } from 'hocs/customization'; import useLiveObject from 'hooks/useLiveObject'; -import ChatItem from '../ChatItem'; +import ChatItem from 'components/ChatItem'; import CreateNewChat from './CreateNewChat'; import { RecentChatListContainer, RecentChatListHeader } from './styles'; diff --git a/src/components/SideMenuItem/styles.js b/src/components/SideMenuItem/styles.js index c5498aa9c..2c8e9ba35 100644 --- a/src/components/SideMenuItem/styles.js +++ b/src/components/SideMenuItem/styles.js @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import { SecondaryButton } from '../Button'; +import { SecondaryButton } from 'components/Button'; export const SideMenuItemContainer = styled(SecondaryButton)` display: flex; diff --git a/src/components/Tabs/index.js b/src/components/Tabs/index.js index 0a77b0492..1e4b5bd4e 100644 --- a/src/components/Tabs/index.js +++ b/src/components/Tabs/index.js @@ -1,6 +1,6 @@ import React from 'react'; import { customizableComponent } from 'hocs/customization'; -import Tab from '../Tab'; +import Tab from 'components/Tab'; import { TabsContainer } from './styles'; diff --git a/src/components/UiKitProvider/index.js b/src/components/UiKitProvider/index.js index 3940aa8a1..14217d4a3 100644 --- a/src/components/UiKitProvider/index.js +++ b/src/components/UiKitProvider/index.js @@ -6,12 +6,12 @@ import { ThemeProvider } from 'styled-components'; import { CustomComponentsProvider } from 'hocs/customization'; import { SDKProvider } from 'hocs/withSDK'; import MockData from 'mock'; +import { ConfirmContainer } from 'components/Confirm'; +import { NotificationsContainer } from 'components/Notification'; import Localization from './Localisation'; import GlobalStyle from './GlobalStyle'; import { UIStyles } from './styles'; import GlobalTheme from './GlobalTheme'; -import { ConfirmContainer } from '../Confirm'; -import { NotificationsContainer } from '../Notification'; _changeSDKDefaultConfig({ ws: { endpoint: 'https://api.staging.ekomedia.technology' }, diff --git a/src/components/UserFeedHeader/index.js b/src/components/UserFeedHeader/index.js index 5ff65b786..7192b19b3 100644 --- a/src/components/UserFeedHeader/index.js +++ b/src/components/UserFeedHeader/index.js @@ -1,6 +1,6 @@ import React from 'react'; import { customizableComponent } from 'hocs/customization'; -import Tab from '../Tab'; +import Tab from 'components/Tab'; import { UserFeedHeaderContainer, Tabs } from './styles'; From 2dba83d8968400ba6289741f148a2b0a09a675c3 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Tue, 8 Sep 2020 11:12:12 +0700 Subject: [PATCH 077/740] add storybook/addon-controls --- .storybook/main.js | 2 +- package-lock.json | 223 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 225 insertions(+), 1 deletion(-) diff --git a/.storybook/main.js b/.storybook/main.js index fe47279c6..703c3addd 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,7 +4,7 @@ const mainWebpack = require('../webpack.config.js'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: ['@storybook/addon-storysource'], + addons: ['@storybook/addon-storysource', '@storybook/addon-controls'], webpackFinal: async config => { config.plugins.push( // fix static storybook styling diff --git a/package-lock.json b/package-lock.json index c24c40c0e..295a7278a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,6 +2769,229 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-controls": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", + "integrity": "sha512-ksL+BqzWVTezY3u0AeSuQBZdiDzTImfLx1xjmLkPTeFgfVBzHRKN4sqIWHzy1zVCCVL0fAzZ8g3Sgk5iVNs3uw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/node-logger": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/node-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.21.tgz", + "integrity": "sha512-KRBf+Fz7fgtwHdnYt70JTZbcYMZ1pQPtDyqbrFYCjwkbx5GPX5vMOozlxCIj9elseqPIsF8CKgHOW7cFHVyWYw==", + "dev": true, + "requires": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.0.0", + "core-js": "^3.0.1", + "npmlog": "^4.1.2", + "pretty-hrtime": "^1.0.3" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", diff --git a/package.json b/package.json index 59d69f754..a01a0110f 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", + "@storybook/addon-controls": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", From 61c039d3516997b4e1a93c4caa283a2f54372e02 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Tue, 8 Sep 2020 11:13:32 +0700 Subject: [PATCH 078/740] add storybook/addon-knobs --- .storybook/main.js | 2 +- package-lock.json | 226 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 228 insertions(+), 1 deletion(-) diff --git a/.storybook/main.js b/.storybook/main.js index 703c3addd..18b09fad2 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,7 +4,7 @@ const mainWebpack = require('../webpack.config.js'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: ['@storybook/addon-storysource', '@storybook/addon-controls'], + addons: ['@storybook/addon-storysource', '@storybook/addon-controls', '@storybook/addon-knobs'], webpackFinal: async config => { config.plugins.push( // fix static storybook styling diff --git a/package-lock.json b/package-lock.json index 295a7278a..4c40d2c6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2992,6 +2992,177 @@ } } }, + "@storybook/addon-knobs": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.0.21.tgz", + "integrity": "sha512-QHcdL08wGzw67Igpow3wCHWq0WfG5E/q7EFwOwTvr4X3s8VBjuauVdWolcX1/N+z2U7m31rcD6tcMBMPjUibmw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "copy-to-clipboard": "^3.0.8", + "core-js": "^3.0.1", + "escape-html": "^1.0.3", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "prop-types": "^15.7.2", + "qs": "^6.6.0", + "react-color": "^2.17.0", + "react-lifecycles-compat": "^3.0.4", + "react-select": "^3.0.8", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", @@ -8078,6 +8249,24 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", + "dev": true + } + } + }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -15382,6 +15571,15 @@ "prop-types": "^15.5.8" } }, + "react-input-autosize": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", + "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", + "dev": true, + "requires": { + "prop-types": "^15.5.8" + } + }, "react-intl": { "version": "4.7.6", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-4.7.6.tgz", @@ -15499,6 +15697,22 @@ "tiny-warning": "^1.0.0" } }, + "react-select": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.1.0.tgz", + "integrity": "sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==", + "dev": true, + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/cache": "^10.0.9", + "@emotion/core": "^10.0.9", + "@emotion/css": "^10.0.9", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "react-input-autosize": "^2.2.2", + "react-transition-group": "^4.3.0" + } + }, "react-sizeme": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", @@ -15557,6 +15771,18 @@ "classnames": "^2.2.5" } }, + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "react-truncate-markup": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", diff --git a/package.json b/package.json index a01a0110f..e72686da5 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", "@storybook/addon-controls": "^6.0.21", + "@storybook/addon-knobs": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", From fa70f98b9c629f0cef8d2b32f50660d636d7a90d Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Tue, 8 Sep 2020 11:14:52 +0700 Subject: [PATCH 079/740] add storybook/addon-actions --- .storybook/main.js | 7 +- package-lock.json | 209 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 216 insertions(+), 1 deletion(-) diff --git a/.storybook/main.js b/.storybook/main.js index 18b09fad2..a0e1a880b 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -4,7 +4,12 @@ const mainWebpack = require('../webpack.config.js'); module.exports = { stories: ['../src/**/*.stories.js'], // Add any Storybook addons you want here: https://storybook.js.org/addons/ - addons: ['@storybook/addon-storysource', '@storybook/addon-controls', '@storybook/addon-knobs'], + addons: [ + '@storybook/addon-storysource', + '@storybook/addon-controls', + '@storybook/addon-knobs', + '@storybook/addon-actions', + ], webpackFinal: async config => { config.plugins.push( // fix static storybook styling diff --git a/package-lock.json b/package-lock.json index 4c40d2c6c..d82924aeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,6 +2769,182 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-actions": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", + "integrity": "sha512-9y3ve+3GK1TsxQ5pxDjhB7E/XJXY+WqcSNlOX8Mb+XbS6AAgpFbkZCw1q8CGzyEUclHsQ6UK2+lo+IRGs4TLpA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "polished": "^3.4.4", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-inspector": "^5.0.1", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2", + "uuid": "^8.0.0" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + } + } + }, "@storybook/addon-controls": { "version": "6.0.21", "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", @@ -11580,6 +11756,16 @@ "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true }, + "is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", + "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "dev": true, + "requires": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -11660,6 +11846,12 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -11737,6 +11929,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -15580,6 +15778,17 @@ "prop-types": "^15.5.8" } }, + "react-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", + "integrity": "sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "is-dom": "^1.1.0", + "prop-types": "^15.6.1" + } + }, "react-intl": { "version": "4.7.6", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-4.7.6.tgz", diff --git a/package.json b/package.json index e72686da5..6c4009a38 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", + "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", "@storybook/addon-knobs": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", From c722fc8f890287398246e2cad2303578490e5355 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Tue, 8 Sep 2020 11:16:39 +0700 Subject: [PATCH 080/740] add storybook/addon-viewport --- .storybook/main.js | 1 + package-lock.json | 123 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 125 insertions(+) diff --git a/.storybook/main.js b/.storybook/main.js index a0e1a880b..5038b854f 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -9,6 +9,7 @@ module.exports = { '@storybook/addon-controls', '@storybook/addon-knobs', '@storybook/addon-actions', + '@storybook/addon-viewport', ], webpackFinal: async config => { config.plugins.push( diff --git a/package-lock.json b/package-lock.json index d82924aeb..d4da42b3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3601,6 +3601,129 @@ } } }, + "@storybook/addon-viewport": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.0.21.tgz", + "integrity": "sha512-FFUkhpZy7npRTaqX9SwMz5Yzo0/ivuApwr47xqblDEEyq7edWqo7YKsPnpAGeM9MlRpQNf6aU9huwDqKeRfKuQ==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "prop-types": "^15.7.2", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, "@storybook/addons": { "version": "6.0.21", "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.21.tgz", diff --git a/package.json b/package.json index 6c4009a38..544228287 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@storybook/addon-controls": "^6.0.21", "@storybook/addon-knobs": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", + "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", "@storybook/react": "^6.0.16", "@storybook/theming": "^6.0.21", From d5d74cdf48453921afec77280481674505305cec Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Tue, 8 Sep 2020 11:17:50 +0700 Subject: [PATCH 081/740] add storybook/addon-a11y --- .storybook/main.js | 1 + package-lock.json | 174 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 176 insertions(+) diff --git a/.storybook/main.js b/.storybook/main.js index 5038b854f..8b464c15d 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -10,6 +10,7 @@ module.exports = { '@storybook/addon-knobs', '@storybook/addon-actions', '@storybook/addon-viewport', + '@storybook/addon-a11y', ], webpackFinal: async config => { config.plugins.push( diff --git a/package-lock.json b/package-lock.json index d4da42b3b..d9e478877 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2769,6 +2769,174 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-a11y": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.0.21.tgz", + "integrity": "sha512-jB6cOx8UwRjd2h04p6TBBwrZInaeE7w4NnmxWRW6Ifo3GLFiZFuI2oSWOe4LEKWWG1eTrk+285fd11zn0ihsTw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "axe-core": "^3.5.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "react-sizeme": "^2.5.2", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, "@storybook/addon-actions": { "version": "6.0.21", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", @@ -6064,6 +6232,12 @@ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, + "axe-core": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", + "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", + "dev": true + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", diff --git a/package.json b/package.json index 544228287..e35f589f0 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", + "@storybook/addon-a11y": "^6.0.21", "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", "@storybook/addon-knobs": "^6.0.21", From 21cb633acdd4f05b4c286d92b98e7bf87f953adb Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Wed, 9 Sep 2020 09:38:05 +0700 Subject: [PATCH 082/740] remove knobs addon from dev dependencies --- .storybook/main.js | 1 - package-lock.json | 226 --------------------------------------------- package.json | 1 - 3 files changed, 228 deletions(-) diff --git a/.storybook/main.js b/.storybook/main.js index 8b464c15d..015346dee 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -7,7 +7,6 @@ module.exports = { addons: [ '@storybook/addon-storysource', '@storybook/addon-controls', - '@storybook/addon-knobs', '@storybook/addon-actions', '@storybook/addon-viewport', '@storybook/addon-a11y', diff --git a/package-lock.json b/package-lock.json index d9e478877..2930a266e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3336,177 +3336,6 @@ } } }, - "@storybook/addon-knobs": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.0.21.tgz", - "integrity": "sha512-QHcdL08wGzw67Igpow3wCHWq0WfG5E/q7EFwOwTvr4X3s8VBjuauVdWolcX1/N+z2U7m31rcD6tcMBMPjUibmw==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", - "copy-to-clipboard": "^3.0.8", - "core-js": "^3.0.1", - "escape-html": "^1.0.3", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "prop-types": "^15.7.2", - "qs": "^6.6.0", - "react-color": "^2.17.0", - "react-lifecycles-compat": "^3.0.4", - "react-select": "^3.0.8", - "regenerator-runtime": "^0.13.3" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - } - } - }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", @@ -8722,24 +8551,6 @@ "utila": "~0.4" } }, - "dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", - "dev": true - } - } - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -16066,15 +15877,6 @@ "prop-types": "^15.5.8" } }, - "react-input-autosize": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", - "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", - "dev": true, - "requires": { - "prop-types": "^15.5.8" - } - }, "react-inspector": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", @@ -16203,22 +16005,6 @@ "tiny-warning": "^1.0.0" } }, - "react-select": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.1.0.tgz", - "integrity": "sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@emotion/cache": "^10.0.9", - "@emotion/core": "^10.0.9", - "@emotion/css": "^10.0.9", - "memoize-one": "^5.0.0", - "prop-types": "^15.6.0", - "react-input-autosize": "^2.2.2", - "react-transition-group": "^4.3.0" - } - }, "react-sizeme": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz", @@ -16277,18 +16063,6 @@ "classnames": "^2.2.5" } }, - "react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, "react-truncate-markup": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", diff --git a/package.json b/package.json index e35f589f0..c66f6677b 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "@storybook/addon-a11y": "^6.0.21", "@storybook/addon-actions": "^6.0.21", "@storybook/addon-controls": "^6.0.21", - "@storybook/addon-knobs": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", From 2c23c87b164df56cd43462d1cf3733c2f3d1cf60 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Tue, 8 Sep 2020 11:37:46 +0700 Subject: [PATCH 083/740] Change webpack externals to not include certain packages that should be bundled --- webpack.config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webpack.config.js b/webpack.config.js index f3f0023d0..e6daadf8a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,7 +4,9 @@ const nodeExternals = require('webpack-node-externals'); module.exports = { entry: './src/index.js', - externals: [nodeExternals()], + externals: [nodeExternals({ + allowlist: ['eko-sdk', /@fortawesome\/pro/] + })], output: { filename: 'index.js', path: path.resolve(__dirname, 'build'), From 2231fb0d387f4b2005f7e5d79d3e23923a5935f6 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 10:34:52 +0700 Subject: [PATCH 084/740] Add libraryName and change libraryTarget to umd --- webpack.config.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index e6daadf8a..22694bd3f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,7 @@ const path = require('path'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const nodeExternals = require('webpack-node-externals'); +const pkg = require('./package.json'); module.exports = { entry: './src/index.js', @@ -10,8 +11,8 @@ module.exports = { output: { filename: 'index.js', path: path.resolve(__dirname, 'build'), - library: '', - libraryTarget: 'commonjs', + library: pkg.name, + libraryTarget: 'umd', }, plugins: [new CleanWebpackPlugin()], resolve: { From ee8b9cfddd19cb2a3393b4be46411b50680e44a1 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 12:01:36 +0700 Subject: [PATCH 085/740] Move external modules to dev dependencies so that they are not installed --- package-lock.json | 195 +++++++++++++++++++++++++++++++++------------- package.json | 14 ++-- 2 files changed, 147 insertions(+), 62 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9e478877..ec99b9273 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2383,6 +2383,7 @@ "version": "5.13.1", "resolved": "https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/5.13.1/pro-light-svg-icons-5.13.1.tgz", "integrity": "sha512-OV5Cxan/vIZFyPofJ3RQBfSQXf7hnbE97HXAqLWhkmwm990GJBfEjsan4XwS/206T+ZKlY/MiXPiHtBPoQL87g==", + "dev": true, "requires": { "@fortawesome/fontawesome-common-types": "^0.2.29" } @@ -2391,6 +2392,7 @@ "version": "5.13.1", "resolved": "https://npm.fontawesome.com/@fortawesome/pro-regular-svg-icons/-/5.13.1/pro-regular-svg-icons-5.13.1.tgz", "integrity": "sha512-qQszWqNQCaQC1j787Q/Wz1xpm6ENz9N3G7dSKdIy2rFx14iYt+sQ8F+6zXslShtS2N5JpKpHIMCjWn2sGtE/Ow==", + "dev": true, "requires": { "@fortawesome/fontawesome-common-types": "^0.2.29" } @@ -2399,6 +2401,7 @@ "version": "5.13.1", "resolved": "https://npm.fontawesome.com/@fortawesome/pro-solid-svg-icons/-/5.13.1/pro-solid-svg-icons-5.13.1.tgz", "integrity": "sha512-h3ePsrYGbOvfhbZ44zBIutYzBKV9Fsy5r01xjU4znOAhIh1QTxJbGUjgF1PpI1ALVrrUJKfxMrnHNdfjXqRe6w==", + "dev": true, "requires": { "@fortawesome/fontawesome-common-types": "^0.2.29" } @@ -5724,7 +5727,8 @@ "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true }, "aggregate-error": { "version": "3.1.0", @@ -6052,7 +6056,8 @@ "arraybuffer.slice": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true }, "arrify": { "version": "1.0.1", @@ -6063,7 +6068,8 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true }, "asn1": { "version": "0.2.4", @@ -6167,12 +6173,14 @@ "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "at-least-node": { "version": "1.0.0", @@ -6725,7 +6733,8 @@ "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true }, "balanced-match": { "version": "1.0.0", @@ -6797,7 +6806,8 @@ "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true }, "base64-js": { "version": "1.3.1", @@ -6824,6 +6834,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, "requires": { "callsite": "1.0.0" } @@ -6862,7 +6873,8 @@ "blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true }, "bluebird": { "version": "3.7.2", @@ -7342,7 +7354,8 @@ "callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true }, "callsites": { "version": "3.1.0", @@ -7907,6 +7920,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -7938,17 +7952,20 @@ "component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "component-inherit": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true }, "computed-style": { "version": "0.1.4", @@ -8042,7 +8059,8 @@ "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", + "dev": true }, "copy-concurrently": { "version": "1.0.5", @@ -8106,7 +8124,8 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cosmiconfig": { "version": "6.0.0", @@ -8425,6 +8444,7 @@ "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" } @@ -8576,7 +8596,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegate": { "version": "3.2.0", @@ -8897,6 +8918,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eko-flobx/-/eko-flobx-0.2.0.tgz", "integrity": "sha512-S2hYxq/d59yfPc0PWG/gAMvzD5wsfC1izYwhiBf5LoEdrXROaB3EpCXevO5t8QdoBG77UqmzMPKBKmqrZ1zBfA==", + "dev": true, "requires": { "flux": "^3.1.3", "lodash.isplainobject": "^4.0.6", @@ -8907,6 +8929,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eko-sdk/-/eko-sdk-1.3.0.tgz", "integrity": "sha512-eNvxD8FLWUpbTQIZO3PnmCoW7o7Q4DxmS8dG96awxJk2WnH/0QwMGvzdC6X2Axc3cOT1SMla2t8R53KVVNcpQQ==", + "dev": true, "requires": { "debug": "^3.1.0", "eko-flobx": "^0.2.0", @@ -8925,6 +8948,7 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -9001,6 +9025,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, "requires": { "iconv-lite": "^0.6.2" }, @@ -9009,6 +9034,7 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -9039,6 +9065,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", + "dev": true, "requires": { "component-emitter": "~1.3.0", "component-inherit": "0.0.3", @@ -9057,6 +9084,7 @@ "version": "6.1.4", "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, "requires": { "async-limiter": "~1.0.0" } @@ -9067,6 +9095,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "dev": true, "requires": { "after": "0.8.2", "arraybuffer.slice": "~0.0.7", @@ -9893,7 +9922,8 @@ "eventemitter2": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=", + "dev": true }, "events": { "version": "3.2.0", @@ -10118,7 +10148,8 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "extend-shallow": { "version": "3.0.2", @@ -10348,6 +10379,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "dev": true, "requires": { "fbjs": "^0.8.4" } @@ -10356,6 +10388,7 @@ "version": "0.8.17", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "dev": true, "requires": { "core-js": "^1.0.0", "isomorphic-fetch": "^2.1.1", @@ -10369,7 +10402,8 @@ "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true } } }, @@ -10704,6 +10738,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "dev": true, "requires": { "fbemitter": "^2.0.0", "fbjs": "^0.8.0" @@ -10772,6 +10807,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -10787,7 +10823,8 @@ "formidable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", + "dev": true }, "forwarded": { "version": "0.1.2", @@ -11171,6 +11208,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, "requires": { "isarray": "2.0.1" }, @@ -11178,14 +11216,16 @@ "isarray": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true } } }, "has-cors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true }, "has-flag": { "version": "3.0.0", @@ -11343,7 +11383,8 @@ "hoek": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true }, "hoist-non-react-statics": { "version": "3.3.2", @@ -11629,7 +11670,8 @@ "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true }, "immer": { "version": "1.10.0", @@ -11712,7 +11754,8 @@ "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true }, "infer-owner": { "version": "1.0.4", @@ -11733,7 +11776,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "ini": { "version": "1.3.5", @@ -12203,7 +12247,8 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "is-string": { "version": "1.0.5", @@ -12247,12 +12292,14 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isemail": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", - "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=", + "dev": true }, "isexe": { "version": "2.0.0", @@ -12270,6 +12317,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, "requires": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" @@ -12279,6 +12327,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, "requires": { "encoding": "^0.1.11", "is-stream": "^1.0.1" @@ -12376,7 +12425,8 @@ "items": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/items/-/items-2.1.2.tgz", - "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==" + "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==", + "dev": true }, "iterate-iterator": { "version": "1.0.1", @@ -13052,6 +13102,7 @@ "version": "10.6.0", "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", + "dev": true, "requires": { "hoek": "4.x.x", "isemail": "2.x.x", @@ -13062,7 +13113,8 @@ "joi-objectid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/joi-objectid/-/joi-objectid-2.0.0.tgz", - "integrity": "sha1-VlSVc6Zrp5Xc9rniJt5fOy027Do=" + "integrity": "sha1-VlSVc6Zrp5Xc9rniJt5fOy027Do=", + "dev": true }, "js-tokens": { "version": "4.0.0", @@ -13286,6 +13338,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dev": true, "requires": { "immediate": "~3.0.5" } @@ -13627,6 +13680,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz", "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==", + "dev": true, "requires": { "lie": "3.1.1" } @@ -13649,7 +13703,8 @@ "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true }, "lodash.sortby": { "version": "4.7.0", @@ -13963,7 +14018,8 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, "microevent.ts": { "version": "0.1.1", @@ -14037,17 +14093,20 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, "requires": { "mime-db": "1.44.0" } @@ -14256,7 +14315,8 @@ "mobx": { "version": "4.15.6", "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.6.tgz", - "integrity": "sha512-eZVEHZLi/Fe+V4qurBBQoFHCqaGrfMuYK1Vy4t5MHYfy90f52ptAKsemHsJcYl+R5/sA3oeT3rMLiVsbB7bllA==" + "integrity": "sha512-eZVEHZLi/Fe+V4qurBBQoFHCqaGrfMuYK1Vy4t5MHYfy90f52ptAKsemHsJcYl+R5/sA3oeT3rMLiVsbB7bllA==", + "dev": true }, "move-concurrently": { "version": "1.0.1", @@ -14275,7 +14335,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "mute-stream": { "version": "0.0.8", @@ -14520,7 +14581,8 @@ "object-component": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true }, "object-copy": { "version": "0.1.0", @@ -14903,6 +14965,7 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, "requires": { "better-assert": "~1.0.0" } @@ -14911,6 +14974,7 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, "requires": { "better-assert": "~1.0.0" } @@ -15369,7 +15433,8 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "progress": { "version": "2.0.3", @@ -15381,6 +15446,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, "requires": { "asap": "~2.0.3" } @@ -15536,7 +15602,8 @@ "qs": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true }, "querystring": { "version": "0.2.0", @@ -16369,6 +16436,7 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16820,7 +16888,8 @@ "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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "safe-regex": { "version": "1.1.0", @@ -16834,7 +16903,8 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sane": { "version": "4.1.0", @@ -17088,7 +17158,8 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "setprototypeof": { "version": "1.1.1", @@ -17371,6 +17442,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, "requires": { "backo2": "1.0.2", "base64-arraybuffer": "0.1.5", @@ -17391,7 +17463,8 @@ "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true } } }, @@ -17399,6 +17472,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "dev": true, "requires": { "component-emitter": "1.2.1", "debug": "~3.1.0", @@ -17408,12 +17482,14 @@ "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -17421,12 +17497,14 @@ "isarray": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -17750,6 +17828,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -17863,6 +17942,7 @@ "version": "3.8.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "dev": true, "requires": { "component-emitter": "^1.2.0", "cookiejar": "^2.1.0", @@ -17880,6 +17960,7 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -18354,7 +18435,8 @@ "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true }, "to-arraybuffer": { "version": "1.0.1", @@ -18426,6 +18508,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "dev": true, "requires": { "hoek": "4.x.x" } @@ -18540,7 +18623,8 @@ "ua-parser-js": { "version": "0.7.21", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true }, "uc.micro": { "version": "1.0.6", @@ -18800,7 +18884,8 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "util.promisify": { "version": "1.0.0", @@ -18827,7 +18912,8 @@ "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-compile-cache": { "version": "2.1.1", @@ -19292,7 +19378,8 @@ "whatwg-fetch": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz", - "integrity": "sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ==" + "integrity": "sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ==", + "dev": true }, "whatwg-mimetype": { "version": "2.3.0", @@ -19503,7 +19590,8 @@ "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true }, "xtend": { "version": "4.0.2", @@ -19603,7 +19691,8 @@ "yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true } } } diff --git a/package.json b/package.json index e35f589f0..30b6068f5 100644 --- a/package.json +++ b/package.json @@ -26,10 +26,9 @@ "@babel/core": "^7.10.3", "@babel/preset-env": "^7.11.0", "@babel/preset-react": "^7.10.4", - "@storybook/addon-a11y": "^6.0.21", - "@storybook/addon-actions": "^6.0.21", - "@storybook/addon-controls": "^6.0.21", - "@storybook/addon-knobs": "^6.0.21", + "@fortawesome/pro-light-svg-icons": "^5.13.1", + "@fortawesome/pro-regular-svg-icons": "^5.13.1", + "@fortawesome/pro-solid-svg-icons": "^5.13.1", "@storybook/addon-storysource": "^6.0.16", "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", @@ -38,6 +37,7 @@ "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", + "eko-sdk": "^1.3.0", "eslint": "~6.8.0", "eslint-config-airbnb": "~18.0.1", "eslint-config-airbnb-base": "~14.0.0", @@ -65,12 +65,8 @@ "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.29", "@fortawesome/free-solid-svg-icons": "^5.13.1", - "@fortawesome/pro-light-svg-icons": "^5.13.1", - "@fortawesome/pro-regular-svg-icons": "^5.13.1", - "@fortawesome/pro-solid-svg-icons": "^5.13.1", "@fortawesome/react-fontawesome": "^0.1.11", "@hookform/error-message": "0.0.4", - "eko-sdk": "^1.3.0", "filesize": "^6.1.0", "human-readable-numbers": "^0.9.5", "javascript-time-ago": "^2.0.13", @@ -101,4 +97,4 @@ "git add --force" ] } -} +} \ No newline at end of file From fe3fca9435f51687ded4795ff8144917a16f1fff Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 14:58:06 +0700 Subject: [PATCH 086/740] Turn off eslint rule to allow importing devDependencies --- .eslintrc | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.eslintrc b/.eslintrc index c6050353d..6dcd13e67 100644 --- a/.eslintrc +++ b/.eslintrc @@ -11,12 +11,7 @@ "rules": { // Allow <> instead of "react/jsx-fragments": "off", - // Allow dependencies used in some files to remain as devDependencies. - "import/no-extraneous-dependencies": [ - "error", - { - "devDependencies": ["**/*.stories.*", "webpack.config.js"] - } - ] + // Mainly to allow dependencies used in some files to remain as devDependencies. + "import/no-extraneous-dependencies": "off" } } From 3f6f941ba0f8c7ca90ff6b1d870ff9fb22ca2126 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 15:18:16 +0700 Subject: [PATCH 087/740] Bump version to 0.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 30b6068f5..184596ebc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "upstra-uikit", - "version": "0.0.2", + "version": "0.0.3", "main": "build/index.js", "files": [ "build" From 3b61836a4bab63309378f39056a22109ff64b605 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 14:57:03 +0700 Subject: [PATCH 088/740] Fix importing of external CSS --- package-lock.json | 851 +------------------- package.json | 3 +- src/components/UiKitProvider/GlobalStyle.js | 8 - src/components/UiKitProvider/index.js | 35 +- 4 files changed, 39 insertions(+), 858 deletions(-) delete mode 100644 src/components/UiKitProvider/GlobalStyle.js diff --git a/package-lock.json b/package-lock.json index ec99b9273..4596b32f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "upstra-uikit", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2772,744 +2772,6 @@ "react-lifecycles-compat": "^3.0.4" } }, - "@storybook/addon-a11y": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.0.21.tgz", - "integrity": "sha512-jB6cOx8UwRjd2h04p6TBBwrZInaeE7w4NnmxWRW6Ifo3GLFiZFuI2oSWOe4LEKWWG1eTrk+285fd11zn0ihsTw==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", - "axe-core": "^3.5.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "react-sizeme": "^2.5.2", - "regenerator-runtime": "^0.13.3", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - } - } - }, - "@storybook/addon-actions": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", - "integrity": "sha512-9y3ve+3GK1TsxQ5pxDjhB7E/XJXY+WqcSNlOX8Mb+XbS6AAgpFbkZCw1q8CGzyEUclHsQ6UK2+lo+IRGs4TLpA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "polished": "^3.4.4", - "prop-types": "^15.7.2", - "react": "^16.8.3", - "react-inspector": "^5.0.1", - "regenerator-runtime": "^0.13.3", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2", - "uuid": "^8.0.0" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - }, - "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", - "dev": true - } - } - }, - "@storybook/addon-controls": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", - "integrity": "sha512-ksL+BqzWVTezY3u0AeSuQBZdiDzTImfLx1xjmLkPTeFgfVBzHRKN4sqIWHzy1zVCCVL0fAzZ8g3Sgk5iVNs3uw==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/node-logger": "6.0.21", - "@storybook/theming": "6.0.21", - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/node-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.21.tgz", - "integrity": "sha512-KRBf+Fz7fgtwHdnYt70JTZbcYMZ1pQPtDyqbrFYCjwkbx5GPX5vMOozlxCIj9elseqPIsF8CKgHOW7cFHVyWYw==", - "dev": true, - "requires": { - "@types/npmlog": "^4.1.2", - "chalk": "^4.0.0", - "core-js": "^3.0.1", - "npmlog": "^4.1.2", - "pretty-hrtime": "^1.0.3" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/addon-knobs": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.0.21.tgz", - "integrity": "sha512-QHcdL08wGzw67Igpow3wCHWq0WfG5E/q7EFwOwTvr4X3s8VBjuauVdWolcX1/N+z2U7m31rcD6tcMBMPjUibmw==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", - "copy-to-clipboard": "^3.0.8", - "core-js": "^3.0.1", - "escape-html": "^1.0.3", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "prop-types": "^15.7.2", - "qs": "^6.6.0", - "react-color": "^2.17.0", - "react-lifecycles-compat": "^3.0.4", - "react-select": "^3.0.8", - "regenerator-runtime": "^0.13.3" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - } - } - }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", @@ -6240,12 +5502,6 @@ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, - "axe-core": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", - "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", - "dev": true - }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -8743,24 +7999,6 @@ "utila": "~0.4" } }, - "dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", - "dev": true - } - } - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -12097,16 +11335,6 @@ "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true }, - "is-dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", - "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", - "dev": true, - "requires": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -12187,12 +11415,6 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -12271,12 +11493,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-window": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", - "dev": true - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -16095,8 +15311,18 @@ "react-fast-compare": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", - "dev": true + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } }, "react-helmet-async": { "version": "1.0.6", @@ -16133,26 +15359,6 @@ "prop-types": "^15.5.8" } }, - "react-input-autosize": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", - "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", - "dev": true, - "requires": { - "prop-types": "^15.5.8" - } - }, - "react-inspector": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", - "integrity": "sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.7", - "is-dom": "^1.1.0", - "prop-types": "^15.6.1" - } - }, "react-intl": { "version": "4.7.6", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-4.7.6.tgz", @@ -16270,21 +15476,10 @@ "tiny-warning": "^1.0.0" } }, - "react-select": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.1.0.tgz", - "integrity": "sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@emotion/cache": "^10.0.9", - "@emotion/core": "^10.0.9", - "@emotion/css": "^10.0.9", - "memoize-one": "^5.0.0", - "prop-types": "^15.6.0", - "react-input-autosize": "^2.2.2", - "react-transition-group": "^4.3.0" - } + "react-side-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", + "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" }, "react-sizeme": { "version": "2.6.12", @@ -16344,18 +15539,6 @@ "classnames": "^2.2.5" } }, - "react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, "react-truncate-markup": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", diff --git a/package.json b/package.json index 184596ebc..245918d4c 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "javascript-time-ago": "^2.0.13", "lodash": "^4.17.19", "react-autosize-textarea": "^7.1.0", + "react-helmet": "^6.1.0", "react-hook-form": "^6.6.0", "react-infinite-scroller": "^1.2.4", "react-intl": "^4.7.6", @@ -97,4 +98,4 @@ "git add --force" ] } -} \ No newline at end of file +} diff --git a/src/components/UiKitProvider/GlobalStyle.js b/src/components/UiKitProvider/GlobalStyle.js deleted file mode 100644 index b14decde7..000000000 --- a/src/components/UiKitProvider/GlobalStyle.js +++ /dev/null @@ -1,8 +0,0 @@ -import { createGlobalStyle } from 'styled-components'; -import 'react-toggle/style.css'; - -const GlobalStyle = createGlobalStyle` -@import url("https://rsms.me/inter/inter.css"); -`; - -export default GlobalStyle; diff --git a/src/components/UiKitProvider/index.js b/src/components/UiKitProvider/index.js index 14217d4a3..af52704d3 100644 --- a/src/components/UiKitProvider/index.js +++ b/src/components/UiKitProvider/index.js @@ -1,5 +1,7 @@ +import 'react-toggle/style.css'; import React, { useMemo } from 'react'; import merge from 'lodash/merge'; +import { Helmet } from 'react-helmet'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; @@ -9,7 +11,6 @@ import MockData from 'mock'; import { ConfirmContainer } from 'components/Confirm'; import { NotificationsContainer } from 'components/Notification'; import Localization from './Localisation'; -import GlobalStyle from './GlobalStyle'; import { UIStyles } from './styles'; import GlobalTheme from './GlobalTheme'; @@ -44,20 +45,24 @@ const UiKitProvider = ({ }, [clientOptions]); return ( - - - - - - - {children} - - - - - - - + <> + + + + + + + + + {children} + + + + + + + + ); }; From b07b1b738f7572323ccd98ec84beda2b5ff586d7 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 17:44:10 +0700 Subject: [PATCH 089/740] Fix switch value --- src/components/CommunityForm/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/CommunityForm/index.js b/src/components/CommunityForm/index.js index 379d17dcc..f9ce3c653 100644 --- a/src/components/CommunityForm/index.js +++ b/src/components/CommunityForm/index.js @@ -154,7 +154,7 @@ const CommunityForm = ({
} + render={({ value, onChange }) => onChange(!value)} />} control={control} /> From 75ac59691962a869b129a2e57c25e4a4e7169769 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Wed, 9 Sep 2020 18:59:46 +0700 Subject: [PATCH 090/740] fixing back storybook plugins --- .storybook/main.js | 1 - package-lock.json | 606 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 + 3 files changed, 609 insertions(+), 1 deletion(-) diff --git a/.storybook/main.js b/.storybook/main.js index 8b464c15d..015346dee 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -7,7 +7,6 @@ module.exports = { addons: [ '@storybook/addon-storysource', '@storybook/addon-controls', - '@storybook/addon-knobs', '@storybook/addon-actions', '@storybook/addon-viewport', '@storybook/addon-a11y', diff --git a/package-lock.json b/package-lock.json index 4596b32f3..1d553bd86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2772,6 +2772,573 @@ "react-lifecycles-compat": "^3.0.4" } }, + "@storybook/addon-a11y": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.0.21.tgz", + "integrity": "sha512-jB6cOx8UwRjd2h04p6TBBwrZInaeE7w4NnmxWRW6Ifo3GLFiZFuI2oSWOe4LEKWWG1eTrk+285fd11zn0ihsTw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "axe-core": "^3.5.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "react-sizeme": "^2.5.2", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + } + } + }, + "@storybook/addon-actions": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", + "integrity": "sha512-9y3ve+3GK1TsxQ5pxDjhB7E/XJXY+WqcSNlOX8Mb+XbS6AAgpFbkZCw1q8CGzyEUclHsQ6UK2+lo+IRGs4TLpA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "polished": "^3.4.4", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-inspector": "^5.0.1", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2", + "uuid": "^8.0.0" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + } + } + }, + "@storybook/addon-controls": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", + "integrity": "sha512-ksL+BqzWVTezY3u0AeSuQBZdiDzTImfLx1xjmLkPTeFgfVBzHRKN4sqIWHzy1zVCCVL0fAzZ8g3Sgk5iVNs3uw==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/api": "6.0.21", + "@storybook/client-api": "6.0.21", + "@storybook/components": "6.0.21", + "@storybook/node-logger": "6.0.21", + "@storybook/theming": "6.0.21", + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1" + }, + "dependencies": { + "@storybook/api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", + "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.0.21", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.0.21", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + "dev": true, + "requires": { + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", + "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.0.21", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.0.21", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "popper.js": "^1.14.7", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^2.11.0", + "react-syntax-highlighter": "^12.2.1", + "react-textarea-autosize": "^8.1.1", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" + } + }, + "@storybook/node-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.21.tgz", + "integrity": "sha512-KRBf+Fz7fgtwHdnYt70JTZbcYMZ1pQPtDyqbrFYCjwkbx5GPX5vMOozlxCIj9elseqPIsF8CKgHOW7cFHVyWYw==", + "dev": true, + "requires": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.0.0", + "core-js": "^3.0.1", + "npmlog": "^4.1.2", + "pretty-hrtime": "^1.0.3" + } + }, + "@storybook/router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", + "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@storybook/addon-storysource": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", @@ -5502,6 +6069,12 @@ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, + "axe-core": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", + "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", + "dev": true + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -11335,6 +11908,16 @@ "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true }, + "is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", + "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "dev": true, + "requires": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -11415,6 +11998,12 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -11493,6 +12082,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -15359,6 +15954,17 @@ "prop-types": "^15.5.8" } }, + "react-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", + "integrity": "sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "is-dom": "^1.1.0", + "prop-types": "^15.6.1" + } + }, "react-intl": { "version": "4.7.6", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-4.7.6.tgz", diff --git a/package.json b/package.json index 245918d4c..7a838c191 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,9 @@ "@fortawesome/pro-light-svg-icons": "^5.13.1", "@fortawesome/pro-regular-svg-icons": "^5.13.1", "@fortawesome/pro-solid-svg-icons": "^5.13.1", + "@storybook/addon-a11y": "^6.0.21", + "@storybook/addon-actions": "^6.0.21", + "@storybook/addon-controls": "^6.0.21", "@storybook/addon-storysource": "^6.0.16", "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", From 62a3afadeca9396a811e2d06c5a6720beb26810b Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 16:15:00 +0700 Subject: [PATCH 091/740] Add webpack globalObject for server-side rendering (Next.js) --- webpack.config.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index 22694bd3f..47a79f645 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -5,14 +5,17 @@ const pkg = require('./package.json'); module.exports = { entry: './src/index.js', - externals: [nodeExternals({ - allowlist: ['eko-sdk', /@fortawesome\/pro/] - })], + externals: [ + nodeExternals({ + allowlist: ['eko-sdk', /@fortawesome\/pro/], + }), + ], output: { filename: 'index.js', path: path.resolve(__dirname, 'build'), library: pkg.name, libraryTarget: 'umd', + globalObject: "typeof self !== 'undefined' ? self : this", }, plugins: [new CleanWebpackPlugin()], resolve: { From 140194ace6c1162bca7387fd10c65a65792cd378 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 18:18:16 +0700 Subject: [PATCH 092/740] Create custom switch component --- src/components/Switch/index.js | 11 ++++++++ src/components/Switch/styles.js | 50 +++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 src/components/Switch/index.js create mode 100644 src/components/Switch/styles.js diff --git a/src/components/Switch/index.js b/src/components/Switch/index.js new file mode 100644 index 000000000..98475d0ec --- /dev/null +++ b/src/components/Switch/index.js @@ -0,0 +1,11 @@ +import React from 'react'; +import { SwitchLabel, SwitchInput, SwitchSlider } from './styles'; + +const Switch = ({ value, onChange }) => ( + + + + +); + +export default Switch; diff --git a/src/components/Switch/styles.js b/src/components/Switch/styles.js new file mode 100644 index 000000000..fb40c5f10 --- /dev/null +++ b/src/components/Switch/styles.js @@ -0,0 +1,50 @@ +import styled from 'styled-components'; + +const TRANSITION_TIME = '0.3s'; + +export const SwitchLabel = styled.label` + position: relative; + width: 40px; + height: 20px; + float: right; +`; + +export const SwitchInput = styled.input` + display: none; +`; + +export const SwitchSlider = styled.span` + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: ${({ theme }) => theme.color.base3}; + -webkit-transition: ${TRANSITION_TIME}; + transition: ${TRANSITION_TIME}; + border-radius: 20px; + + &:before { + position: absolute; + content: ''; + height: 16px; + width: 16px; + left: 2px; + bottom: 2px; + background-color: #fff; + -webkit-transition: ${TRANSITION_TIME}; + transition: ${TRANSITION_TIME}; + border-radius: 50%; + } + + ${SwitchInput}:checked + & { + background-color: ${({ theme }) => theme.color.primary}; + } + + ${SwitchInput}:checked + &:before { + -webkit-transform: translateX(20px); + -ms-transform: translateX(20px); + transform: translateX(20px); + } +`; From 42e201571412fc7c840283880dfc72250ea89f24 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Wed, 9 Sep 2020 18:29:01 +0700 Subject: [PATCH 093/740] Replace react-toggle with custom Switch component --- package-lock.json | 11 ++--------- package.json | 1 - src/components/CommunityForm/index.js | 6 ++++-- src/components/CommunityForm/styles.js | 27 +------------------------- src/components/UiKitProvider/index.js | 1 - 5 files changed, 7 insertions(+), 39 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d553bd86..a24192404 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7390,7 +7390,8 @@ "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true }, "cldr-core": { "version": "36.0.0", @@ -16137,14 +16138,6 @@ "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-5.1.0.tgz", "integrity": "sha512-VjBp6Q1f4cJ2xiuyU1rhFnrs+fdnWCYFSrKRN4DTGD2ovchOAGR1jbJ9vgV34TtvMPON+SqBBZFnahVsAGmrUQ==" }, - "react-toggle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", - "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==", - "requires": { - "classnames": "^2.2.5" - } - }, "react-truncate-markup": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-truncate-markup/-/react-truncate-markup-5.0.0.tgz", diff --git a/package.json b/package.json index 7a838c191..22474044b 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,6 @@ "react-linkify": "^1.0.0-alpha", "react-time-ago": "^6.0.1", "react-tiny-popover": "^5.1.0", - "react-toggle": "^4.1.1", "react-truncate-markup": "^5.0.0", "recoil": "0.0.10" }, diff --git a/src/components/CommunityForm/index.js b/src/components/CommunityForm/index.js index f9ce3c653..1560e6ce7 100644 --- a/src/components/CommunityForm/index.js +++ b/src/components/CommunityForm/index.js @@ -4,6 +4,7 @@ import { useForm, Controller } from 'react-hook-form'; import { customizableComponent } from 'hocs/customization'; import { getCommunities } from 'mock'; import Button from 'components/Button'; +import Switch from 'components/Switch'; import CategorySelector from './CategorySelector'; import UserSelector from './UserSelector'; @@ -14,7 +15,6 @@ import { Avatar, AvatarUploadContainer, AboutTextarea, - Switch, SwitchContainer, Footer, SubmitButton, @@ -154,7 +154,9 @@ const CommunityForm = ({
onChange(!value)} />} + render={({ value, onChange }) => ( + onChange(!value)} /> + )} control={control} /> diff --git a/src/components/CommunityForm/styles.js b/src/components/CommunityForm/styles.js index b21b27a65..0ca290e79 100644 --- a/src/components/CommunityForm/styles.js +++ b/src/components/CommunityForm/styles.js @@ -1,7 +1,6 @@ import React from 'react'; import styled from 'styled-components'; import TextareaAutosize from 'react-autosize-textarea'; -import ReactToggle from 'react-toggle'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { ErrorMessage as FormErrorMessage } from '@hookform/error-message'; import { @@ -137,6 +136,7 @@ export const Radio = styled.input` width: 20px; height: 20px; margin-left: auto; + margin-right: 0; flex-shrink: 0; `; @@ -151,31 +151,6 @@ export const SubmitButton = styled(PrimaryButton).attrs({ margin-left: 12px; `; -export const Switch = styled(ReactToggle).attrs({ - icons: false, -})` - transform: scale(0.8); - &.react-toggle, - &.react-toggle:hover { - & > .react-toggle-track { - background-color: ${({ theme }) => theme.color.base3}; - } - } - &.react-toggle--checked, - &.react-toggle--checked:hover { - & > .react-toggle-track { - background-color: ${({ theme }) => theme.color.primary}; - } - } - &.react-toggle > .react-toggle-thumb { - transform: scale(0.9); - border: none !important; - } - .react-toggle-thumb { - box-shadow: none !important; - } -`; - export const FormBlockHeader = styled.div` padding: 12px 16px; ${({ theme }) => theme.typography.title} diff --git a/src/components/UiKitProvider/index.js b/src/components/UiKitProvider/index.js index af52704d3..3bc4f1245 100644 --- a/src/components/UiKitProvider/index.js +++ b/src/components/UiKitProvider/index.js @@ -1,4 +1,3 @@ -import 'react-toggle/style.css'; import React, { useMemo } from 'react'; import merge from 'lodash/merge'; import { Helmet } from 'react-helmet'; From 68a78bb7912e7eecff9390c5e076df60f6518f7b Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 10 Sep 2020 07:37:34 +0700 Subject: [PATCH 094/740] Add Switch story with actions --- package-lock.json | 101 ++++++++++++++++-------- package.json | 1 + src/components/Switch/Switch.stories.js | 19 +++++ src/components/Switch/index.js | 2 +- 4 files changed, 88 insertions(+), 35 deletions(-) create mode 100644 src/components/Switch/Switch.stories.js diff --git a/package-lock.json b/package-lock.json index a24192404..d554f0354 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3902,16 +3902,16 @@ } }, "@storybook/client-api": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.16.tgz", - "integrity": "sha512-fFsp53lt9W2QHSumqdfFRbh+DI9fvd7li0GDxqLeNESXaUVw48yg8lQiyRNK+j5Pl4VBS3AqytLugJ+0MGm2cA==", + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", + "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", "dev": true, "requires": { - "@storybook/addons": "6.0.16", - "@storybook/channel-postmessage": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", + "@storybook/addons": "6.0.21", + "@storybook/channel-postmessage": "6.0.21", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", "@storybook/csf": "0.0.1", "@types/qs": "^6.9.0", "@types/webpack-env": "^1.15.2", @@ -3926,41 +3926,49 @@ "util-deprecate": "^1.0.2" }, "dependencies": { - "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + "@storybook/channel-postmessage": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", + "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", "dev": true, "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", + "@storybook/channels": "6.0.21", + "@storybook/client-logger": "6.0.21", + "@storybook/core-events": "6.0.21", "core-js": "^3.0.1", "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" + "qs": "^6.6.0", + "telejson": "^5.0.2" } }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "@storybook/channels": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", + "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", "dev": true, "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", + "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/core-events": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", + "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "dev": true, + "requires": { + "core-js": "^3.0.1" } } } @@ -4149,6 +4157,31 @@ "regenerator-runtime": "^0.13.3" } }, + "@storybook/client-api": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.16.tgz", + "integrity": "sha512-fFsp53lt9W2QHSumqdfFRbh+DI9fvd7li0GDxqLeNESXaUVw48yg8lQiyRNK+j5Pl4VBS3AqytLugJ+0MGm2cA==", + "dev": true, + "requires": { + "@storybook/addons": "6.0.16", + "@storybook/channel-postmessage": "6.0.16", + "@storybook/channels": "6.0.16", + "@storybook/client-logger": "6.0.16", + "@storybook/core-events": "6.0.16", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", + "core-js": "^3.0.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", + "stable": "^0.1.8", + "store2": "^2.7.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, "@storybook/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", diff --git a/package.json b/package.json index 22474044b..40dfeee89 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@storybook/addon-storysource": "^6.0.16", "@storybook/addon-viewport": "^6.0.21", "@storybook/addons": "^6.0.21", + "@storybook/client-api": "^6.0.21", "@storybook/react": "^6.0.16", "@storybook/theming": "^6.0.21", "babel-eslint": "^10.1.0", diff --git a/src/components/Switch/Switch.stories.js b/src/components/Switch/Switch.stories.js new file mode 100644 index 000000000..52b9cb323 --- /dev/null +++ b/src/components/Switch/Switch.stories.js @@ -0,0 +1,19 @@ +import React from 'react'; +import { useArgs } from '@storybook/client-api'; +import Switch from '.'; + +export default { + title: 'Switch', + component: Switch, + args: { value: false }, + argTypes: { + value: { control: { type: 'boolean' } }, + }, + parameters: { layout: 'centered' }, +}; + +export const Default = args => { + const [{ value }, updateArgs] = useArgs(); + const toggleValue = () => updateArgs({ value: !value }); + return ; +}; diff --git a/src/components/Switch/index.js b/src/components/Switch/index.js index 98475d0ec..c5e4dae1e 100644 --- a/src/components/Switch/index.js +++ b/src/components/Switch/index.js @@ -3,7 +3,7 @@ import { SwitchLabel, SwitchInput, SwitchSlider } from './styles'; const Switch = ({ value, onChange }) => ( - + ); From ebb04ffe7fba9736b164981de1fd689178b52a08 Mon Sep 17 00:00:00 2001 From: cpv123 Date: Thu, 10 Sep 2020 08:07:02 +0700 Subject: [PATCH 095/740] Add controls to Switch component story --- src/components/Switch/Switch.stories.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/Switch/Switch.stories.js b/src/components/Switch/Switch.stories.js index 52b9cb323..a71914f1c 100644 --- a/src/components/Switch/Switch.stories.js +++ b/src/components/Switch/Switch.stories.js @@ -5,10 +5,6 @@ import Switch from '.'; export default { title: 'Switch', component: Switch, - args: { value: false }, - argTypes: { - value: { control: { type: 'boolean' } }, - }, parameters: { layout: 'centered' }, }; @@ -17,3 +13,17 @@ export const Default = args => { const toggleValue = () => updateArgs({ value: !value }); return ; }; + +Default.args = { + value: false, +}; + +Default.argTypes = { + value: { control: { type: 'boolean' } }, +}; + +export const WithActions = args => ; + +WithActions.argTypes = { + onChange: { action: 'Changed!' }, +}; From 887db6990e074a1ae4463da5067672fe2190ed46 Mon Sep 17 00:00:00 2001 From: chaiwattsw Date: Fri, 11 Sep 2020 12:59:45 +0700 Subject: [PATCH 096/740] add avatar stories --- src/components/Avatar/Avatar.stories.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/components/Avatar/Avatar.stories.js diff --git a/src/components/Avatar/Avatar.stories.js b/src/components/Avatar/Avatar.stories.js new file mode 100644 index 000000000..9bfe6a29f --- /dev/null +++ b/src/components/Avatar/Avatar.stories.js @@ -0,0 +1,21 @@ +import React from 'react'; +import Avatar from '.'; + +export default { + title: 'Avatar', + component: Avatar, + argTypes: { + avatar: { control: { type: 'text' } }, + size: { control: { type: 'select', options: ['small', 'big', 'tiny'] } }, + className: { control: { type: 'text' } }, + }, +}; + +const Template = args => ; + +export const avatar = Template.bind({}); +avatar.args = { + avatar: 'https://via.placeholder.com/600/771796', + size: 'big', + className: '', +}; From 671cc40cbad904e555b4ce532e813f007ebbe193 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Fri, 11 Sep 2020 12:07:49 +0700 Subject: [PATCH 097/740] setup per pr build --- .gitlab-ci.yml | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..0e95e412c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,62 @@ +stages: + - audit + - test + - build_pr + - deploy_pr + - notice_pr + - trash_pr + - build + - deploy + +build_pr: + image: node:12.18 + stage: build_pr + script: + - npm i -g npm + - npm ci + - npm run storybook:build + artifacts: + paths: + - ./storybook-build + only: + - merge_requests + +deploy_pr: + image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest + stage: deploy_pr + dependencies: + - build_pr + script: + - aws s3 sync --delete ./storybook-build s3://ui-kit.staging.ekomedia.technology/pr$CI_MERGE_REQUEST_ID + environment: + name: staging/pr$CI_MERGE_REQUEST_ID + url: http://ui-kit.staging.ekomedia.technology/pr$CI_MERGE_REQUEST_ID + on_stop: trash_pr + only: + - merge_requests + +notice_pr: + image: alpine:latest + stage: notice_pr + dependencies: + - deploy_pr + script: + - echo "TODO Send message to eko-green" + - echo $CI_MERGE_REQUEST_TITLE + - echo http://ui-kit.staging.ekomedia.technology/pr$CI_MERGE_REQUEST_ID + only: + - merge_requests + +trash_pr: + image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest + stage: trash_pr + when: manual + script: + - aws s3 rm --recursive s3://ui-kit.staging.ekomedia.technology/pr$CI_MERGE_REQUEST_ID/ + environment: + name: staging/pr$CI_MERGE_REQUEST_ID + url: http://ui-kit.staging.ekomedia.technology/pr$CI_MERGE_REQUEST_ID + action: stop + only: + - develop + - merge_requests From cfe7b47be54d031f923f9a06b19304b7a0993459 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Fri, 11 Sep 2020 14:05:54 +0700 Subject: [PATCH 098/740] refactoring button and story --- src/components/Button/Button.stories.js | 39 +++++++++++++++++++++---- src/components/Button/index.js | 12 +++++++- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/components/Button/Button.stories.js b/src/components/Button/Button.stories.js index 985f9bbc6..b76e087e3 100644 --- a/src/components/Button/Button.stories.js +++ b/src/components/Button/Button.stories.js @@ -1,12 +1,41 @@ import React from 'react'; -import Button, { PrimaryButton, SecondaryButton } from '.'; +import UIKitButton from '.'; export default { - title: 'Button', + title: 'Components', + parameters: { layout: 'centered' }, }; -export const Default = () => ; +export const Button = ({ label, ...props }) => { + return ( +
+ before {label} after +
+ ); +}; -export const Primary = () => text; +Button.args = { + label: 'hello world', + variant: 'primary', + disabled: false, +}; -export const Secondary = () => text; +Button.argTypes = { + label: { + control: { + type: 'text', + }, + }, + variant: { + control: { + type: 'select', + options: ['primary', 'secondary'], + }, + }, + disabled: { + control: { + type: 'boolean', + }, + }, + onClick: { action: 'onClick' }, +}; diff --git a/src/components/Button/index.js b/src/components/Button/index.js index 212ea86fa..8120ef2b2 100644 --- a/src/components/Button/index.js +++ b/src/components/Button/index.js @@ -1,5 +1,15 @@ +import React from 'react'; import { DefaultButton, PrimaryButton, SecondaryButton } from './styles'; +// legacy export { PrimaryButton, SecondaryButton }; -export default DefaultButton; +export default ({ variant, ...props }) => { + const Button = + { + primary: PrimaryButton, + secondary: SecondaryButton, + }[variant] || DefaultButton; + + return + + ); +}; diff --git a/src/components/Profile/styles.js b/src/components/Profile/styles.js new file mode 100644 index 000000000..251f323a1 --- /dev/null +++ b/src/components/Profile/styles.js @@ -0,0 +1,72 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faPlus, faPencil } from '@fortawesome/pro-regular-svg-icons'; + +import UIAvatar from 'components/Avatar'; +import UIOptions from 'components/Options'; +import { PrimaryButton } from 'components/Button'; + +export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` + font-size: 15px; + margin-right: 8px; +`; + +export const PencilIcon = styled(FaIcon).attrs({ icon: faPencil })` + font-size: 15px; + margin-right: 4px; +`; + +export const Options = styled(UIOptions)` + margin-left: auto; +`; + +export const Container = styled.div` + border: 1px solid #edeef2; + border-radius: 4px; + background: #fff; + width: 330px; + flex-shrink: 0; + align-self: flex-start; + padding: 16px; +`; + +export const Header = styled.div` + display: flex; + align-items: flex-start; +`; + +export const Avatar = styled(UIAvatar).attrs({ + size: 'big', +})` + margin-right: 12px; +`; + +export const ProfileName = styled.div` + margin-top: 10px; + ${({ theme }) => theme.typography.headline} +`; + +export const Category = styled.div` + margin-bottom: 16px; + color: ${({ theme }) => theme.palette.base.shade1}; +`; + +export const Count = styled.span` + ${({ theme }) => theme.typography.bodyBold} +`; + +export const Description = styled.div` + margin: 8px 0 12px; +`; + +export const SubmitButton = styled(PrimaryButton).attrs({ + type: 'submit', +})` + padding: 10px 16px; +`; + +export const Footer = styled.div` + border-top: 1px solid ${({ theme }) => theme.palette.base.shade4}; + padding: 12px 16px; + display: flex; +`; diff --git a/src/components/ProfileSettings/index.js b/src/components/ProfileSettings/index.js new file mode 100644 index 000000000..6c2fc6335 --- /dev/null +++ b/src/components/ProfileSettings/index.js @@ -0,0 +1,66 @@ +import React, { useState } from 'react'; + +import { UserProfileForm } from 'components/Profile/UserProfileForm'; +import { ConditionalRender } from 'components/ConditionalRender'; +import { BackLink } from 'components/BackLink'; +import { customizableComponent } from 'hocs/customization'; +import { getUser } from 'mock/index'; +import { + ProfileSettingsTabs, + Container, + ActiveTabContent, + ActiveTabContainer, + PageHeader, + PageTitle, + Avatar, + AvatarContainer, +} from './styles'; + +// TODO replace with translations keys +const tabs = { + EDIT_PROFILE: 'Edit profile', +}; + +const ProfileSettings = ({ userId }) => { + const [activeTab, setActiveTab] = useState(tabs.EDIT_PROFILE); + const currentUser = getUser(userId); + + const handleSubmit = data => { + return data; + }; + + return ( + + + + + +
+ + Profile Settings +
+
+
+ +
+ + + + { + handleSubmit(data); + }} + user={currentUser} + /> + + + +
+ ); +}; + +export default customizableComponent('ProfileSettings', ProfileSettings); diff --git a/src/components/ProfileSettings/styles.js b/src/components/ProfileSettings/styles.js new file mode 100644 index 000000000..d400981c9 --- /dev/null +++ b/src/components/ProfileSettings/styles.js @@ -0,0 +1,93 @@ +import styled from 'styled-components'; +import UIProfileSettingsTabs from 'components/ProfileSettingsTabs'; +import Button, { PrimaryButton } from 'components/Button'; +import { faPlus } from '@fortawesome/pro-regular-svg-icons'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import UIAvatar from 'components/Avatar'; + +export const ProfileSettingsTabs = styled(UIProfileSettingsTabs)``; + +export const Container = styled.div` + width: 100%; + padding: 24px 78px 0; + overflow-y: auto; + display: flex; + flex-direction: column; + min-width: 600px; +`; + +export const PageHeader = styled.div` + display: flex; + background: #ffffff; + border-radius: 4px 4px 0 0; + border: 1px solid #edeef2; + padding: 10px 10px 20px 10px; +`; + +export const PageTitle = styled.div` + font-weight: 600; + font-size: 20px; +`; + +export const Avatar = styled(UIAvatar).attrs({ + size: 'small', +})` + margin-right: 12px; + margin-left: 16px; +`; + +export const AvatarContainer = styled.div` + padding-top: 4px; +`; + +export const ActiveTabContent = styled.div` + display: flex; + justify-content: space-between; + flex: 2; +`; + +export const ActiveTabContainer = styled.div` + flex: 3; + margin-top: 12px; +`; + +export const ExtraActionContainer = styled.div` + border: 1px solid #edeef2; + border-radius: 4px; + background: #fff; + align-self: flex-start; + padding: 16px; + margin-left: 36px; + flex: 1; +`; + +export const ExtraActionContainerHeader = styled.div` + ${({ theme }) => theme.typography.title}; + line-height: 24px; +`; + +export const ExtraActionContainerBody = styled.div` + ${({ theme }) => theme.typography.body}; + line-height: 20px; +`; + +export const Footer = styled.div` + margin-top: 16px; +`; + +export const ExtraActionPrimaryButton = styled(PrimaryButton)` + padding: 10px 16px; + justify-content: center; + width: 100%; +`; + +export const ExtraActionButton = styled(Button)` + padding: 10px 16px; + justify-content: center; + width: 100%; +`; + +export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` + font-size: 15px; + margin-right: 8px; +`; diff --git a/src/components/ProfileSettingsTabs/index.js b/src/components/ProfileSettingsTabs/index.js new file mode 100644 index 000000000..6813aedf3 --- /dev/null +++ b/src/components/ProfileSettingsTabs/index.js @@ -0,0 +1,5 @@ +import { customizableComponent } from 'hocs/customization'; + +import { ProfileSettingsTabs } from './styles'; + +export default customizableComponent('ProfileSettingsTabs', ProfileSettingsTabs); diff --git a/src/components/ProfileSettingsTabs/styles.js b/src/components/ProfileSettingsTabs/styles.js new file mode 100644 index 000000000..f79fedfbe --- /dev/null +++ b/src/components/ProfileSettingsTabs/styles.js @@ -0,0 +1,8 @@ +import styled from 'styled-components'; +import UITabs from 'components/Tabs'; + +export const ProfileSettingsTabs = styled(UITabs)` + background: #ffffff; + border-radius: 4px 4px 0 0; + border: 1px solid #edeef2; +`; diff --git a/src/index.js b/src/index.js index 70f966d7c..3d9edbe96 100644 --- a/src/index.js +++ b/src/index.js @@ -8,7 +8,6 @@ import EkoComment from './components/Comment'; import EkoCommentComposeBar from './components/CommentComposeBar'; import EkoCommentLikeButton from './components/CommentLikeButton'; import EkoCommunity from './components/Community'; -import EkoCommunityInformation from './components/CommunityInformation'; import EkoCommunityItem from './components/CommunityItem'; import EkoEmptyFeed from './components/EmptyFeed'; import EkoEngagementBar from './components/EngagementBar'; @@ -37,7 +36,6 @@ export { EkoCommentComposeBar, EkoCommentLikeButton, EkoCommunity, - EkoCommunityInformation, EkoCommunityItem, EkoEmptyFeed, EkoEngagementBar, diff --git a/src/mock/index.js b/src/mock/index.js index 196f51ff0..40bf4ca9d 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -2,11 +2,15 @@ import { RecoilRoot, atom, selector, useRecoilState, useRecoilValue } from 'recoil'; import { v4 } from 'uuid'; +const description = + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur auctor leo et tortor tempor finibus. Phasellus ultrices nulla nec libero ornare bibendum. Etiam nibh tellus, egestas at molestie vel, egestas euismod justo. Duis non dui ipsum. Maecenas mollis sed erat et ultrices. Cras rhoncus bibendum erat, at volutpat justo. '; + export const testUser = { userId: 'u1', name: 'Lalisa Manoban', avatar: 'https://cdn1.i-scmp.com/sites/default/files/styles/768x768/public/images/methode/2018/07/26/bf01d32e-8fcd-11e8-ad1d-4615aa6bc452_1280x720_204951.jpg?itok=lSmaQVob', + description, }; export const testUsers = [ @@ -16,18 +20,21 @@ export const testUsers = [ name: 'Jennie Kim', avatar: 'https://upload.wikimedia.org/wikipedia/commons/9/99/Jennie_Kim_for_Marie_Claire_Korea_Magazine_on_October_9%2C_2018_%285%29.png', + description, }, { userId: 'u3', name: 'Rosé', avatar: 'https://img1.nickiswift.com/img/gallery/this-is-how-much-blackpinks-rose-is-actually-worth/intro-1579709224.jpg', + description, }, { userId: 'u4', name: 'Jisoo', avatar: 'https://www.allkpop.com/upload/2020/08/content/280446/1598604401-img-20200828-155652.jpg', + description, }, { userId: 'u5', @@ -176,9 +183,6 @@ export const posts = [ }, ]; -const description = - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur auctor leo et tortor tempor finibus. Phasellus ultrices nulla nec libero ornare bibendum. Etiam nibh tellus, egestas at molestie vel, egestas euismod justo. Duis non dui ipsum. Maecenas mollis sed erat et ultrices. Cras rhoncus bibendum erat, at volutpat justo. '; - const communities = [ { communityId: 'c1', @@ -457,6 +461,8 @@ const myCommunityIdsAtom = atom({ default: ['c4', 'c5', 'c6'], }); +export const getUser = userId => testUsers.find(user => user.userId === userId); + export const getCommunities = () => useRecoilValue(communitiesAtom); export const getCommunity = communityId => getCommunities().find(community => community.communityId === communityId); From 2b8a606bb20b255fc6d4f879b55926998c935247 Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Tue, 29 Sep 2020 10:14:12 +0000 Subject: [PATCH 172/740] UKT-573 - added profile bar; refactored profile page for communities and users; refactored icons; added story for icons --- .env.example | 2 +- src/components/Button/styles.js | 3 -- src/components/Comment/index.js | 6 ++- src/components/Community/CommunityMembers.js | 43 +++++++++++++++----- src/components/CommunityForm/UserSelector.js | 7 +++- src/components/LoadMore/index.js | 16 ++++++++ src/components/LoadMore/styles.js | 17 ++++++++ src/components/Post/index.js | 6 ++- src/components/Profile/UserProfileForm.js | 42 ++++++++----------- src/components/Profile/index.js | 4 +- src/components/Profile/styles.js | 13 +----- src/components/ProfileSettings/index.js | 3 +- src/helpers/getUser.js | 12 ++++++ src/mock/index.js | 8 ++-- 14 files changed, 119 insertions(+), 63 deletions(-) create mode 100644 src/components/LoadMore/index.js create mode 100644 src/components/LoadMore/styles.js create mode 100644 src/helpers/getUser.js diff --git a/.env.example b/.env.example index ac5863436..73eab4d0a 100644 --- a/.env.example +++ b/.env.example @@ -1 +1 @@ -STORYBOOK_SDK_API_KEY= \ No newline at end of file +STORYBOOK_SDK_API_KEY= diff --git a/src/components/Button/styles.js b/src/components/Button/styles.js index 03ff49c5d..d8681cf13 100644 --- a/src/components/Button/styles.js +++ b/src/components/Button/styles.js @@ -9,9 +9,6 @@ const commonButtonStyles = ({ theme }) => css` cursor: pointer; transition: background-color 0.3s; ${theme.typography.bodyBold} - &:disabled { - cursor: auto; - } ${({ fullWidth }) => fullWidth && 'width: 100%;'} ${({ centered }) => centered && 'justify-content: center;'} `; diff --git a/src/components/Comment/index.js b/src/components/Comment/index.js index 644868ea3..e4daad19a 100644 --- a/src/components/Comment/index.js +++ b/src/components/Comment/index.js @@ -8,6 +8,8 @@ import StyledComment from './Comment.styles'; import useCommentSdk from './useCommentSdk'; import { CommentBlock, CommentContainer, ReplyContainer } from './styles'; +const DEFAULT_DISPLAY_NAME = 'Anonymous'; + const Comment = ({ commentId, isReplyComment = false }) => { const [isReplying, setIsReplying] = useState(false); const { @@ -30,7 +32,7 @@ const Comment = ({ commentId, isReplyComment = false }) => { { { onMemberClick(user)}>
- {user.name} + {user.displayName} @useraccount
@@ -60,22 +62,41 @@ const CommunityMember = ({ user, onMemberClick }) => { const CommunityMembers = ({ onMemberClick }) => { const [activeTab, setActiveTab] = useState(tabs.MEMBERS); + const userRepo = new UserRepository(); + + const [users, hasMoreUsers, loadMoreUsers] = usePaginatedLiveObject( + () => userRepo.getAllUsers(), + [], + ); + + const moderRepo = new UserRepository(); + const [moderators, hasMoreModerators, loadMoreModerators] = usePaginatedLiveObject( + () => moderRepo.getAllUsers(), + [], + ); + return ( - Community Members • 243 + Community Members • {users.length} - {activeTab === tabs.MEMBERS && - testMembers.map(user => ( - - ))} - {activeTab === tabs.MODERATORS && - testModerators.map(user => ( - - ))} + {activeTab === tabs.MEMBERS && ( + + {users.map(user => ( + + ))} + + )} + {activeTab === tabs.MODERATORS && ( + + {moderators.map(user => ( + + ))} + + )} ); }; diff --git a/src/components/CommunityForm/UserSelector.js b/src/components/CommunityForm/UserSelector.js index 189e01ec2..ec78230c0 100644 --- a/src/components/CommunityForm/UserSelector.js +++ b/src/components/CommunityForm/UserSelector.js @@ -14,15 +14,18 @@ import { CloseIcon, } from './styles'; +const DEFAULT_DISPLAY_NAME = 'Anonymous'; + const UserChip = ({ user, onRemove }) => ( - {user.name} + {user.displayName || DEFAULT_DISPLAY_NAME}{' '} + ); const User = ({ user }) => ( <> - {user.name} + {user.displayName || DEFAULT_DISPLAY_NAME} ); diff --git a/src/components/LoadMore/index.js b/src/components/LoadMore/index.js new file mode 100644 index 000000000..4aff1871a --- /dev/null +++ b/src/components/LoadMore/index.js @@ -0,0 +1,16 @@ +import React from 'react'; + +import { LoadMoreButton, ShevronDownIcon } from './styles'; + +export const LoadMore = ({ hasMore, loadMore, children }) => { + return ( +
+ {children} + {hasMore && ( + + Load more + + )} +
+ ); +}; diff --git a/src/components/LoadMore/styles.js b/src/components/LoadMore/styles.js new file mode 100644 index 000000000..74414f942 --- /dev/null +++ b/src/components/LoadMore/styles.js @@ -0,0 +1,17 @@ +import styled from 'styled-components'; +import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; +import { faChevronDown } from '@fortawesome/pro-regular-svg-icons'; + +import Button from 'components/Button'; + +export const LoadMoreButton = styled(Button)` + width: 100%; + justify-content: center; + color: ${({ theme }) => theme.palette.base.shade2}; + border: 1px solid ${({ theme }) => theme.palette.base.shade4}; + border-radius: 0; +`; + +export const ShevronDownIcon = styled(FaIcon).attrs({ icon: faChevronDown })` + font-size: 16px; +`; diff --git a/src/components/Post/index.js b/src/components/Post/index.js index 7a094dc73..05607d850 100644 --- a/src/components/Post/index.js +++ b/src/components/Post/index.js @@ -32,6 +32,8 @@ const CONTENT_POST_MAX_LINES = 3; const userRepo = new UserRepository(); +const DEFAULT_DISPLAY_NAME = 'Anonymous'; + const Post = ({ postId, onPostAuthorClick = () => {}, className = '' }) => { const [isExpanded, setIsExpanded] = useState(false); const [isEditing, setIsEditing] = useState(false); @@ -53,7 +55,7 @@ const Post = ({ postId, onPostAuthorClick = () => {}, className = '' }) => { const handleDeletePost = async () => { try { - const isDeletedSuccess = await postRepo.deletePost(postId); + const isDeletedSuccess = await PostRepository.deletePost(postId); if (!isDeletedSuccess) { throw new Error('Unable to to delete post'); } @@ -87,7 +89,7 @@ const Post = ({ postId, onPostAuthorClick = () => {}, className = '' }) => { onPostAuthorClick(postAuthor.userId)}> - {postAuthor.displayName} + {postAuthor.displayName || DEFAULT_DISPLAY_NAME} diff --git a/src/components/Profile/UserProfileForm.js b/src/components/Profile/UserProfileForm.js index 1ffd68576..dee8b6830 100644 --- a/src/components/Profile/UserProfileForm.js +++ b/src/components/Profile/UserProfileForm.js @@ -1,3 +1,6 @@ +import React from 'react'; +import { Controller, useForm } from 'react-hook-form'; + import { AboutTextarea, Avatar, @@ -16,10 +19,10 @@ import { LabelCounterWrapper, TextField, } from 'components/CommunityForm/styles'; -import { Controller, useForm } from 'react-hook-form'; -import React from 'react'; -import { getCommunities } from 'mock/index'; -import { Footer, SubmitButton } from './styles'; + +import { PrimaryButton } from 'components/Button'; + +import { ButtonContainer } from './styles'; const AvatarUpload = ({ value }) => ( @@ -38,32 +41,23 @@ const FormBlock = ({ title, children }) => ( ); export const UserProfileForm = ({ user, onSubmit, className }) => { - const { register, handleSubmit, errors, setError, watch, control } = useForm({ - defaultValues: user || { + const { register, handleSubmit, errors, watch, control } = useForm({ + defaultValues: { + ...user, + description: '', + } || { avatar: 'https://www.gardeningknowhow.com/wp-content/uploads/2017/07/hardwood-tree-400x266.jpg', - name: '', + displayName: '', description: '', }, }); - const currentName = watch('name'); + const currentName = watch('displayName'); const description = watch('description'); - const communities = getCommunities(); - - const validateNameAndSubmit = async data => { - const communityNames = communities.map(({ name }) => name); - if (communityNames.includes(data.name)) { - setError('name', { message: 'This name has already been taken' }); - return; - } - - onSubmit(data); - }; - return ( -
+ @@ -102,11 +96,11 @@ export const UserProfileForm = ({ user, onSubmit, className }) => { /> + + Save + -
- Save -
); }; diff --git a/src/components/Profile/index.js b/src/components/Profile/index.js index 481123695..6aa14b8e9 100644 --- a/src/components/Profile/index.js +++ b/src/components/Profile/index.js @@ -70,7 +70,7 @@ export const CommunityProfileBar = customizableComponent( {description} {!isMine && ( - joinCommunity(communityId)}> + joinCommunity(communityId)}> Join )} @@ -92,7 +92,7 @@ export const UserProfileBar = ({ user = {}, editProfile }) => { {toHumanString(posts.length)} posts {description} - diff --git a/src/components/Profile/styles.js b/src/components/Profile/styles.js index 251f323a1..776666893 100644 --- a/src/components/Profile/styles.js +++ b/src/components/Profile/styles.js @@ -4,7 +4,6 @@ import { faPlus, faPencil } from '@fortawesome/pro-regular-svg-icons'; import UIAvatar from 'components/Avatar'; import UIOptions from 'components/Options'; -import { PrimaryButton } from 'components/Button'; export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` font-size: 15px; @@ -59,14 +58,6 @@ export const Description = styled.div` margin: 8px 0 12px; `; -export const SubmitButton = styled(PrimaryButton).attrs({ - type: 'submit', -})` - padding: 10px 16px; -`; - -export const Footer = styled.div` - border-top: 1px solid ${({ theme }) => theme.palette.base.shade4}; - padding: 12px 16px; - display: flex; +export const ButtonContainer = styled.div` + padding: 12px 0; `; diff --git a/src/components/ProfileSettings/index.js b/src/components/ProfileSettings/index.js index 6c2fc6335..3abbd2af1 100644 --- a/src/components/ProfileSettings/index.js +++ b/src/components/ProfileSettings/index.js @@ -4,7 +4,7 @@ import { UserProfileForm } from 'components/Profile/UserProfileForm'; import { ConditionalRender } from 'components/ConditionalRender'; import { BackLink } from 'components/BackLink'; import { customizableComponent } from 'hocs/customization'; -import { getUser } from 'mock/index'; +import { getUser } from 'helpers/getUser'; import { ProfileSettingsTabs, Container, @@ -23,6 +23,7 @@ const tabs = { const ProfileSettings = ({ userId }) => { const [activeTab, setActiveTab] = useState(tabs.EDIT_PROFILE); + const currentUser = getUser(userId); const handleSubmit = data => { diff --git a/src/helpers/getUser.js b/src/helpers/getUser.js new file mode 100644 index 000000000..a79fa74f8 --- /dev/null +++ b/src/helpers/getUser.js @@ -0,0 +1,12 @@ +import { UserRepository } from 'eko-sdk'; + +import { testUser } from 'mock'; + +export const getUser = userId => { + if (userId) { + const userRepo = new UserRepository(); + return (userRepo.userForId(userId) || {}).model || testUser; + } + + return testUser; +}; diff --git a/src/mock/index.js b/src/mock/index.js index 40bf4ca9d..bee5fc5c2 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -7,7 +7,7 @@ const description = export const testUser = { userId: 'u1', - name: 'Lalisa Manoban', + displayName: 'Lalisa Manoban', avatar: 'https://cdn1.i-scmp.com/sites/default/files/styles/768x768/public/images/methode/2018/07/26/bf01d32e-8fcd-11e8-ad1d-4615aa6bc452_1280x720_204951.jpg?itok=lSmaQVob', description, @@ -17,21 +17,21 @@ export const testUsers = [ testUser, { userId: 'u2', - name: 'Jennie Kim', + displayName: 'Jennie Kim', avatar: 'https://upload.wikimedia.org/wikipedia/commons/9/99/Jennie_Kim_for_Marie_Claire_Korea_Magazine_on_October_9%2C_2018_%285%29.png', description, }, { userId: 'u3', - name: 'Rosé', + displayName: 'Rosé', avatar: 'https://img1.nickiswift.com/img/gallery/this-is-how-much-blackpinks-rose-is-actually-worth/intro-1579709224.jpg', description, }, { userId: 'u4', - name: 'Jisoo', + displayName: 'Jisoo', avatar: 'https://www.allkpop.com/upload/2020/08/content/280446/1598604401-img-20200828-155652.jpg', description, From 861ab86887e5da5d8aba1d4deb43b4a3e79fb3a7 Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Tue, 29 Sep 2020 14:08:10 +0300 Subject: [PATCH 173/740] fix-post-compose-bar - fixed conflicts --- src/components/PostCompose/index.js | 30 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/components/PostCompose/index.js b/src/components/PostCompose/index.js index 531baf981..81967ee67 100644 --- a/src/components/PostCompose/index.js +++ b/src/components/PostCompose/index.js @@ -5,10 +5,10 @@ import { PostRepository, EkoPostTargetType } from 'eko-sdk'; import { customizableComponent } from 'hocs/customization'; import Files from 'components/Files'; import Images from 'components/Images'; -import PostAsCommunity from './PostAsCommunity'; import { confirm } from 'components/Confirm'; import { isEqual } from 'helpers'; +import PostAsCommunity from './PostAsCommunity'; import AuthorSelector from './AuthorSelector'; import { isIdenticalAuthor } from './utils'; import { @@ -31,22 +31,20 @@ const PostComposeBar = ({ placeholder = "What's going on...", edit, post = { text: '', files: [], images: [] }, - onSubmit, - onSave, - className, blockRouteChange, }) => { const user = {}; const [author, setAuthor] = useState(user); const [text, setText] = useState(post.text); - const [files, setFiles] = useState(post.files); - const [images, setImages] = useState(post.images); + // TODO: refactor method to create post with images and files + // const [files, setFiles] = useState(post.files); + // const [images, setImages] = useState(post.images); + const files = []; + const images = []; const [isDirty, markDirty] = useState(false); - const isEmpty = text.trim().length === 0 && files.length === 0 && images.length === 0; - - const isCommunityPost = isIdenticalAuthor(author, community); + const isEmpty = text.trim().length === 0; // && files.length === 0 && images.length === 0; const onConfirm = goToNextPage => () => { blockRouteChange(() => true); @@ -74,10 +72,7 @@ const PostComposeBar = ({ ); }, [text, files, images]); - const setIsCommunityPost = shouldBeCommunityPost => - setAuthor(shouldBeCommunityPost ? community : user); - - const createPost = () => { + const handleCreateTextPost = async () => { if (isEmpty) return; const newPostLiveObject = PostRepository.createTextPost({ text, @@ -98,7 +93,7 @@ const PostComposeBar = ({ setAuthor(shouldBeCommunityPost ? community : user); return ( - + @@ -133,6 +128,13 @@ PostComposeBar.propTypes = { communities: PropTypes.array, className: PropTypes.string, placeholder: PropTypes.string, + blockRouteChange: PropTypes.func.isRequired, + edit: PropTypes.bool, + post: PropTypes.shape({ + text: PropTypes.string, + images: PropTypes.arrayOf(PropTypes.string), + files: PropTypes.arrayOf(PropTypes.string), + }), }; export default customizableComponent('PostComposeBar', PostComposeBar); From 8cd859b3438d3d113881bb0779b37583a70c4fae Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Tue, 29 Sep 2020 12:49:28 +0000 Subject: [PATCH 174/740] UKT-350 - not show loading state in editing mode --- src/components/Community/CommunityMembers.js | 2 +- src/components/Files/File.js | 16 ++-- src/components/Files/index.js | 6 +- src/components/Files/styles.js | 9 --- src/components/Images/Image.js | 40 ++++++++-- src/components/Images/index.js | 6 +- src/components/Images/styles.js | 54 ++++++++----- src/components/PostCompose/index.js | 80 ++++++++++++++++++-- src/components/ProgressBar/index.js | 7 ++ src/components/ProgressBar/styles.js | 11 +++ src/mock/index.js | 6 ++ 11 files changed, 186 insertions(+), 51 deletions(-) create mode 100644 src/components/ProgressBar/index.js create mode 100644 src/components/ProgressBar/styles.js diff --git a/src/components/Community/CommunityMembers.js b/src/components/Community/CommunityMembers.js index 03f8001ba..a31aea950 100644 --- a/src/components/Community/CommunityMembers.js +++ b/src/components/Community/CommunityMembers.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { UserRepository } from 'eko-sdk'; -import usePaginatedLiveObject from 'hooks/usePaginatedLiveObject'; +import usePaginatedLiveObject from 'hooks/useLiveCollection'; import { customizableComponent } from 'hocs/customization'; import Options from 'components/Options'; import { confirm } from 'components/Confirm'; diff --git a/src/components/Files/File.js b/src/components/Files/File.js index 5acdd9b91..dd5f291ad 100644 --- a/src/components/Files/File.js +++ b/src/components/Files/File.js @@ -4,13 +4,19 @@ import { customizableComponent } from 'hocs/customization'; import FileIcon from './FileIcon'; -import { FileContainer, Content, FileName, FileSize, ProgressBar, RemoveIcon } from './styles'; +import { FileContainer, Content, FileName, FileSize, RemoveIcon } from './styles'; +import { ProgressBar } from '../ProgressBar'; -const File = ({ editing, file, onRemove }) => { +const File = ({ file, onRemove, setFileLoaded }) => { // simulate progress animation - const [progress, setProgress] = useState(0); + const { isNew } = file; + const [progress, setProgress] = useState(isNew ? 0 : 100); + useEffect(() => { - if (!editing || progress >= 100) return; + if (!isNew || progress >= 100) { + isNew && setFileLoaded && setFileLoaded(file); + return; + } const timeout = setTimeout(() => { setProgress(progress + 0.5); }, 50); @@ -19,7 +25,7 @@ const File = ({ editing, file, onRemove }) => { return ( - + {isNew && } {file.filename} {filesize(file.size)} diff --git a/src/components/Files/index.js b/src/components/Files/index.js index 2fe8118ff..64f0cd615 100644 --- a/src/components/Files/index.js +++ b/src/components/Files/index.js @@ -8,11 +8,11 @@ import { FilesContainer, ViewAllFilesButton } from './styles'; const MAX_VISIBLE_FILES = 5; -const Files = ({ editing, files = [], onRemove }) => { +const Files = ({ files = [], onRemove, setFileLoaded }) => { const [isOpen, setIsOpen] = useState(false); const open = () => setIsOpen(true); - const visibleFiles = editing || isOpen ? files : files.slice(0, MAX_VISIBLE_FILES); + const visibleFiles = isOpen ? files : files.slice(0, MAX_VISIBLE_FILES); const haveHiddenFiles = visibleFiles.length < files.length; @@ -21,7 +21,7 @@ const Files = ({ editing, files = [], onRemove }) => { return ( {visibleFiles.map(file => ( - + ))} {haveHiddenFiles && View all files} diff --git a/src/components/Files/styles.js b/src/components/Files/styles.js index a89dc1116..d50b7a152 100644 --- a/src/components/Files/styles.js +++ b/src/components/Files/styles.js @@ -32,15 +32,6 @@ export const Content = styled.div` align-items: center; `; -export const ProgressBar = styled.div` - background: ${({ theme }) => theme.palette.base.shade4}; - width: ${({ progress }) => progress}%; - position: absolute; - left: 0; - top: 0; - bottom: 0; -`; - export const FileSize = styled.div` ${({ theme }) => theme.typography.caption} color: ${({ theme }) => theme.palette.base.shade1}; diff --git a/src/components/Images/Image.js b/src/components/Images/Image.js index 1c2ceff59..0330bc213 100644 --- a/src/components/Images/Image.js +++ b/src/components/Images/Image.js @@ -1,13 +1,28 @@ import React, { useState, useEffect } from 'react'; import { customizableComponent } from 'hocs/customization'; -import { ImageContainer, RemoveIcon, NumberOfHiddenImagesOverlay, LoadingOverlay } from './styles'; +import { + ImageContainer, + NumberOfHiddenImagesOverlay, + OverlayContainer, + LoadingOverlay, + ProgressBarContainer, + CloseIcon, + CircleButton, +} from './styles'; -const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { +import { ProgressBar } from '../ProgressBar'; + +const Image = ({ image, onClick, onRemove, numberOfHiddenImages, setImageLoaded }) => { // simulate progress animation - const [progress, setProgress] = useState(editing ? 0 : 100); + const { isNew } = image; + const [progress, setProgress] = useState(isNew ? 0 : 100); + useEffect(() => { - if (progress >= 100) return; + if (!isNew || progress >= 100) { + isNew && setImageLoaded && setImageLoaded(image); + return; + } const timeout = setTimeout(() => { setProgress(progress + 0.5); }, 50); @@ -22,13 +37,24 @@ const Image = ({ editing, image, onClick, onRemove, numberOfHiddenImages }) => { const showOverlay = progress < 100; return ( - + {numberOfHiddenImages > 0 && ( + {numberOfHiddenImages} )} - {showOverlay && } + {isNew && ( + + + + + + + )} + {!!onRemove && ( + + + + )} - {!!onRemove && } ); }; diff --git a/src/components/Images/index.js b/src/components/Images/index.js index ea28b4e95..7abee5388 100644 --- a/src/components/Images/index.js +++ b/src/components/Images/index.js @@ -9,7 +9,7 @@ import { ImagesContainer } from './styles'; const MAX_IMAGES_IN_PREVIEW = 4; -const Images = ({ editing, images = [], onRemove }) => { +const Images = ({ editing, images = [], onRemove, setImageLoaded }) => { const [selectedImageIndex, setSelectedImageIndex] = useState(null); const closeGallery = () => setSelectedImageIndex(null); @@ -26,10 +26,10 @@ const Images = ({ editing, images = [], onRemove }) => { !editing && setSelectedImageIndex(i)} + onClick={() => setSelectedImageIndex(i)} onRemove={onRemove} + setImageLoaded={setImageLoaded} /> ); })} diff --git a/src/components/Images/styles.js b/src/components/Images/styles.js index a5b740a13..c0b1d20cf 100644 --- a/src/components/Images/styles.js +++ b/src/components/Images/styles.js @@ -3,17 +3,24 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; -export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` - z-index: 2; - cursor: pointer; - margin-left: auto; - position: absolute; - right: 10px; - top: 10px; - background: rgba(17, 17, 17, 0.2); - color: white; +export const CircleButton = styled.button` border-radius: 50%; - padding: 2px 6px; + width: 24px; + height: 24px; + position: absolute; + top: 5%; + right: 5%; + font-size: 24px; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + z-index: 3; + border: none; +`; + +export const CloseIcon = styled(FaIcon).attrs({ icon: faTimes })` + color: #fff; + font-size: 18px; `; export const ImageContainer = styled.div` @@ -83,26 +90,39 @@ export const ImagesContainer = styled.div` }} `; -export const ProgressBar = styled.div` - background: ${({ theme }) => theme.palette.base.shade4}; - width: ${({ progress }) => 100 - progress}%; +export const OverlayContainer = styled.div` position: absolute; right: 0; top: 0; bottom: 0; - opacity: 0.3; z-index: 1; + width: 100%; + height: 100%; `; export const LoadingOverlay = styled.div` background: ${({ theme }) => theme.palette.base.shade4}; - width: 100%; position: absolute; right: 0; top: 0; bottom: 0; - opacity: 0.5; - z-index: 1; + z-index: 2; + width: 100%; + height: 100%; + opacity: 0.4; +`; + +export const ProgressBarContainer = styled.div` + height: 5%; + width: 60%; + background-color: #fff; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border-radius: 8px; + z-index: 3; + overflow: hidden; `; export const NumberOfHiddenImagesOverlay = styled.div` diff --git a/src/components/PostCompose/index.js b/src/components/PostCompose/index.js index 81967ee67..80d98b1d7 100644 --- a/src/components/PostCompose/index.js +++ b/src/components/PostCompose/index.js @@ -44,7 +44,11 @@ const PostComposeBar = ({ const [isDirty, markDirty] = useState(false); - const isEmpty = text.trim().length === 0; // && files.length === 0 && images.length === 0; + const hasNotLoadedImages = images.some(image => image.isNew); + const hasNotLoadedFiles = files.some(file => file.isNew); + + const isEmpty = text.trim().length === 0 && files.length === 0 && images.length === 0; + const isDisabled = isEmpty || hasNotLoadedImages || hasNotLoadedFiles; const onConfirm = goToNextPage => () => { blockRouteChange(() => true); @@ -72,7 +76,7 @@ const PostComposeBar = ({ ); }, [text, files, images]); - const handleCreateTextPost = async () => { + const createPost = async () => { if (isEmpty) return; const newPostLiveObject = PostRepository.createTextPost({ text, @@ -87,7 +91,59 @@ const PostComposeBar = ({ }); }; + const testImages = []; + const testFiles = []; + const setImages = () => {}; + const setFiles = () => {}; + const ImagePostIcon = () => null; + const FilePostIcon = () => null; + const maxImagesWarning = 0; + const maxFilesWarning = 0; + const canUploadImage = false; + const canUploadFile = false; + + const updatePost = async () => { + // TODO: fixme + }; + const isCommunityPost = isIdenticalAuthor(author, community); + const addImage = () => { + const image = testImages[images.length % testImages.length]; + setImages([...images, { id: Date.now(), isNew: true, ...image }]); + }; + + const addFile = () => { + const file = testFiles[files.length % testFiles.length]; + setFiles([...files, { id: Date.now(), isNew: true, ...file }]); + }; + + const setImageLoaded = image => { + const index = images.indexOf(image); + const newImages = images.slice(); + newImages[index] = { + ...image, + isNew: false, + }; + setImages(newImages); + }; + + const setFileLoaded = file => { + const index = files.indexOf(file); + const newFiles = files.slice(); + newFiles[index] = { + ...file, + isNew: false, + }; + setFiles(newFiles); + }; + + const onRemoveFile = file => { + setFiles(files.filter(({ id }) => id !== file.id)); + }; + + const onRemoveImage = image => { + setImages(images.filter(({ id }) => id !== image.id)); + }; const setIsCommunityPost = shouldBeCommunityPost => setAuthor(shouldBeCommunityPost ? community : user); @@ -104,14 +160,26 @@ const PostComposeBar = ({ onChange={e => setText(e.target.value)} /> - {!!files.length && {}} />} - {!!images.length && {}} />} + {!!files.length && ( + + )} + {!!images.length && ( + + )}
{!!community && } - - Post + + + + {edit ? 'Save' : 'Post'}
diff --git a/src/components/ProgressBar/index.js b/src/components/ProgressBar/index.js new file mode 100644 index 000000000..818b09bf9 --- /dev/null +++ b/src/components/ProgressBar/index.js @@ -0,0 +1,7 @@ +import React from 'react'; + +import { LoadingIndicator } from './styles'; + +export const ProgressBar = ({ progress, lightMode }) => { + return ; +}; diff --git a/src/components/ProgressBar/styles.js b/src/components/ProgressBar/styles.js new file mode 100644 index 000000000..738ba231c --- /dev/null +++ b/src/components/ProgressBar/styles.js @@ -0,0 +1,11 @@ +import styled from 'styled-components'; + +export const LoadingIndicator = styled.div` + width: ${({ progress }) => progress}%; + background: ${({ lightMode, theme }) => + lightMode ? theme.palette.primary.main : theme.palette.base.shade4}; + position: absolute; + left: 0; + top: 0; + bottom: 0; +`; diff --git a/src/mock/index.js b/src/mock/index.js index bee5fc5c2..b189284aa 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -150,28 +150,34 @@ export const posts = [ id: 1, url: 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + isNew: false, }, { id: 2, url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + isNew: false, }, { id: 3, url: 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + isNew: false, }, { id: 4, url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + isNew: false, }, { id: 5, url: 'https://images.pexels.com/photos/461428/pexels-photo-461428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260', + isNew: false, }, { id: 6, url: 'https://theievoice.com/wp-content/uploads/2020/02/1040.jpg', + isNew: false, }, ], }, From 1874ae10e65bda4593dd0adb8221229aa62bbe64 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Tue, 29 Sep 2020 20:58:23 +0700 Subject: [PATCH 175/740] fixing rebase --- src/components/Community/Community.stories.js | 22 ++++++++++++++++--- src/components/EngagementBar/index.js | 6 ++--- src/components/Images/Image.js | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/components/Community/Community.stories.js b/src/components/Community/Community.stories.js index b0f58d3e0..d00368669 100644 --- a/src/components/Community/Community.stories.js +++ b/src/components/Community/Community.stories.js @@ -96,10 +96,21 @@ const Pages = () => { > - + - + { /> - + diff --git a/src/components/EngagementBar/index.js b/src/components/EngagementBar/index.js index adf4a4033..0695f3a84 100644 --- a/src/components/EngagementBar/index.js +++ b/src/components/EngagementBar/index.js @@ -38,9 +38,9 @@ const EngagementBar = ({ postId }) => { return post.commentsCount; }, [isPostReady, post.commentsCount]); - const totalCommentsAmount = - comments.length + - comments.reduce((prevValue, comment) => prevValue + comment.replies.length, 0); + // const totalCommentsAmount = + // comments.length + + // comments.reduce((prevValue, comment) => prevValue + comment.replies.length, 0); return ( diff --git a/src/components/Images/Image.js b/src/components/Images/Image.js index 0330bc213..97c7c187e 100644 --- a/src/components/Images/Image.js +++ b/src/components/Images/Image.js @@ -34,7 +34,7 @@ const Image = ({ image, onClick, onRemove, numberOfHiddenImages, setImageLoaded onRemove(image); }; - const showOverlay = progress < 100; + // const showOverlay = progress < 100; return ( From be2346672bcccaaa02224b2b14aa1e2ef8049511 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Tue, 29 Sep 2020 17:31:08 +0000 Subject: [PATCH 176/740] [Misc] reorganization --- .storybook/UiKitDecorator.js | 2 +- .storybook/main.js | 1 + CONTRIBUTE.md | 72 +- README.md | 12 +- package-lock.json | 8248 ++++++++++------- package.json | 21 +- src/components/Switch/Switch.stories.js | 29 - src/components/Switch/index.js | 11 - .../components/Avatar/Avatar.stories.js | 0 src/{ => core}/components/Avatar/index.js | 4 +- src/{ => core}/components/Avatar/styles.js | 4 +- src/{ => core}/components/BackLink/index.js | 0 src/{ => core}/components/BackLink/styles.js | 0 .../components/Button/Button.stories.js | 0 src/{ => core}/components/Button/index.js | 0 src/{ => core}/components/Button/styles.js | 0 .../components/ConditionalRender/index.js | 0 src/{ => core}/components/Confirm/index.js | 0 src/{ => core}/components/Confirm/styles.js | 4 +- src/{ => core}/components/Files/File.js | 4 +- src/{ => core}/components/Files/FileIcon.js | 0 .../components/Files/icons/audio.svg | 0 src/{ => core}/components/Files/icons/avi.svg | 0 src/{ => core}/components/Files/icons/csv.svg | 0 .../components/Files/icons/default.svg | 0 src/{ => core}/components/Files/icons/doc.svg | 0 src/{ => core}/components/Files/icons/exe.svg | 0 .../components/Files/icons/html.svg | 0 src/{ => core}/components/Files/icons/img.svg | 0 src/{ => core}/components/Files/icons/mov.svg | 0 src/{ => core}/components/Files/icons/mp3.svg | 0 src/{ => core}/components/Files/icons/mp4.svg | 0 .../components/Files/icons/mpeg.svg | 0 src/{ => core}/components/Files/icons/pdf.svg | 0 src/{ => core}/components/Files/icons/ppt.svg | 0 src/{ => core}/components/Files/icons/ppx.svg | 0 src/{ => core}/components/Files/icons/rar.svg | 0 src/{ => core}/components/Files/icons/txt.svg | 0 src/{ => core}/components/Files/icons/xls.svg | 0 src/{ => core}/components/Files/icons/zip.svg | 0 src/{ => core}/components/Files/index.js | 2 +- src/{ => core}/components/Files/styles.js | 2 +- .../components/Layout/Layout.stories.js | 2 +- src/{ => core}/components/Layout/index.js | 8 +- src/{ => core}/components/Layout/styles.js | 0 src/{ => core}/components/Linkify/index.js | 0 src/{ => core}/components/Linkify/styles.js | 0 src/{ => core}/components/Menu/index.js | 0 src/{ => core}/components/Menu/styles.js | 0 src/{ => core}/components/Modal/index.js | 0 src/{ => core}/components/Modal/styles.js | 0 .../components/Notification/index.js | 0 .../components/Notification/styles.js | 0 src/{ => core}/components/Options/index.js | 4 +- src/{ => core}/components/Options/styles.js | 2 +- src/{ => core}/components/Popover/index.js | 0 src/{ => core}/components/Popover/styles.js | 0 .../components/ProgressBar/index.js | 0 .../components/ProgressBar/styles.js | 0 src/{ => core}/components/SideMenu/MenuTab.js | 2 +- .../components/SideMenu/icons/community.svg | 0 src/{ => core}/components/SideMenu/index.js | 2 +- src/{ => core}/components/SideMenu/styles.js | 0 .../components/SideMenuItem/index.js | 0 .../components/SideMenuItem/styles.js | 2 +- src/core/components/Switch/Switch.stories.js | 29 + src/core/components/Switch/index.js | 17 + src/{ => core}/components/Switch/styles.js | 0 src/{ => core}/components/Tab/Tab.stories.js | 0 src/{ => core}/components/Tab/index.js | 0 src/{ => core}/components/Tab/styles.js | 0 src/{ => core}/components/Tabs/index.js | 4 +- src/{ => core}/components/Tabs/styles.js | 0 src/{ => core}/components/Time/index.js | 0 src/{ => core}/components/Time/styles.js | 0 src/{ => core}/hocs/customization.js | 0 src/{ => core}/hocs/withSDK.js | 0 src/{ => core}/hocs/withSize.js | 0 src/{ => core}/hooks/useLiveCollection.js | 18 +- src/{ => core}/hooks/useLiveObject.js | 13 +- .../UiKitProvider/Localisation/index.js | 0 .../providers}/UiKitProvider/index.js | 10 +- .../providers}/UiKitProvider/styles.js | 0 .../theme/__tests__/index.test.js | 0 .../theme/__tests__/palette.test.js | 0 .../theme/__tests__/typography.test.js | 0 .../UiKitProvider/theme/default-theme.js | 0 .../providers}/UiKitProvider/theme/index.js | 0 .../providers}/UiKitProvider/theme/palette.js | 0 .../UiKitProvider/theme/typography.js | 0 .../ColorPicker/ColorPicker.stories.js | 2 +- .../ColorPicker/index.js | 2 +- src/helpers/getUser.js | 2 +- src/{ => messaging}/components/Chat/index.js | 8 +- src/{ => messaging}/components/Chat/styles.js | 0 .../components/ChatDetails/index.js | 6 +- .../components/ChatDetails/styles.js | 2 +- .../components/ChatHeader/index.js | 6 +- .../components/ChatHeader/styles.js | 2 +- .../components/ChatHome/ChatHome.stories.js | 2 +- .../components/ChatHome/index.js | 8 +- .../components/ChatHome/styles.js | 0 .../components/ChatItem/index.js | 2 +- .../components/ChatItem/styles.js | 4 +- .../components/Message/IncomingMessage.js | 2 +- .../components/Message/Options.js | 4 +- .../components/Message/OutgoingMessage.js | 2 +- .../components/Message/index.js | 4 +- .../components/Message/styles.js | 2 +- .../components/MessageComposeBar/index.js | 2 +- .../components/MessageComposeBar/styles.js | 0 .../components/MessageList/index.js | 12 +- .../components/MessageList/styles.js | 0 .../components/RecentChat/CreateNewChat.js | 2 +- .../components/RecentChat/index.js | 6 +- .../components/RecentChat/styles.js | 0 src/messaging/hocs/.gitkeep | 0 src/messaging/hooks/.gitkeep | 0 src/{hooks => mock}/useOneComment.js | 2 +- src/{hooks => mock}/useOnePost.js | 0 src/{hooks => mock}/useOneUser.js | 4 +- .../components/AddMemberModal/index.js | 6 +- .../components/AddMemberModal/styles.js | 0 .../components/Comment/Comment.styles.js | 2 +- .../components/Comment/CommentReplies.js | 0 .../components/Comment/CommentSDK.stories.js | 2 +- .../components/Comment/CommentText.js | 2 +- src/{ => social}/components/Comment/index.js | 4 +- src/{ => social}/components/Comment/styles.js | 10 +- .../components/Comment/useCommentSdk.js | 19 +- .../components/CommentComposeBar/index.js | 4 +- .../components/CommentComposeBar/styles.js | 4 +- .../CommentLikeButton.stories.js | 2 +- .../CommentLikeButton.styles.js | 4 +- .../components/CommentLikeButton/index.js | 0 .../CommentLikeButton/useCommentLikeSdk.js | 4 +- .../components/Community/Community.stories.js | 19 +- .../components/Community/CommunityMembers.js | 12 +- .../components/Community/index.js | 10 +- .../components/Community/styles.js | 13 +- .../CommunityCreationModal/index.js | 6 +- .../CommunityCreationModal/styles.js | 4 +- .../CommunityForm/CategorySelector.js | 6 +- .../components/CommunityForm/UserSelector.js | 6 +- .../components/CommunityForm/index.js | 8 +- .../components/CommunityForm/styles.js | 8 +- .../components/CommunityInformation/index.js | 6 +- .../components/CommunityInformation/styles.js | 6 +- .../components/CommunityItem/index.js | 4 +- .../components/CommunityItem/styles.js | 4 +- .../components/CommunityName/index.js | 0 .../components/CommunityName/styles.js | 0 .../CommunitySettings/ExtraAction.js | 6 +- .../components/CommunitySettings/index.js | 14 +- .../components/CommunitySettings/styles.js | 6 +- .../components/CommunitySettingsTabs/index.js | 2 +- .../CommunitySettingsTabs/styles.js | 2 +- .../components/EmptyFeed/EmptyFeed.stories.js | 0 .../components/EmptyFeed/index.js | 2 +- .../components/EmptyFeed/styles.js | 0 .../components/EngagementBar/index.js | 14 +- .../components/EngagementBar/styles.js | 0 .../components/ExploreHome/CategoryPage.js | 4 +- .../components/ExploreHome/Community.js | 4 +- .../components/ExploreHome/CommunitySearch.js | 8 +- .../components/ExploreHome/ExploreHeader.js | 2 +- .../ExploreHome/TrendingCommunity.js | 4 +- .../components/ExploreHome/index.js | 8 +- .../components/ExploreHome/styles.js | 6 +- .../components/Feed/Feed.stories.js | 2 +- src/{ => social}/components/Feed/index.js | 8 +- src/{ => social}/components/Feed/styles.js | 0 .../components/Feed/useFeedSdk.js | 6 +- .../components/FeedHeaderTabs/index.js | 2 +- .../components/FeedHeaderTabs/styles.js | 2 +- .../components/FeedLayout/index.js | 2 +- .../components/FeedLayout/styles.js | 0 .../components/FeedSideMenu/index.js | 8 +- .../components/FeedSideMenu/styles.js | 0 .../components/ImageGallery/index.js | 2 +- .../components/ImageGallery/styles.js | 0 src/{ => social}/components/Images/Image.js | 4 +- src/{ => social}/components/Images/index.js | 4 +- src/{ => social}/components/Images/styles.js | 0 src/{ => social}/components/LoadMore/index.js | 0 .../components/LoadMore/styles.js | 2 +- .../components/Post/Post.stories.js | 2 +- src/{ => social}/components/Post/index.js | 31 +- src/{ => social}/components/Post/styles.js | 4 +- .../components/PostCompose/AuthorSelector.js | 6 +- .../components/PostCompose/PostAsCommunity.js | 0 .../PostCompose/PostCompose.stories.js | 0 .../components/PostCompose/index.js | 10 +- .../components/PostCompose/styles.js | 4 +- .../components/PostCompose/utils.js | 2 +- .../PostComposeEdit.stories.js | 2 +- .../components/PostComposeEdit/index.js | 4 +- .../PostLikeButton/PostLikeButton.stories.js | 2 +- .../PostLikeButton/PostLikeButton.styles.js | 4 +- .../components/PostLikeButton/index.js | 0 .../PostLikeButton/usePostLikeSdk.js | 4 +- .../components/Profile/UserProfileForm.js | 4 +- src/{ => social}/components/Profile/index.js | 8 +- src/{ => social}/components/Profile/styles.js | 4 +- .../components/ProfileSettings/index.js | 8 +- .../components/ProfileSettings/styles.js | 6 +- .../components/ProfileSettingsTabs/index.js | 2 +- .../components/ProfileSettingsTabs/styles.js | 2 +- .../components/UserFeedHeader/index.js | 4 +- .../components/UserFeedHeader/styles.js | 0 src/social/hocs/.gitkeep | 0 src/social/hooks/.gitkeep | 0 util/create-component.js | 31 - util/templates/component.js | 15 - util/templates/component.stories.js | 15 - util/templates/component.test.js | 31 - util/templates/component.types.js | 8 - util/templates/index.js | 6 - version-publish.sh | 11 - webpack.config.js | 1 + 220 files changed, 5294 insertions(+), 3853 deletions(-) delete mode 100644 src/components/Switch/Switch.stories.js delete mode 100644 src/components/Switch/index.js rename src/{ => core}/components/Avatar/Avatar.stories.js (100%) rename src/{ => core}/components/Avatar/index.js (84%) rename src/{ => core}/components/Avatar/styles.js (82%) rename src/{ => core}/components/BackLink/index.js (100%) rename src/{ => core}/components/BackLink/styles.js (100%) rename src/{ => core}/components/Button/Button.stories.js (100%) rename src/{ => core}/components/Button/index.js (100%) rename src/{ => core}/components/Button/styles.js (100%) rename src/{ => core}/components/ConditionalRender/index.js (100%) rename src/{ => core}/components/Confirm/index.js (100%) rename src/{ => core}/components/Confirm/styles.js (81%) rename src/{ => core}/components/Files/File.js (89%) rename src/{ => core}/components/Files/FileIcon.js (100%) rename src/{ => core}/components/Files/icons/audio.svg (100%) rename src/{ => core}/components/Files/icons/avi.svg (100%) rename src/{ => core}/components/Files/icons/csv.svg (100%) rename src/{ => core}/components/Files/icons/default.svg (100%) rename src/{ => core}/components/Files/icons/doc.svg (100%) rename src/{ => core}/components/Files/icons/exe.svg (100%) rename src/{ => core}/components/Files/icons/html.svg (100%) rename src/{ => core}/components/Files/icons/img.svg (100%) rename src/{ => core}/components/Files/icons/mov.svg (100%) rename src/{ => core}/components/Files/icons/mp3.svg (100%) rename src/{ => core}/components/Files/icons/mp4.svg (100%) rename src/{ => core}/components/Files/icons/mpeg.svg (100%) rename src/{ => core}/components/Files/icons/pdf.svg (100%) rename src/{ => core}/components/Files/icons/ppt.svg (100%) rename src/{ => core}/components/Files/icons/ppx.svg (100%) rename src/{ => core}/components/Files/icons/rar.svg (100%) rename src/{ => core}/components/Files/icons/txt.svg (100%) rename src/{ => core}/components/Files/icons/xls.svg (100%) rename src/{ => core}/components/Files/icons/zip.svg (100%) rename src/{ => core}/components/Files/index.js (92%) rename src/{ => core}/components/Files/styles.js (95%) rename src/{ => core}/components/Layout/Layout.stories.js (86%) rename src/{ => core}/components/Layout/index.js (80%) rename src/{ => core}/components/Layout/styles.js (100%) rename src/{ => core}/components/Linkify/index.js (100%) rename src/{ => core}/components/Linkify/styles.js (100%) rename src/{ => core}/components/Menu/index.js (100%) rename src/{ => core}/components/Menu/styles.js (100%) rename src/{ => core}/components/Modal/index.js (100%) rename src/{ => core}/components/Modal/styles.js (100%) rename src/{ => core}/components/Notification/index.js (100%) rename src/{ => core}/components/Notification/styles.js (100%) rename src/{ => core}/components/Options/index.js (89%) rename src/{ => core}/components/Options/styles.js (87%) rename src/{ => core}/components/Popover/index.js (100%) rename src/{ => core}/components/Popover/styles.js (100%) rename src/{ => core}/components/ProgressBar/index.js (100%) rename src/{ => core}/components/ProgressBar/styles.js (100%) rename src/{ => core}/components/SideMenu/MenuTab.js (85%) rename src/{ => core}/components/SideMenu/icons/community.svg (100%) rename src/{ => core}/components/SideMenu/index.js (90%) rename src/{ => core}/components/SideMenu/styles.js (100%) rename src/{ => core}/components/SideMenuItem/index.js (100%) rename src/{ => core}/components/SideMenuItem/styles.js (93%) create mode 100644 src/core/components/Switch/Switch.stories.js create mode 100644 src/core/components/Switch/index.js rename src/{ => core}/components/Switch/styles.js (100%) rename src/{ => core}/components/Tab/Tab.stories.js (100%) rename src/{ => core}/components/Tab/index.js (100%) rename src/{ => core}/components/Tab/styles.js (100%) rename src/{ => core}/components/Tabs/index.js (78%) rename src/{ => core}/components/Tabs/styles.js (100%) rename src/{ => core}/components/Time/index.js (100%) rename src/{ => core}/components/Time/styles.js (100%) rename src/{ => core}/hocs/customization.js (100%) rename src/{ => core}/hocs/withSDK.js (100%) rename src/{ => core}/hocs/withSize.js (100%) rename src/{ => core}/hooks/useLiveCollection.js (77%) rename src/{ => core}/hooks/useLiveObject.js (73%) rename src/{components => core/providers}/UiKitProvider/Localisation/index.js (100%) rename src/{components => core/providers}/UiKitProvider/index.js (87%) rename src/{components => core/providers}/UiKitProvider/styles.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/__tests__/index.test.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/__tests__/palette.test.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/__tests__/typography.test.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/default-theme.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/index.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/palette.js (100%) rename src/{components => core/providers}/UiKitProvider/theme/typography.js (100%) rename src/{components => helpers}/ColorPicker/ColorPicker.stories.js (93%) rename src/{components => helpers}/ColorPicker/index.js (91%) rename src/{ => messaging}/components/Chat/index.js (76%) rename src/{ => messaging}/components/Chat/styles.js (100%) rename src/{ => messaging}/components/ChatDetails/index.js (85%) rename src/{ => messaging}/components/ChatDetails/styles.js (94%) rename src/{ => messaging}/components/ChatHeader/index.js (84%) rename src/{ => messaging}/components/ChatHeader/styles.js (94%) rename src/{ => messaging}/components/ChatHome/ChatHome.stories.js (89%) rename src/{ => messaging}/components/ChatHome/index.js (81%) rename src/{ => messaging}/components/ChatHome/styles.js (100%) rename src/{ => messaging}/components/ChatItem/index.js (86%) rename src/{ => messaging}/components/ChatItem/styles.js (75%) rename src/{ => messaging}/components/Message/IncomingMessage.js (74%) rename src/{ => messaging}/components/Message/Options.js (96%) rename src/{ => messaging}/components/Message/OutgoingMessage.js (57%) rename src/{ => messaging}/components/Message/index.js (93%) rename src/{ => messaging}/components/Message/styles.js (97%) rename src/{ => messaging}/components/MessageComposeBar/index.js (93%) rename src/{ => messaging}/components/MessageComposeBar/styles.js (100%) rename src/{ => messaging}/components/MessageList/index.js (79%) rename src/{ => messaging}/components/MessageList/styles.js (100%) rename src/{ => messaging}/components/RecentChat/CreateNewChat.js (96%) rename src/{ => messaging}/components/RecentChat/index.js (82%) rename src/{ => messaging}/components/RecentChat/styles.js (100%) create mode 100644 src/messaging/hocs/.gitkeep create mode 100644 src/messaging/hooks/.gitkeep rename src/{hooks => mock}/useOneComment.js (96%) rename src/{hooks => mock}/useOnePost.js (100%) rename src/{hooks => mock}/useOneUser.js (86%) rename src/{ => social}/components/AddMemberModal/index.js (89%) rename src/{ => social}/components/AddMemberModal/styles.js (100%) rename src/{ => social}/components/Comment/Comment.styles.js (95%) rename src/{ => social}/components/Comment/CommentReplies.js (100%) rename src/{ => social}/components/Comment/CommentSDK.stories.js (96%) rename src/{ => social}/components/Comment/CommentText.js (93%) rename src/{ => social}/components/Comment/index.js (93%) rename src/{ => social}/components/Comment/styles.js (92%) rename src/{ => social}/components/Comment/useCommentSdk.js (72%) rename src/{ => social}/components/CommentComposeBar/index.js (92%) rename src/{ => social}/components/CommentComposeBar/styles.js (87%) rename src/{ => social}/components/CommentLikeButton/CommentLikeButton.stories.js (96%) rename src/{ => social}/components/CommentLikeButton/CommentLikeButton.styles.js (89%) rename src/{ => social}/components/CommentLikeButton/index.js (100%) rename src/{ => social}/components/CommentLikeButton/useCommentLikeSdk.js (93%) rename src/{ => social}/components/Community/Community.stories.js (88%) rename src/{ => social}/components/Community/CommunityMembers.js (88%) rename src/{ => social}/components/Community/index.js (88%) rename src/{ => social}/components/Community/styles.js (80%) rename src/{ => social}/components/CommunityCreationModal/index.js (82%) rename src/{ => social}/components/CommunityCreationModal/styles.js (54%) rename src/{ => social}/components/CommunityForm/CategorySelector.js (87%) rename src/{ => social}/components/CommunityForm/UserSelector.js (94%) rename src/{ => social}/components/CommunityForm/index.js (96%) rename src/{ => social}/components/CommunityForm/styles.js (96%) rename src/{ => social}/components/CommunityInformation/index.js (90%) rename src/{ => social}/components/CommunityInformation/styles.js (89%) rename src/{ => social}/components/CommunityItem/index.js (75%) rename src/{ => social}/components/CommunityItem/styles.js (60%) rename src/{ => social}/components/CommunityName/index.js (100%) rename src/{ => social}/components/CommunityName/styles.js (100%) rename src/{ => social}/components/CommunitySettings/ExtraAction.js (91%) rename src/{ => social}/components/CommunitySettings/index.js (84%) rename src/{ => social}/components/CommunitySettings/styles.js (90%) rename src/{ => social}/components/CommunitySettingsTabs/index.js (67%) rename src/{ => social}/components/CommunitySettingsTabs/styles.js (79%) rename src/{ => social}/components/EmptyFeed/EmptyFeed.stories.js (100%) rename src/{ => social}/components/EmptyFeed/index.js (92%) rename src/{ => social}/components/EmptyFeed/styles.js (100%) rename src/{ => social}/components/EngagementBar/index.js (83%) rename src/{ => social}/components/EngagementBar/styles.js (100%) rename src/{ => social}/components/ExploreHome/CategoryPage.js (91%) rename src/{ => social}/components/ExploreHome/Community.js (83%) rename src/{ => social}/components/ExploreHome/CommunitySearch.js (91%) rename src/{ => social}/components/ExploreHome/ExploreHeader.js (92%) rename src/{ => social}/components/ExploreHome/TrendingCommunity.js (86%) rename src/{ => social}/components/ExploreHome/index.js (93%) rename src/{ => social}/components/ExploreHome/styles.js (97%) rename src/{ => social}/components/Feed/Feed.stories.js (97%) rename src/{ => social}/components/Feed/index.js (84%) rename src/{ => social}/components/Feed/styles.js (100%) rename src/{ => social}/components/Feed/useFeedSdk.js (84%) rename src/{ => social}/components/FeedHeaderTabs/index.js (63%) rename src/{ => social}/components/FeedHeaderTabs/styles.js (79%) rename src/{ => social}/components/FeedLayout/index.js (80%) rename src/{ => social}/components/FeedLayout/styles.js (100%) rename src/{ => social}/components/FeedSideMenu/index.js (89%) rename src/{ => social}/components/FeedSideMenu/styles.js (100%) rename src/{ => social}/components/ImageGallery/index.js (95%) rename src/{ => social}/components/ImageGallery/styles.js (100%) rename src/{ => social}/components/Images/Image.js (92%) rename src/{ => social}/components/Images/index.js (90%) rename src/{ => social}/components/Images/styles.js (100%) rename src/{ => social}/components/LoadMore/index.js (100%) rename src/{ => social}/components/LoadMore/styles.js (91%) rename src/{ => social}/components/Post/Post.stories.js (84%) rename src/{ => social}/components/Post/index.js (82%) rename src/{ => social}/components/Post/styles.js (88%) rename src/{ => social}/components/PostCompose/AuthorSelector.js (89%) rename src/{ => social}/components/PostCompose/PostAsCommunity.js (100%) rename src/{ => social}/components/PostCompose/PostCompose.stories.js (100%) rename src/{ => social}/components/PostCompose/index.js (96%) rename src/{ => social}/components/PostCompose/styles.js (96%) rename src/{ => social}/components/PostCompose/utils.js (89%) rename src/{ => social}/components/PostComposeEdit/PostComposeEdit.stories.js (89%) rename src/{ => social}/components/PostComposeEdit/index.js (93%) rename src/{ => social}/components/PostLikeButton/PostLikeButton.stories.js (97%) rename src/{ => social}/components/PostLikeButton/PostLikeButton.styles.js (90%) rename src/{ => social}/components/PostLikeButton/index.js (100%) rename src/{ => social}/components/PostLikeButton/usePostLikeSdk.js (92%) rename src/{ => social}/components/Profile/UserProfileForm.js (96%) rename src/{ => social}/components/Profile/index.js (92%) rename src/{ => social}/components/Profile/styles.js (92%) rename src/{ => social}/components/ProfileSettings/index.js (84%) rename src/{ => social}/components/ProfileSettings/styles.js (90%) rename src/{ => social}/components/ProfileSettingsTabs/index.js (66%) rename src/{ => social}/components/ProfileSettingsTabs/styles.js (79%) rename src/{ => social}/components/UserFeedHeader/index.js (77%) rename src/{ => social}/components/UserFeedHeader/styles.js (100%) create mode 100644 src/social/hocs/.gitkeep create mode 100644 src/social/hooks/.gitkeep delete mode 100644 util/create-component.js delete mode 100644 util/templates/component.js delete mode 100644 util/templates/component.stories.js delete mode 100644 util/templates/component.test.js delete mode 100644 util/templates/component.types.js delete mode 100644 util/templates/index.js delete mode 100755 version-publish.sh diff --git a/.storybook/UiKitDecorator.js b/.storybook/UiKitDecorator.js index dfb5e8e9d..abc05f114 100644 --- a/.storybook/UiKitDecorator.js +++ b/.storybook/UiKitDecorator.js @@ -1,5 +1,5 @@ import React from 'react'; -import UiKitProvider from '../src/components/UiKitProvider'; +import UiKitProvider from '../src/core/providers/UiKitProvider'; const UiKitDecorator = storyFn => ( { config.plugins.push( diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 38f575802..36080f000 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -1,63 +1,39 @@ -# EkoMessagingSDKUIKitWeb +# UiKit for Web contribution guide -## Development +## Requirements -### Dependencies +- git +- nodejs -``` -npm ci -``` +## Getting started -### Start storybook +1. `git clone git@gitlab.com:upstra/web/ui-kit.git` +2. `cd ui-kit` +3. `npm install` +4. `npm run storybook` -``` -npm run storybook -``` +## Contribution flow -### Building +1. `git checkout origin/develop && git checkout -b feature/UKT-xxx` +2. Do some magic ~ +3. `git push origin` +4. Submit your PR and attach labels "Awaiting review" and "Awaiting QA" +5. Pass your ticket to "Ready to QA" in JIRA +6. When the code review is validated, the reviewer will remove the "Awaiting review" label. If there is no other label left, the reviewer will add the label "To be Merged" +7. When the QA validates the feature, **you** will remove the "Awaiting QA" label. If there is no other label left, **you** should add the label "To be Merged" -``` -npm run build -``` +Whenever appropriate, the "To be merged" shall be merged at once. -### Storybook +## About Storybook -To run a live-reload Storybook server on your local machine: +[Storybook](https://storybook.js.org/) is a web application which provides a safe and independent environment to build isolated, testable components and user journey. -``` -npm run storybook -``` +In the context of Ui-Kit, we use it in development phase to deploy faster, QA phase to test in isolated context, and production phase as documentation and show-case tool. -To export your Storybook as static files: - -``` -npm run storybook:build -``` - - -Add the component to `index.js` exports if you want the library to export the component. +### How to work with Storybook +When creating a component, simply create a `Component.stories.js` file containing your storybook stories. More on how to write stories [here](https://storybook.js.org/docs/react/writing-stories/introduction). We have installed the plugins `controls` and `actions`, so make sure you use them wisely. ## Publishing -``` -npm publish -``` - -The `"prepublishOnly": "npm run build"` script in `package.json` will execute before publish occurs, ensuring the `build/` directory and the compiled component library exist. - - -## How to customize components - -### globally -``` - - - -``` - - -### per component -``` - -``` \ No newline at end of file +The publication of the library is entirely automated and controlled by CI. To publish a version, the only necessary command is `npm version` with the according version increment, as per `semver` semantics (`major`, `minor`, `patch`). **The patches can be released freely but the minor and major must be approved by a project manager before release.** diff --git a/README.md b/README.md index c53492c1a..672945cca 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,10 @@ -Installation -Add the ui kit to your repository via npm: npm install upstra-uikit --save. +# Eko Ui-Kit for Web -Installing the web SDK requires you to use a javascript package manager such as npm or yarn. If your current build system does not use package managers, please contact us at developer@ekoapp.com. \ No newline at end of file +## Installation + +- `npm install --save upstra-uikit` +- `yarn add upstra-uikit` + +## Getting started + +Please refer to our online documentation at https://docs.upstra.co or contact a Ui-Kit representative at **developers@amity.co** for support. diff --git a/package-lock.json b/package-lock.json index 129299d8b..81db0eabf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,17 @@ "@babel/highlight": "^7.10.3" } }, + "@babel/compat-data": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", + "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, "@babel/core": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz", @@ -58,148 +69,14 @@ "@babel/types": "^7.10.1" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz", - "integrity": "sha512-iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.3", - "@babel/helper-member-expression-to-functions": "^7.10.3", - "@babel/helper-optimise-call-expression": "^7.10.3", - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/helper-replace-supers": "^7.10.1", - "@babel/helper-split-export-declaration": "^7.10.1" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", - "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-regex": "^7.10.1", - "regexpu-core": "^4.7.0" - } - }, - "@babel/helper-define-map": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz", - "integrity": "sha512-bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.3", - "@babel/types": "^7.10.3", - "lodash": "^4.17.13" - } - }, - "@babel/helper-function-name": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz", - "integrity": "sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.3", - "@babel/template": "^7.10.3", - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz", - "integrity": "sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz", - "integrity": "sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==", - "dev": true, - "requires": { - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz", - "integrity": "sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==", - "dev": true, - "requires": { - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", - "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.1", - "@babel/helper-replace-supers": "^7.10.1", - "@babel/helper-simple-access": "^7.10.1", - "@babel/helper-split-export-declaration": "^7.10.1", - "@babel/template": "^7.10.1", - "@babel/types": "^7.10.1", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz", - "integrity": "sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz", - "integrity": "sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", - "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-replace-supers": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", - "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.1", - "@babel/helper-optimise-call-expression": "^7.10.1", - "@babel/traverse": "^7.10.1", - "@babel/types": "^7.10.1" - } - }, - "@babel/helper-simple-access": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", - "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", - "dev": true, - "requires": { - "@babel/template": "^7.10.1", - "@babel/types": "^7.10.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -209,9 +86,9 @@ "dev": true }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -221,57 +98,31 @@ } } }, - "@babel/helper-split-export-declaration": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", - "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", - "dev": true, - "requires": { - "@babel/types": "^7.10.1" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", - "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", - "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", - "dev": true, - "requires": { - "@babel/template": "^7.10.1", - "@babel/traverse": "^7.10.1", - "@babel/types": "^7.10.1" - } - }, - "@babel/highlight": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", - "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.3", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" } }, - "@babel/parser": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", - "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", - "dev": true - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" }, "dependencies": { "@babel/code-frame": { @@ -284,30 +135,16 @@ } }, "@babel/generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz", - "integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==", + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", "dev": true, "requires": { - "@babel/types": "^7.11.0", + "@babel/types": "^7.11.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, "@babel/helper-function-name": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", @@ -391,9 +228,9 @@ } }, "@babel/parser": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz", - "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", "dev": true }, "@babel/template": { @@ -408,26 +245,26 @@ } }, "@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", + "@babel/generator": "^7.11.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -437,157 +274,29 @@ } } }, - "@babel/plugin-proposal-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", - "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", + "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-decorators": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-regex": "^7.10.1", + "regexpu-core": "^4.7.0" } }, - "@babel/plugin-proposal-export-default-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz", - "integrity": "sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig==", + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-default-from": "^7.10.4" + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", - "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", - "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - } - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz", - "integrity": "sha512-ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.1" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "dependencies": { - "@babel/code-frame": { + "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", @@ -596,31 +305,6 @@ "@babel/highlight": "^7.10.4" } }, - "@babel/generator": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", - "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, "@babel/helper-function-name": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", @@ -641,51 +325,6 @@ "@babel/types": "^7.10.4" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, "@babel/helper-validator-identifier": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", @@ -704,9 +343,9 @@ } }, "@babel/parser": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", - "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", "dev": true }, "@babel/template": { @@ -720,27 +359,38 @@ "@babel/types": "^7.10.4" } }, - "@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", + "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -750,281 +400,415 @@ } } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", - "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", + "@babel/helper-function-name": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz", + "integrity": "sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-get-function-arity": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/types": "^7.10.3" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "@babel/helper-get-function-arity": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz", + "integrity": "sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/types": "^7.10.3" } }, - "@babel/plugin-syntax-class-properties": { + "@babel/helper-hoist-variables": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/helper-plugin-utils": { + "@babel/helper-validator-identifier": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } } } }, - "@babel/plugin-syntax-decorators": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.1.tgz", - "integrity": "sha512-a9OAbQhKOwSle1Vr0NJu/ISg1sPfdEkfRKWpgPuzhnWWzForou2gIeUIIwjAMHRekhhpJ7eulZlYs0H14Cbi+g==", + "@babel/helper-member-expression-to-functions": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz", + "integrity": "sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/types": "^7.10.3" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "@babel/helper-module-imports": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz", + "integrity": "sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/types": "^7.10.3" } }, - "@babel/plugin-syntax-export-default-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz", - "integrity": "sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==", + "@babel/helper-module-transforms": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", + "lodash": "^4.17.13" } }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "@babel/helper-optimise-call-expression": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz", + "integrity": "sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/types": "^7.10.3" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "@babel/helper-plugin-utils": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz", + "integrity": "sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", + "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "lodash": "^4.17.13" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "@babel/helper-remap-async-to-generator": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", + "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/helper-plugin-utils": { + "@babel/code-frame": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } } } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz", - "integrity": "sha512-X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz", - "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", - "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz", - "integrity": "sha512-irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-define-map": "^7.10.3", - "@babel/helper-function-name": "^7.10.3", - "@babel/helper-optimise-call-expression": "^7.10.3", - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/helper-replace-supers": "^7.10.1", - "@babel/helper-split-export-declaration": "^7.10.1", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-destructuring": { + "@babel/helper-replace-supers": { "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", - "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" } }, - "@babel/plugin-transform-dotall-regex": { + "@babel/helper-simple-access": { "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", - "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", - "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", + "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.10.4" + "@babel/types": "^7.11.0" }, "dependencies": { - "@babel/helper-plugin-utils": { + "@babel/helper-validator-identifier": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, - "@babel/plugin-syntax-flow": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", - "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } } } }, - "@babel/plugin-transform-for-of": { + "@babel/helper-split-export-declaration": { "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz", - "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/types": "^7.10.1" } }, - "@babel/plugin-transform-parameters": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", - "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" - } + "@babel/helper-validator-identifier": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", + "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", + "dev": true }, - "@babel/plugin-transform-react-constant-elements": { + "@babel/helper-wrap-function": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", - "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/helper-plugin-utils": { + "@babel/code-frame": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } } } }, - "@babel/plugin-transform-react-display-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", - "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "@babel/helpers": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", + "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/highlight": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.3", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", + "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { @@ -1035,96 +819,105 @@ } } }, - "@babel/plugin-transform-react-pure-annotations": { + "@babel/plugin-proposal-class-properties": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", - "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-create-class-features-plugin": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, "@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } } } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", - "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", + "@babel/plugin-proposal-decorators": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz", + "integrity": "sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-create-class-features-plugin": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@babel/plugin-transform-spread": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", - "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz", - "integrity": "sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==", + "@babel/plugin-proposal-export-default-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz", + "integrity": "sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-default-from": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@babel/plugin-transform-typescript": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.3.tgz", - "integrity": "sha512-qU9Lu7oQyh3PGMQncNjQm8RWkzw6LqsWZQlZPQMgrGt6s3YiBIaQ+3CQV/FA/icGS5XlSWZGwo/l8ErTyelS0Q==", + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", + "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.3", - "@babel/helper-plugin-utils": "^7.10.3", - "@babel/plugin-syntax-typescript": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@babel/plugin-transform-unicode-escapes": { + "@babel/plugin-proposal-json-strings": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { @@ -1135,80 +928,133 @@ } } }, - "@babel/preset-env": { + "@babel/plugin-proposal-logical-assignment-operators": { "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", - "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", + "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + } + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", "dev": true, "requires": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.0", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/plugin-transform-parameters": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", + "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { "@babel/code-frame": { @@ -1220,17 +1066,6 @@ "@babel/highlight": "^7.10.4" } }, - "@babel/compat-data": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, "@babel/generator": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", @@ -1242,38 +1077,6 @@ "source-map": "^0.5.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, "@babel/helper-create-class-features-plugin": { "version": "7.10.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", @@ -1288,38 +1091,6 @@ "@babel/helper-split-export-declaration": "^7.10.4" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", - "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", - "dev": true, - "requires": { - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, "@babel/helper-function-name": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", @@ -1340,15 +1111,6 @@ "@babel/types": "^7.10.4" } }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, "@babel/helper-member-expression-to-functions": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", @@ -1358,34 +1120,10 @@ "@babel/types": "^7.11.0" } }, - "@babel/helper-module-imports": { + "@babel/helper-optimise-call-expression": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -1397,28 +1135,6 @@ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", - "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, "@babel/helper-replace-supers": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", @@ -1431,16 +1147,6 @@ "@babel/types": "^7.10.4" } }, - "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, "@babel/helper-split-export-declaration": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", @@ -1456,18 +1162,6 @@ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, - "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, "@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", @@ -1485,401 +1179,493 @@ "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", "dev": true }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { + "@babel/template": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" } }, - "@babel/plugin-proposal-object-rest-spread": { + "@babel/types": { "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } - }, - "@babel/plugin-proposal-optional-catch-binding": { + } + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", + "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz", + "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-numeric-separator": { + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz", + "integrity": "sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-top-level-await": { + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", + "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz", + "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.10.4" } }, - "@babel/plugin-transform-async-to-generator": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } - }, - "@babel/plugin-transform-block-scoped-functions": { + } + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", + "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/highlight": "^7.10.4" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", - "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" } }, - "@babel/plugin-transform-classes": { + "@babel/helper-annotate-as-pure": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" + "@babel/types": "^7.10.4" } }, - "@babel/plugin-transform-computed-properties": { + "@babel/helper-function-name": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/plugin-transform-destructuring": { + "@babel/helper-get-function-arity": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.10.4" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.11.0" } }, - "@babel/plugin-transform-regenerator": { + "@babel/helper-optimise-call-expression": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "regenerator-transform": "^0.14.2" + "@babel/types": "^7.10.4" } }, - "@babel/plugin-transform-reserved-words": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true }, - "@babel/plugin-transform-shorthand-properties": { + "@babel/helper-replace-supers": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/plugin-transform-spread": { + "@babel/helper-split-export-declaration": { "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + "@babel/types": "^7.11.0" } }, - "@babel/plugin-transform-sticky-regex": { + "@babel/helper-validator-identifier": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true }, - "@babel/plugin-transform-typeof-symbol": { + "@babel/highlight": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true }, "@babel/template": { "version": "7.10.4", @@ -1893,26 +1679,26 @@ } }, "@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", + "@babel/generator": "^7.11.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -1922,14 +1708,13 @@ } } }, - "@babel/preset-flow": { + "@babel/plugin-transform-computed-properties": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz", - "integrity": "sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-flow-strip-types": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { @@ -1940,68 +1725,137 @@ } } }, - "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@babel/preset-react": { + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", + "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-duplicate-keys": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", - "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", + "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.10.4", - "@babel/plugin-transform-react-jsx": "^7.10.4", - "@babel/plugin-transform-react-jsx-development": "^7.10.4", - "@babel/plugin-transform-react-jsx-self": "^7.10.4", - "@babel/plugin-transform-react-jsx-source": "^7.10.4", - "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + "@babel/plugin-syntax-flow": "^7.10.4" }, "dependencies": { - "@babel/helper-annotate-as-pure": { + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/highlight": "^7.10.4" } }, - "@babel/helper-builder-react-jsx": { + "@babel/helper-function-name": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", "@babel/types": "^7.10.4" } }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", - "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.10.5" - } - }, - "@babel/helper-module-imports": { + "@babel/helper-get-function-arity": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -2019,62 +1873,38 @@ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx": { + "@babel/highlight": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", - "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", - "dev": true, - "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" - } + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true }, - "@babel/plugin-transform-react-jsx-self": { + "@babel/template": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", - "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", - "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -2084,73 +1914,2449 @@ } } }, - "@babel/preset-typescript": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", - "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-typescript": "^7.9.0" - } - }, - "@babel/register": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz", - "integrity": "sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==", + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", "dev": true, "requires": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true } } }, - "@babel/runtime": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", - "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", - "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.3", - "@babel/parser": "^7.10.3", - "@babel/types": "^7.10.3" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@babel/traverse": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz", - "integrity": "sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==", + "@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.3", - "@babel/generator": "^7.10.3", - "@babel/helper-function-name": "^7.10.3", - "@babel/helper-split-export-declaration": "^7.10.1", - "@babel/parser": "^7.10.3", - "@babel/types": "^7.10.3", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", + "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", + "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", + "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", + "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + } + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz", + "integrity": "sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/preset-env": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", + "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "dev": true, + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", + "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", + "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", + "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/preset-flow": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz", + "integrity": "sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-flow-strip-types": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", + "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.10.4", + "@babel/plugin-transform-react-jsx": "^7.10.4", + "@babel/plugin-transform-react-jsx-development": "^7.10.4", + "@babel/plugin-transform-react-jsx-self": "^7.10.4", + "@babel/plugin-transform-react-jsx-source": "^7.10.4", + "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", + "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", + "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", + "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", + "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/preset-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz", + "integrity": "sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } + } + }, + "@babel/register": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz", + "integrity": "sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", + "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" + } + }, + "@babel/traverse": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz", + "integrity": "sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -2190,9 +4396,9 @@ } }, "@emotion/core": { - "version": "10.0.28", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz", - "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==", + "version": "10.0.35", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.35.tgz", + "integrity": "sha512-sH++vJCdk025fBlRZSAhkRlSUoqSqgCzYf5fMOmqqi3bM6how+sQpg3hkgJonj8GxXM4WbD7dRO+4tegDB9fUw==", "dev": true, "requires": { "@babel/runtime": "^7.5.5", @@ -2759,6 +4965,63 @@ } } }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.2.tgz", + "integrity": "sha512-Loc4UDGutcZ+Bd56hBInkm6JyjyCwWy4t2wcDXzN8EDPANgVRj0VP8Nxn0Zq2pc+WKauZwEivQgbDGg4xZO20A==", + "dev": true, + "requires": { + "ansi-html": "^0.0.7", + "error-stack-parser": "^2.0.6", + "html-entities": "^1.2.1", + "native-url": "^0.2.6", + "schema-utils": "^2.6.5", + "source-map": "^0.7.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@popperjs/core": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.5.3.tgz", + "integrity": "sha512-RFwCobxsvZ6j7twS7dHIZQZituMIDJJNHS/qY6iuthVebxS3zhRY+jaC2roEKiAYaVuTcGmX6Luc6YBcf6zJVg==", + "dev": true + }, "@reach/router": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", @@ -2772,1413 +5035,776 @@ } }, "@storybook/addon-a11y": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.0.21.tgz", - "integrity": "sha512-jB6cOx8UwRjd2h04p6TBBwrZInaeE7w4NnmxWRW6Ifo3GLFiZFuI2oSWOe4LEKWWG1eTrk+285fd11zn0ihsTw==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", - "axe-core": "^3.5.2", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.1.0-alpha.17.tgz", + "integrity": "sha512-wCJjkwCLUImXBxoMFj4LE9R4ncTV1PYCj3upcmY8636RhxJS/fDwsJfQFE/OPBCS/U5rIsWz65pkkkDPgH+hEA==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-api": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "axe-core": "^4.0.1", "core-js": "^3.0.1", "global": "^4.3.2", "lodash": "^4.17.15", + "react": "^16.8.3", + "react-dom": "^16.8.3", "react-sizeme": "^2.5.2", "regenerator-runtime": "^0.13.3", "ts-dedent": "^1.1.1", "util-deprecate": "^1.0.2" + } + }, + "@storybook/addon-actions": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.1.0-alpha.17.tgz", + "integrity": "sha512-X9hTFxA4wdWhMW9yNmmgGHE9pearusKxdKmbe+jbVRsVuGPM8pk8fWCZfvFRn4mkps49ne7dBq8a6PeSDqs9rw==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/client-api": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "polished": "^3.4.4", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "react-inspector": "^5.0.1", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2", + "uuid": "^8.0.0" + } + }, + "@storybook/addon-backgrounds": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.1.0-alpha.17.tgz", + "integrity": "sha512-XTlfOqPOaNE9oBoIhK8oczwiT04/LSP/atzn9XaNiumHUQFLNWmIzcSMJi+zkIIaiCUjKkeYVJYOrna7TtHIuA==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/addon-controls": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.1.0-alpha.17.tgz", + "integrity": "sha512-1d0EgLRU4yTtLlsHDC8DsxQSvavBPN+RR7dQD1jTQCHRenkhngwzUQ6LYg3eZJMTJNi4XvCK5xnHamJnbxl4EA==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/client-api": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/node-logger": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "ts-dedent": "^1.1.1" + } + }, + "@storybook/addon-storysource": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.1.0-alpha.17.tgz", + "integrity": "sha512-SwiCwIM5HrzOhqT5+tlozOSPzEVOs1NPeegIGYCoUh+07EskyjpG8iiivdiAePhauQ2THxnPfvUClmAqTEZItw==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/router": "6.1.0-alpha.17", + "@storybook/source-loader": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "estraverse": "^4.2.0", + "loader-utils": "^2.0.0", + "prettier": "~2.0.5", + "prop-types": "^15.7.2", + "react": "^16.9.17", + "react-dom": "^16.8.3", + "react-syntax-highlighter": "^13.5.0", + "regenerator-runtime": "^0.13.3" }, "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { - "core-js": "^3.0.1" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", + "prettier": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "dev": true + } + } + }, + "@storybook/addon-viewport": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.1.0-alpha.17.tgz", + "integrity": "sha512-Nqf94KsJkxnEkVMVJmjB7ALsBj0verbjrqD+jxNd9QzsFcpC6uQ4j8KuoT5b7YDPqGDtm365QH6JL/fhET0XBQ==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "global": "^4.3.2", + "memoizerific": "^1.11.3", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "regenerator-runtime": "^0.13.3" + } + }, + "@storybook/addons": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.1.0-alpha.17.tgz", + "integrity": "sha512-6Q/DeZEAYZthCU6r2LLwAar+CM2kviqaoygnbaFiv/YP8vIyCJDbjJkG+L5VgEC2NDKLBWAwNSHYVXaQCYw+Aw==", + "dev": true, + "requires": { + "@storybook/api": "6.1.0-alpha.17", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/router": "6.1.0-alpha.17", + "@storybook/theming": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "global": "^4.3.2", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "regenerator-runtime": "^0.13.3" + } + }, + "@storybook/api": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.1.0-alpha.17.tgz", + "integrity": "sha512-AtzXScEo1UrvUj2F8PSkbS1AF8g2NQhoxw49bvcKCxpyQqRDmDaOlXJKCLlQSdpXC5DyokSnccxgoxtLXaFbRg==", + "dev": true, + "requires": { + "@reach/router": "^1.3.3", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/csf": "0.0.1", + "@storybook/router": "6.1.0-alpha.17", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.1.0-alpha.17", + "@types/reach__router": "^1.3.5", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "memoizerific": "^1.11.3", + "react": "^16.8.3", + "react-dom": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "store2": "^2.7.1", + "telejson": "^5.0.2", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", "dev": true, "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" + "core-js": "^3.6.5", + "find-up": "^4.1.0" } } } }, - "@storybook/addon-actions": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz", - "integrity": "sha512-9y3ve+3GK1TsxQ5pxDjhB7E/XJXY+WqcSNlOX8Mb+XbS6AAgpFbkZCw1q8CGzyEUclHsQ6UK2+lo+IRGs4TLpA==", + "@storybook/channel-postmessage": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.1.0-alpha.17.tgz", + "integrity": "sha512-1Q5kFHBCEs/AbnoIzRetSQ0nKE8KioKciaq/lHsjAqHPd83kRwReH1E5oQYi10XXIqgS5JXue6M2wIOqW1Mjrw==", "dev": true, "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "core-js": "^3.0.1", + "global": "^4.3.2", + "qs": "^6.6.0", + "telejson": "^5.0.2" + } + }, + "@storybook/channels": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.1.0-alpha.17.tgz", + "integrity": "sha512-k3MCTTtH3Lj32/z7OK+qpFdkUH52yv5fE0SeE15MoM3S342JsE+JKxZcqjnwzIg7CrNi4J9INpGCWR5GRYDKHA==", + "dev": true, + "requires": { + "core-js": "^3.0.1", + "ts-dedent": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.1.0-alpha.17.tgz", + "integrity": "sha512-THh5Zsy0Q8cixil7AJj2xzaxETfiVY0X9MubUlVX/6dKLXl3B5fQ+e+WLOILQSnU5wegDl4754TTc9LvuJa3rg==", + "dev": true, + "requires": { + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/channel-postmessage": "6.1.0-alpha.17", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/csf": "0.0.1", + "@types/qs": "^6.9.0", + "@types/webpack-env": "^1.15.2", "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", "global": "^4.3.2", "lodash": "^4.17.15", - "polished": "^3.4.4", - "prop-types": "^15.7.2", + "memoizerific": "^1.11.3", + "qs": "^6.6.0", "react": "^16.8.3", - "react-inspector": "^5.0.1", - "regenerator-runtime": "^0.13.3", + "react-dom": "^16.8.3", + "stable": "^0.1.8", + "store2": "^2.7.1", "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2", - "uuid": "^8.0.0" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - }, - "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", - "dev": true - } + "util-deprecate": "^1.0.2" } }, - "@storybook/addon-controls": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.0.21.tgz", - "integrity": "sha512-ksL+BqzWVTezY3u0AeSuQBZdiDzTImfLx1xjmLkPTeFgfVBzHRKN4sqIWHzy1zVCCVL0fAzZ8g3Sgk5iVNs3uw==", + "@storybook/client-logger": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.1.0-alpha.17.tgz", + "integrity": "sha512-oPthPkcU/2H2hdx4LxUc0k0lLC4NZCYwfPZainfPBEN/f1g/QsMUo/Ezq5MQZthL9VMnJIv8uN+BwT7OF/tPbw==", "dev": true, "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/client-api": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/node-logger": "6.0.21", - "@storybook/theming": "6.0.21", "core-js": "^3.0.1", + "global": "^4.3.2" + } + }, + "@storybook/components": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.1.0-alpha.17.tgz", + "integrity": "sha512-PnwBTCjLlBmQJwb/VJupFNPn06Shr0bcD5CA+smgKKEqr+Y8Wx72LXrz47YW9BOaQdOV+ztsADjtgflwc94X5A==", + "dev": true, + "requires": { + "@popperjs/core": "^2.4.4", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/csf": "0.0.1", + "@storybook/theming": "6.1.0-alpha.17", + "@types/overlayscrollbars": "^1.9.0", + "@types/react-color": "^3.0.1", + "@types/react-syntax-highlighter": "11.0.4", + "core-js": "^3.0.1", + "fast-deep-equal": "^3.1.1", + "global": "^4.3.2", + "lodash": "^4.17.15", + "markdown-to-jsx": "^6.11.4", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.10.2", + "polished": "^3.4.4", + "react": "^16.8.3", + "react-color": "^2.17.0", + "react-dom": "^16.8.3", + "react-popper-tooltip": "^3.1.0", + "react-syntax-highlighter": "^13.5.0", + "react-textarea-autosize": "^8.1.1", "ts-dedent": "^1.1.1" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/node-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.21.tgz", - "integrity": "sha512-KRBf+Fz7fgtwHdnYt70JTZbcYMZ1pQPtDyqbrFYCjwkbx5GPX5vMOozlxCIj9elseqPIsF8CKgHOW7cFHVyWYw==", - "dev": true, - "requires": { - "@types/npmlog": "^4.1.2", - "chalk": "^4.0.0", - "core-js": "^3.0.1", - "npmlog": "^4.1.2", - "pretty-hrtime": "^1.0.3" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, - "@storybook/addon-storysource": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.16.tgz", - "integrity": "sha512-9ZvWc7BLLmmEGkfdmMN5/iu5xXqpm46ucSml9K6m3L6w1y7opvELrhk4dzGd0ggSCrGfljaraJXUBeyAYYG+Pg==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.16", - "@storybook/api": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/components": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/source-loader": "6.0.16", - "@storybook/theming": "6.0.16", + "@storybook/core": { + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.1.0-alpha.17.tgz", + "integrity": "sha512-5sMPo0JRkNahoLYLwo+mRA7xs56XuUJ5bvj3djbruHUVCCn4+y1UdqgitlUzpm0EMUB1Ddbzx7LeBmCg7xHNuw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.5", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-decorators": "^7.10.5", + "@babel/plugin-proposal-export-default-from": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.11.1", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.5", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-template-literals": "^7.10.5", + "@babel/preset-env": "^7.11.5", + "@babel/preset-react": "^7.10.4", + "@babel/preset-typescript": "^7.10.4", + "@babel/register": "^7.11.5", + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/channel-postmessage": "6.1.0-alpha.17", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-api": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/csf": "0.0.1", + "@storybook/node-logger": "6.1.0-alpha.17", + "@storybook/router": "6.1.0-alpha.17", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.1.0-alpha.17", + "@storybook/ui": "6.1.0-alpha.17", + "@types/glob-base": "^0.3.0", + "@types/micromatch": "^4.0.1", + "@types/node-fetch": "^2.5.4", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "autoprefixer": "^9.7.2", + "babel-loader": "^8.0.6", + "babel-plugin-emotion": "^10.0.20", + "babel-plugin-macros": "^2.8.0", + "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5", + "better-opn": "^2.0.0", + "boxen": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^4.0.0", + "cli-table3": "0.6.0", + "commander": "^5.0.0", "core-js": "^3.0.1", - "estraverse": "^4.2.0", - "loader-utils": "^2.0.0", - "prettier": "^2.0.5", - "prop-types": "^15.7.2", - "react": "^16.9.17", - "react-syntax-highlighter": "^12.2.1", - "regenerator-runtime": "^0.13.3" + "css-loader": "^3.5.3", + "detect-port": "^1.3.0", + "dotenv-webpack": "^1.7.0", + "ejs": "^3.1.2", + "express": "^4.17.0", + "file-loader": "^6.0.0", + "file-system-cache": "^1.0.5", + "find-up": "^4.1.0", + "fork-ts-checker-webpack-plugin": "^4.1.4", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "glob-base": "^0.3.0", + "glob-promise": "^3.4.0", + "global": "^4.3.2", + "html-webpack-plugin": "^4.2.1", + "inquirer": "^7.0.0", + "interpret": "^2.0.0", + "ip": "^1.1.5", + "json5": "^2.1.1", + "lazy-universal-dotenv": "^3.0.1", + "micromatch": "^4.0.2", + "node-fetch": "^2.6.0", + "pkg-dir": "^4.2.0", + "pnp-webpack-plugin": "1.6.4", + "postcss-flexbugs-fixes": "^4.1.0", + "postcss-loader": "^3.0.0", + "pretty-hrtime": "^1.0.3", + "qs": "^6.6.0", + "raw-loader": "^4.0.1", + "react": "^16.8.3", + "react-dev-utils": "^10.0.0", + "react-dom": "^16.8.3", + "regenerator-runtime": "^0.13.3", + "resolve-from": "^5.0.0", + "serve-favicon": "^2.5.0", + "shelljs": "^0.8.3", + "stable": "^0.1.8", + "style-loader": "^1.2.1", + "terser-webpack-plugin": "^3.0.0", + "ts-dedent": "^1.1.1", + "unfetch": "^4.1.0", + "url-loader": "^4.0.0", + "util-deprecate": "^1.0.2", + "webpack": "^4.43.0", + "webpack-dev-middleware": "^3.7.0", + "webpack-filter-warnings-plugin": "^1.2.1", + "webpack-hot-middleware": "^2.25.0", + "webpack-virtual-modules": "^0.2.2" }, "dependencies": { - "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", - "dev": true, - "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", - "core-js": "^3.0.1", - "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" - } - }, - "@storybook/api": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.16.tgz", - "integrity": "sha512-RTC4BKmH5i8bJUQejOHEtjebVKtOaHkmEagI2HQRalsokBc1GLAf84EGrO2TaZiRrItAPL5zZQgEnKUblsGJGw==", + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.16", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.16", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" + "@babel/highlight": "^7.10.4" } }, - "@storybook/channels": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.16.tgz", - "integrity": "sha512-TsI4GA7lKD4L2w6IjODMRfnEOkmvEp4eJDgf3MKm7+sMbxwi1y1d6yrW1UQbnmwoNJWk60ArMN2yqDBV+5MNJQ==", + "@babel/core": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", "dev": true, "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.6", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" } }, - "@storybook/client-logger": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.16.tgz", - "integrity": "sha512-xM61Aewxqoo8500UxV7iPpfqwikITojiCX3+w8ZiCJ2NizSaXkis95TEFAeHqyozfNym5CqG+6v2NWvGYV3ncQ==", + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", "dev": true, "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" } }, - "@storybook/components": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.16.tgz", - "integrity": "sha512-zpYGt3tWiN0yT7V0VhBl2T5Mr0COiNnTQUGCpA9Gl3pUBmAov2jCVf1sUxsIcBcMMZmDRcfo6NbJ/LqCFeUg+Q==", + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "dev": true, "requires": { - "@storybook/client-logger": "6.0.16", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.16", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" + "@babel/types": "^7.10.4" } }, - "@storybook/core-events": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.16.tgz", - "integrity": "sha512-ib+58N4OY8AOix2qcBH9ICRmVHUocpGaGRVlIo79WxJrpnB/HNQ8pEaniD+OAavDRq1B7uJqFlMkTXCC0GoFiQ==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", "dev": true, "requires": { - "core-js": "^3.0.1" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" } }, - "@storybook/router": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.16.tgz", - "integrity": "sha512-zijPJ3CR4ytHE0v+pGdaWT3H+es+mLHRkR6hkqcD0ABT5HVfwMlmXJ9FkQGCVpnnNeBOz7+QKCdE13HMelQpqg==", + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" + "@babel/types": "^7.10.4" } }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", "dev": true, "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" + "@babel/types": "^7.11.0" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "highlight.js": { - "version": "9.15.10", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", - "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==", - "dev": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "@babel/types": "^7.10.4" } }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" } }, - "lowlight": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz", - "integrity": "sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w==", + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "fault": "^1.0.2", - "highlight.js": "~9.15.0" + "@babel/types": "^7.10.4" } }, - "prettier": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", - "integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, - "react-syntax-highlighter": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz", - "integrity": "sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "highlight.js": "~9.15.1", - "lowlight": "1.12.1", - "prismjs": "^1.8.4", - "refractor": "^2.4.1" - } - }, - "react-textarea-autosize": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.2.0.tgz", - "integrity": "sha512-grajUlVbkx6VdtSxCgzloUIphIZF5bKr21OYMceWPKkniy7H0mRAT/AXPrRtObAe+zUePnNlBwUc4ivVjUGIjw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.0.0", - "use-latest": "^1.0.0" - } - }, - "telejson": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", - "integrity": "sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw==", - "dev": true, - "requires": { - "@types/is-function": "^1.0.0", - "global": "^4.4.0", - "is-function": "^1.0.2", - "is-regex": "^1.1.1", - "is-symbol": "^1.0.3", - "isobject": "^4.0.0", - "lodash": "^4.17.19", - "memoizerific": "^1.11.3" - } - } - } - }, - "@storybook/addon-viewport": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.0.21.tgz", - "integrity": "sha512-FFUkhpZy7npRTaqX9SwMz5Yzo0/ivuApwr47xqblDEEyq7edWqo7YKsPnpAGeM9MlRpQNf6aU9huwDqKeRfKuQ==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/api": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/components": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/theming": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "prop-types": "^15.7.2", - "regenerator-runtime": "^0.13.3" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz", - "integrity": "sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.21", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - } - }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - } - } - }, - "@storybook/addons": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.21.tgz", - "integrity": "sha512-yDttNLc3vXqBxwK795ykgzTC6MpvuXDQuF4LHSlHZQe6wsMu1m3fljnbYdafJWdx6cNZwUblU3KYcR11PqhkPg==", - "dev": true, - "requires": { - "@storybook/api": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/router": "6.0.21", - "@storybook/theming": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" - }, - "dependencies": { - "@storybook/api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz", - "integrity": "sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw==", + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", "dev": true, "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.21", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.21", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" + "lodash": "^4.17.19" } }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", "dev": true, "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", "dev": true, "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "core-js": "^3.0.1" + "@babel/types": "^7.11.0" } }, - "@storybook/router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz", - "integrity": "sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - } - } - }, - "@storybook/api": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.16.tgz", - "integrity": "sha512-RTC4BKmH5i8bJUQejOHEtjebVKtOaHkmEagI2HQRalsokBc1GLAf84EGrO2TaZiRrItAPL5zZQgEnKUblsGJGw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.16", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.16", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" - } + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", "dev": true, "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } - } - } - }, - "@storybook/channel-postmessage": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.16.tgz", - "integrity": "sha512-66B4FH5R7k9i7LBhGsr/hYOxwE4UBM1JMPGV0rhAnFY8m91GiUWl4YWTRdbYIkeaZxf/0oT4sgPScqz44hnw6Q==", - "dev": true, - "requires": { - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.16.tgz", - "integrity": "sha512-TsI4GA7lKD4L2w6IjODMRfnEOkmvEp4eJDgf3MKm7+sMbxwi1y1d6yrW1UQbnmwoNJWk60ArMN2yqDBV+5MNJQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz", - "integrity": "sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA==", - "dev": true, - "requires": { - "@storybook/addons": "6.0.21", - "@storybook/channel-postmessage": "6.0.21", - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "@storybook/channel-postmessage": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz", - "integrity": "sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A==", + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@storybook/channels": "6.0.21", - "@storybook/client-logger": "6.0.21", - "@storybook/core-events": "6.0.21", - "core-js": "^3.0.1", - "global": "^4.3.2", - "qs": "^6.6.0", - "telejson": "^5.0.2" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "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", + "supports-color": "^5.3.0" + } + } } }, - "@storybook/channels": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz", - "integrity": "sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ==", + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", "dev": true, "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", "dev": true, "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@storybook/core-events": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz", - "integrity": "sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA==", + "@babel/preset-env": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz", + "integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==", "dev": true, "requires": { - "core-js": "^3.0.1" + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.5", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" } - } - } - }, - "@storybook/client-logger": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.16.tgz", - "integrity": "sha512-xM61Aewxqoo8500UxV7iPpfqwikITojiCX3+w8ZiCJ2NizSaXkis95TEFAeHqyozfNym5CqG+6v2NWvGYV3ncQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/components": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.0.16.tgz", - "integrity": "sha512-zpYGt3tWiN0yT7V0VhBl2T5Mr0COiNnTQUGCpA9Gl3pUBmAov2jCVf1sUxsIcBcMMZmDRcfo6NbJ/LqCFeUg+Q==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.0.16", - "@storybook/csf": "0.0.1", - "@storybook/theming": "6.0.16", - "@types/overlayscrollbars": "^1.9.0", - "@types/react-color": "^3.0.1", - "@types/react-syntax-highlighter": "11.0.4", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "markdown-to-jsx": "^6.11.4", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.10.2", - "polished": "^3.4.4", - "popper.js": "^1.14.7", - "react": "^16.8.3", - "react-color": "^2.17.0", - "react-dom": "^16.8.3", - "react-popper-tooltip": "^2.11.0", - "react-syntax-highlighter": "^12.2.1", - "react-textarea-autosize": "^8.1.1", - "ts-dedent": "^1.1.1" - }, - "dependencies": { - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } - } - } - }, - "@storybook/core": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.0.16.tgz", - "integrity": "sha512-dVgw03bB8rSMrYDw+v07Yiqyy4yas1olnXpytscWCWdbBuflSAQU+mtqcHMIH9YlhucIT2dYiErDDDNmqP+6tw==", - "dev": true, - "requires": { - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-proposal-export-default-from": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", - "@babel/plugin-proposal-object-rest-spread": "^7.9.6", - "@babel/plugin-proposal-optional-chaining": "^7.10.1", - "@babel/plugin-proposal-private-methods": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.5", - "@babel/plugin-transform-destructuring": "^7.9.5", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-parameters": "^7.9.5", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/preset-env": "^7.9.6", - "@babel/preset-react": "^7.8.3", - "@babel/preset-typescript": "^7.9.0", - "@babel/register": "^7.10.5", - "@storybook/addons": "6.0.16", - "@storybook/api": "6.0.16", - "@storybook/channel-postmessage": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-api": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/components": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/csf": "0.0.1", - "@storybook/node-logger": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.16", - "@storybook/ui": "6.0.16", - "@types/glob-base": "^0.3.0", - "@types/micromatch": "^4.0.1", - "@types/node-fetch": "^2.5.4", - "airbnb-js-shims": "^2.2.1", - "ansi-to-html": "^0.6.11", - "autoprefixer": "^9.7.2", - "babel-loader": "^8.0.6", - "babel-plugin-emotion": "^10.0.20", - "babel-plugin-macros": "^2.8.0", - "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5", - "better-opn": "^2.0.0", - "boxen": "^4.1.0", - "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^4.0.0", - "cli-table3": "0.6.0", - "commander": "^5.0.0", - "core-js": "^3.0.1", - "css-loader": "^3.5.3", - "detect-port": "^1.3.0", - "dotenv-webpack": "^1.7.0", - "ejs": "^3.1.2", - "express": "^4.17.0", - "file-loader": "^6.0.0", - "file-system-cache": "^1.0.5", - "find-up": "^4.1.0", - "fork-ts-checker-webpack-plugin": "^4.1.4", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "glob-base": "^0.3.0", - "glob-promise": "^3.4.0", - "global": "^4.3.2", - "html-webpack-plugin": "^4.2.1", - "inquirer": "^7.0.0", - "interpret": "^2.0.0", - "ip": "^1.1.5", - "json5": "^2.1.1", - "lazy-universal-dotenv": "^3.0.1", - "micromatch": "^4.0.2", - "node-fetch": "^2.6.0", - "pkg-dir": "^4.2.0", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "^4.1.0", - "postcss-loader": "^3.0.0", - "pretty-hrtime": "^1.0.3", - "qs": "^6.6.0", - "raw-loader": "^4.0.1", - "react-dev-utils": "^10.0.0", - "regenerator-runtime": "^0.13.3", - "resolve-from": "^5.0.0", - "serve-favicon": "^2.5.0", - "shelljs": "^0.8.3", - "stable": "^0.1.8", - "style-loader": "^1.2.1", - "terser-webpack-plugin": "^3.0.0", - "ts-dedent": "^1.1.1", - "unfetch": "^4.1.0", - "url-loader": "^4.0.0", - "util-deprecate": "^1.0.2", - "webpack": "^4.43.0", - "webpack-dev-middleware": "^3.7.0", - "webpack-hot-middleware": "^2.25.0", - "webpack-virtual-modules": "^0.2.2" - }, - "dependencies": { - "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", "dev": true, "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", - "core-js": "^3.0.1", - "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" } }, - "@storybook/client-api": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.16.tgz", - "integrity": "sha512-fFsp53lt9W2QHSumqdfFRbh+DI9fvd7li0GDxqLeNESXaUVw48yg8lQiyRNK+j5Pl4VBS3AqytLugJ+0MGm2cA==", + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { - "@storybook/addons": "6.0.16", - "@storybook/channel-postmessage": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/csf": "0.0.1", - "@types/qs": "^6.9.0", - "@types/webpack-env": "^1.15.2", - "core-js": "^3.0.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "qs": "^6.6.0", - "stable": "^0.1.8", - "store2": "^2.7.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } }, "@storybook/semver": { @@ -4191,36 +5817,6 @@ "find-up": "^4.1.0" } }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", - "dev": true, - "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", @@ -4229,6 +5825,27 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "color-convert": { @@ -4246,34 +5863,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -4281,29 +5876,14 @@ "dev": true, "requires": { "find-up": "^4.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true + } } } }, "@storybook/core-events": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.16.tgz", - "integrity": "sha512-ib+58N4OY8AOix2qcBH9ICRmVHUocpGaGRVlIo79WxJrpnB/HNQ8pEaniD+OAavDRq1B7uJqFlMkTXCC0GoFiQ==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.1.0-alpha.17.tgz", + "integrity": "sha512-1l8+Jxba9ZZgaZdKqjmH2RtBK7n1z1csg5oQUd9KKNHexL91bzQ38xNkADssp/DNKGElW+mSnS/FFVm730bLLg==", "dev": true, "requires": { "core-js": "^3.0.1" @@ -4319,9 +5899,9 @@ } }, "@storybook/node-logger": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.16.tgz", - "integrity": "sha512-mD6so/puFV5oByBkDp9rv2mV/WyGy21QdrwXpXdtLDKNgqPuJjHZuF1RA/+MmDK4P1CjvP1no2H5WDKg+aW4QQ==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.1.0-alpha.17.tgz", + "integrity": "sha512-9SvfDZ6jm8mBujurwBV1nTiTC0vgZvMzTpMO3JXwsaSFWTbUTcxBVaG+yLPSd54c8B4K1R0tShcD2e3a+It6mA==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -4373,9 +5953,9 @@ "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -4384,16 +5964,17 @@ } }, "@storybook/react": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.0.16.tgz", - "integrity": "sha512-cxnBwewx37rL1BjXo3TQFIvvCv9z26r3yuRRWh527/0QODfwGz8TT+/sJHeqBA5JIQzLwAHNqNJhLp6xzfr5Dw==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.1.0-alpha.17.tgz", + "integrity": "sha512-9l2qhsqNZVuHW6Q4jJU7ZjD0kLgOEaYXjjvhH5ng1iTXlcPb8BsgfGhdZ3/kSAb+5zQ9mC1YUbLtrNBn/jo/8Q==", "dev": true, "requires": { - "@babel/preset-flow": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@storybook/addons": "6.0.16", - "@storybook/core": "6.0.16", - "@storybook/node-logger": "6.0.16", + "@babel/preset-flow": "^7.10.4", + "@babel/preset-react": "^7.10.4", + "@pmmmwh/react-refresh-webpack-plugin": "^0.4.2", + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/core": "6.1.0-alpha.17", + "@storybook/node-logger": "6.1.0-alpha.17", "@storybook/semver": "^7.3.2", "@svgr/webpack": "^5.4.0", "@types/webpack-env": "^1.15.2", @@ -4404,30 +5985,16 @@ "global": "^4.3.2", "lodash": "^4.17.15", "prop-types": "^15.7.2", + "react": "^16.8.3", "react-dev-utils": "^10.0.0", - "react-docgen-typescript-plugin": "^0.5.2", + "react-docgen-typescript-plugin": "^0.6.0", + "react-dom": "^16.8.3", + "react-refresh": "^0.8.3", "regenerator-runtime": "^0.13.3", "ts-dedent": "^1.1.1", "webpack": "^4.43.0" }, "dependencies": { - "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", - "dev": true, - "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", - "core-js": "^3.0.1", - "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" - } - }, "@storybook/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", @@ -4437,33 +6004,13 @@ "core-js": "^3.6.5", "find-up": "^4.1.0" } - }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", - "dev": true, - "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" - } } } }, "@storybook/router": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.16.tgz", - "integrity": "sha512-zijPJ3CR4ytHE0v+pGdaWT3H+es+mLHRkR6hkqcD0ABT5HVfwMlmXJ9FkQGCVpnnNeBOz7+QKCdE13HMelQpqg==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.1.0-alpha.17.tgz", + "integrity": "sha512-oIsUAj0Pi7ujkOiC/xdPY0JfKfhWMnhUrMaXF0cFnXI+7WTXqlDMOQ9ih+eskje+GOVIuTkmu5xpe05uaeiMpQ==", "dev": true, "requires": { "@reach/router": "^1.3.3", @@ -4471,171 +6018,31 @@ "core-js": "^3.0.1", "global": "^4.3.2", "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - }, - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" + "qs": "^6.6.0", + "react": "^16.8.3", + "react-dom": "^16.8.3" } }, "@storybook/source-loader": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.0.16.tgz", - "integrity": "sha512-Ub6bU7o2JJUigzu9MSrFH1RD2SmpZZnym+WEidWI9A1gseKp1Rd4KDq36AqJo/oL3hAzoAOirrv3ZixIwXLFMg==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.1.0-alpha.17.tgz", + "integrity": "sha512-aU8TQZ9CEP2fbyRHDCXrdG5F9Gciwa4rKjXItrLWnJ1FV154hiMCsF4/iSpMN26bl6zwpmOCjpvyoJbWWccbxg==", "dev": true, "requires": { - "@storybook/addons": "6.0.16", - "@storybook/client-logger": "6.0.16", + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", "@storybook/csf": "0.0.1", "core-js": "^3.0.1", "estraverse": "^4.2.0", "global": "^4.3.2", "loader-utils": "^2.0.0", "lodash": "^4.17.15", - "prettier": "^2.0.5", + "prettier": "~2.0.5", + "react": "^16.8.3", + "react-dom": "^16.8.3", "regenerator-runtime": "^0.13.3" }, "dependencies": { - "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", - "dev": true, - "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", - "core-js": "^3.0.1", - "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" - } - }, - "@storybook/api": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.0.16.tgz", - "integrity": "sha512-RTC4BKmH5i8bJUQejOHEtjebVKtOaHkmEagI2HQRalsokBc1GLAf84EGrO2TaZiRrItAPL5zZQgEnKUblsGJGw==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/csf": "0.0.1", - "@storybook/router": "6.0.16", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.16", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "fast-deep-equal": "^3.1.1", - "global": "^4.3.2", - "lodash": "^4.17.15", - "memoizerific": "^1.11.3", - "react": "^16.8.3", - "regenerator-runtime": "^0.13.3", - "store2": "^2.7.1", - "telejson": "^5.0.2", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/channels": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.16.tgz", - "integrity": "sha512-TsI4GA7lKD4L2w6IjODMRfnEOkmvEp4eJDgf3MKm7+sMbxwi1y1d6yrW1UQbnmwoNJWk60ArMN2yqDBV+5MNJQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "ts-dedent": "^1.1.1", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.16.tgz", - "integrity": "sha512-xM61Aewxqoo8500UxV7iPpfqwikITojiCX3+w8ZiCJ2NizSaXkis95TEFAeHqyozfNym5CqG+6v2NWvGYV3ncQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - }, - "@storybook/core-events": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.16.tgz", - "integrity": "sha512-ib+58N4OY8AOix2qcBH9ICRmVHUocpGaGRVlIo79WxJrpnB/HNQ8pEaniD+OAavDRq1B7uJqFlMkTXCC0GoFiQ==", - "dev": true, - "requires": { - "core-js": "^3.0.1" - } - }, - "@storybook/router": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.0.16.tgz", - "integrity": "sha512-zijPJ3CR4ytHE0v+pGdaWT3H+es+mLHRkR6hkqcD0ABT5HVfwMlmXJ9FkQGCVpnnNeBOz7+QKCdE13HMelQpqg==", - "dev": true, - "requires": { - "@reach/router": "^1.3.3", - "@types/reach__router": "^1.3.5", - "core-js": "^3.0.1", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "qs": "^6.6.0" - } - }, - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" - } - }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", - "dev": true, - "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -4648,77 +6055,51 @@ } }, "prettier": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", - "integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", "dev": true - }, - "telejson": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", - "integrity": "sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw==", - "dev": true, - "requires": { - "@types/is-function": "^1.0.0", - "global": "^4.4.0", - "is-function": "^1.0.2", - "is-regex": "^1.1.1", - "is-symbol": "^1.0.3", - "isobject": "^4.0.0", - "lodash": "^4.17.19", - "memoizerific": "^1.11.3" - } } } }, "@storybook/theming": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.21.tgz", - "integrity": "sha512-n97DfB9kG6WrV1xBGDyeQibTrh8pBBCp3dSL3UTGH+KX3C2+4sm6QHlTgyekbi5FrbFEbnuZOKAS3YbLVONsRQ==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.1.0-alpha.17.tgz", + "integrity": "sha512-NuxSRt15zdGHUpBdeyO2iRiGn5nM32rFjxGHl79N+izqQZqxwAIkHWlbP8cHI1Q27DsebY16gecbKBepoP0vvQ==", "dev": true, "requires": { "@emotion/core": "^10.0.20", "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.21", + "@storybook/client-logger": "6.1.0-alpha.17", "core-js": "^3.0.1", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.19", "global": "^4.3.2", "memoizerific": "^1.11.3", "polished": "^3.4.4", + "react": "^16.8.3", + "react-dom": "^16.8.3", "resolve-from": "^5.0.0", "ts-dedent": "^1.1.1" - }, - "dependencies": { - "@storybook/client-logger": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz", - "integrity": "sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg==", - "dev": true, - "requires": { - "core-js": "^3.0.1", - "global": "^4.3.2" - } - } } }, "@storybook/ui": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.0.16.tgz", - "integrity": "sha512-4F21kwQVaMwgqoJmO+566j7MXmvPp+7jfWBMPAvyGsf5uIZ4q6V29h5mMLvTOFA4qHw0lHZk2k8V0g5gk/tjCA==", + "version": "6.1.0-alpha.17", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.1.0-alpha.17.tgz", + "integrity": "sha512-df4knI6vG576CId1dMsLyRJa4CBRbZdeJj8C2pQoNYfHXoItNtW1zm8D2pevOCUEBalui2u1iAMWP5+c2ZpX9g==", "dev": true, "requires": { "@emotion/core": "^10.0.20", - "@storybook/addons": "6.0.16", - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/components": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", + "@storybook/addons": "6.1.0-alpha.17", + "@storybook/api": "6.1.0-alpha.17", + "@storybook/channels": "6.1.0-alpha.17", + "@storybook/client-logger": "6.1.0-alpha.17", + "@storybook/components": "6.1.0-alpha.17", + "@storybook/core-events": "6.1.0-alpha.17", + "@storybook/router": "6.1.0-alpha.17", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.0.16", + "@storybook/theming": "6.1.0-alpha.17", "@types/markdown-to-jsx": "^6.11.0", "copy-to-clipboard": "^3.0.8", "core-js": "^3.0.1", @@ -4742,23 +6123,6 @@ "store2": "^2.7.1" }, "dependencies": { - "@storybook/addons": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.16.tgz", - "integrity": "sha512-jGMaOJYTM2yZeX1tI6whEn+4xpI1aAybZBrc+OD21CcGoQrbF/jplZMq7xKI0Y6vOMguuTGulpUNCezD3LbBjA==", - "dev": true, - "requires": { - "@storybook/api": "6.0.16", - "@storybook/channels": "6.0.16", - "@storybook/client-logger": "6.0.16", - "@storybook/core-events": "6.0.16", - "@storybook/router": "6.0.16", - "@storybook/theming": "6.0.16", - "core-js": "^3.0.1", - "global": "^4.3.2", - "regenerator-runtime": "^0.13.3" - } - }, "@storybook/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", @@ -4768,26 +6132,6 @@ "core-js": "^3.6.5", "find-up": "^4.1.0" } - }, - "@storybook/theming": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.16.tgz", - "integrity": "sha512-6D7oMEbeABYZdDY8e3i+O39XLrk6fvG3GBaSGp31BE30d269NcPkGPxMKY/nzc6MY30a+/LbBbM7b6gRKe6b4Q==", - "dev": true, - "requires": { - "@emotion/core": "^10.0.20", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.17", - "@storybook/client-logger": "6.0.16", - "core-js": "^3.0.1", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.19", - "global": "^4.3.2", - "memoizerific": "^1.11.3", - "polished": "^3.4.4", - "resolve-from": "^5.0.0", - "ts-dedent": "^1.1.1" - } } } }, @@ -5011,9 +6355,9 @@ "dev": true }, "@types/history": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.6.tgz", - "integrity": "sha512-GRTZLeLJ8ia00ZH8mxMO8t0aC9M1N9bN461Z2eaRurJo6Fpa+utgCwLzI4jQHcrdzuzp5WPN9jRwpsCQ1VhJ5w==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.8.tgz", + "integrity": "sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==", "dev": true }, "@types/hoist-non-react-statics": { @@ -5026,9 +6370,9 @@ } }, "@types/html-minifier-terser": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz", - "integrity": "sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==", "dev": true }, "@types/invariant": { @@ -5074,9 +6418,9 @@ "dev": true }, "@types/markdown-to-jsx": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.1.tgz", - "integrity": "sha512-fm/II24OzSx7J7CzXnHjEIf0d+s82bmdcokbyzY7PFMUnhyhnuGJgedt8R+yZgDn1mqhCLHmMjBPMsL8K4Xp9g==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.2.tgz", + "integrity": "sha512-ESuCu8Bk7jpTZ3YPdMW1+6wUj13F5N15vXfc7BuUAN0eCp0lrvVL9nzOTzoqvbRzXMciuqXr1KrHt3xQAhfwPA==", "dev": true, "requires": { "@types/react": "*" @@ -5156,15 +6500,15 @@ "dev": true }, "@types/qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ==", + "version": "6.9.5", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz", + "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==", "dev": true }, "@types/reach__router": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz", - "integrity": "sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.6.tgz", + "integrity": "sha512-RHYataCUPQnt+GHoASyRLq6wmZ0n8jWlBW8Lxcwd30NN6vQfbmTeoSDfkgxO0S1lEzArp8OFDsq5KIs7FygjtA==", "dev": true, "requires": { "@types/history": "*", @@ -5243,6 +6587,12 @@ } } }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "dev": true + }, "@types/webpack": { "version": "4.41.18", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.18.tgz", @@ -5266,9 +6616,9 @@ } }, "@types/webpack-env": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz", - "integrity": "sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.3.tgz", + "integrity": "sha512-5oiXqR7kwDGZ6+gmzIO2lTC+QsriNuQXZDWNYRV3l2XRN/zmPgnC21DLSx2D05zvD8vnXW6qUg7JnXZ4I6qLVQ==", "dev": true }, "@types/webpack-sources": { @@ -5509,6 +6859,12 @@ "ansi-regex": "^3.0.0" } }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, "webpack-log": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", @@ -5519,14 +6875,6 @@ "log-symbols": "^2.1.0", "loglevelnext": "^1.0.1", "uuid": "^3.1.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } } } @@ -6009,10 +7357,21 @@ "dev": true }, "ast-types": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", - "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", - "dev": true + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + } + } }, "ast-types-flow": { "version": "0.0.7", @@ -6079,15 +7438,9 @@ }, "dependencies": { "caniuse-lite": { - "version": "1.0.30001117", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001117.tgz", - "integrity": "sha512-4tY0Fatzdx59kYjQs+bNxUwZB03ZEBgVmJ1UkFPz/Q8OLiUUbjct2EdpnXj0fvFTPej2EkbPIG0w8BWsjAyk1Q==", - "dev": true - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "version": "1.0.30001137", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz", + "integrity": "sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw==", "dev": true } } @@ -6110,9 +7463,9 @@ "dev": true }, "axe-core": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", - "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.0.2.tgz", + "integrity": "sha512-arU1h31OGFu+LPrOLGZ7nB45v940NMDMEJeNmbutu57P+UFDVnkZg3e+J1I2HJRZ9hT7gO8J91dn/PMrAiKakA==", "dev": true }, "axobject-query": { @@ -6458,9 +7811,9 @@ "dev": true }, "babel-plugin-react-docgen": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz", - "integrity": "sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.0.tgz", + "integrity": "sha512-B3tjZwKskcia9TsqkND+9OTjl/F5A5OBvRJ6Ktg34CONoxm+kB3CJ52wk5TjbszX9gqCPcAuc0GgkhT0CLuT/Q==", "dev": true, "requires": { "lodash": "^4.17.15", @@ -6912,9 +8265,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -7489,9 +8842,9 @@ } }, "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, "cli-cursor": { @@ -7722,21 +9075,6 @@ "shallow-clone": "^0.1.2" }, "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -7796,6 +9134,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -8141,15 +9485,33 @@ "semver": "^6.3.0" }, "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, "semver": { @@ -8354,20 +9716,6 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -8641,9 +9989,9 @@ }, "dependencies": { "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", "dev": true }, "entities": { @@ -9043,6 +10391,15 @@ "is-arrayish": "^0.2.1" } }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", @@ -10281,15 +11638,33 @@ } }, "file-loader": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", - "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.0.tgz", + "integrity": "sha512-26qPdHyTsArQ6gU4P1HJbAbnFTyT2r0pG7czh1GFAd9TZbj0n94wWbupgixZH/ET/meqi2/5+F7DhW4OAXD+Lg==", "dev": true, "requires": { "loader-utils": "^2.0.0", - "schema-utils": "^2.6.5" + "schema-utils": "^2.7.1" }, "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -10302,14 +11677,14 @@ } }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } } } @@ -10337,12 +11712,6 @@ "path-is-absolute": "^1.0.0", "rimraf": "^2.2.8" } - }, - "ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", - "dev": true } } }, @@ -10423,40 +11792,14 @@ } }, "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-root": { @@ -10706,6 +12049,30 @@ "readable-stream": "^2.0.0" } }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "dependencies": { + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + } + } + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -11213,9 +12580,9 @@ "dev": true }, "highlight.js": { - "version": "9.15.10", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", - "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.2.0.tgz", + "integrity": "sha512-OryzPiqqNCfO/wtFo619W+nPYALM6u7iCQkum4bqRmmlcTikOkmlL06i009QelynBPAlNByTQU6cBB2cOBQtCw==", "dev": true }, "history": { @@ -11323,9 +12690,9 @@ } }, "html-webpack-plugin": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz", - "integrity": "sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", + "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", "dev": true, "requires": { "@types/html-minifier-terser": "^5.0.0", @@ -12030,6 +13397,12 @@ "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", "dev": true }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -12086,6 +13459,23 @@ "path-is-inside": "^1.0.2" } }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "is-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", @@ -12931,9 +14321,9 @@ "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -13697,13 +15087,13 @@ } }, "lowlight": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz", - "integrity": "sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.15.0.tgz", + "integrity": "sha512-GhG/R+2zt5Wg8kCfOhapH8wDdJSHSIvdDW/DOPXCeResVqgHYLnOHBp6g9DoUIPVIyBpvQYCG4SV7XeelYFpyA==", "dev": true, "requires": { - "fault": "^1.0.2", - "highlight.js": "~9.15.0" + "fault": "^1.0.0", + "highlight.js": "~10.2.0" } }, "lru-cache": { @@ -14213,6 +15603,15 @@ "to-regex": "^3.0.1" } }, + "native-url": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz", + "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==", + "dev": true, + "requires": { + "querystring": "^0.2.0" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -14263,9 +15662,9 @@ } }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true }, "node-int64": { @@ -14464,16 +15863,6 @@ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -14605,9 +15994,9 @@ } }, "open": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", - "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", "dev": true, "requires": { "is-docker": "^2.0.0", @@ -14773,9 +16162,9 @@ } }, "parse-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", - "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "requires": { "character-entities": "^1.0.0", @@ -15031,12 +16420,6 @@ "@babel/runtime": "^7.9.2" } }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -15044,9 +16427,9 @@ "dev": true }, "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15081,9 +16464,9 @@ } }, "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", "dev": true, "requires": { "cosmiconfig": "^5.0.0", @@ -15184,14 +16567,15 @@ } }, "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", "dev": true, "requires": { "cssesc": "^3.0.0", "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" } }, "postcss-value-parser": { @@ -15258,9 +16642,9 @@ "dev": true }, "prismjs": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz", - "integrity": "sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz", + "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==", "dev": true, "requires": { "clipboard": "^2.0.0" @@ -15465,6 +16849,12 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "ramda": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -15512,6 +16902,24 @@ "schema-utils": "^2.6.5" }, "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -15524,14 +16932,14 @@ } }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } } } @@ -15874,9 +17282,9 @@ } }, "react-docgen-typescript": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.20.2.tgz", - "integrity": "sha512-tW1cZErh4AxDJIFiTxny9AfMeSwm+NI7BsXXuAXPvoIxToglFWvmJWsJF6sYhSA3zNu3zhFOIMdRMXTzQAyCpA==", + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.20.5.tgz", + "integrity": "sha512-AbLGMtn76bn7SYBJSSaKJrZ0lgNRRR3qL60PucM5M4v/AXyC8221cKBXW5Pyt9TfDRfe+LDnPNlg7TibxX0ovA==", "dev": true }, "react-docgen-typescript-loader": { @@ -15891,9 +17299,9 @@ } }, "react-docgen-typescript-plugin": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-0.5.2.tgz", - "integrity": "sha512-NQfWyWLmzUnedkiN2nPDb6Nkm68ik6fqbC3UvgjqYSeZsbKijXUA4bmV6aU7qICOXdop9PevPdjEgJuAN0nNVQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-0.6.0.tgz", + "integrity": "sha512-RWAo/uC3+5BcOstK+YTZquIWq2EunGFVVxiU1cnJ3+XjylwVKlJ0nZ140IsngxGIH9H5KyFCObGJwKxOTpNCdw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -15957,16 +17365,27 @@ } }, "react-helmet-async": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.6.tgz", - "integrity": "sha512-t+bhAI4NgxfEv8ez4r77cLfR4O4Z55E/FH2DT+uiE4U7yfWgAk7OAOi7IxHxuYEVLI26bqjZvlVCkpC5/5AoNA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.7.tgz", + "integrity": "sha512-By90p5uxAriGukbyejq2poK41DwTxpNWOpOjN8mIyX/BKrCd3+sXZ5pHUZXjHyjR5OYS7PGsOD9dbM61YxfFmA==", "dev": true, "requires": { - "@babel/runtime": "^7.9.2", + "@babel/runtime": "^7.11.2", "invariant": "^2.2.4", "prop-types": "^15.7.2", - "react-fast-compare": "^3.0.1", + "react-fast-compare": "^3.2.0", "shallowequal": "^1.1.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } } }, "react-hook-form": { @@ -16000,14 +17419,14 @@ } }, "react-inspector": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz", - "integrity": "sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.0.tgz", + "integrity": "sha512-JAwswiengIcxi4X/Ssb8nf6suOuQsyit8Fxo04+iPKTnPNY3XIOuagjMZSzpJDDKkYcc/ARlySOYZZv626WUvA==", "dev": true, "requires": { - "@babel/runtime": "^7.8.7", - "is-dom": "^1.1.0", - "prop-types": "^15.6.1" + "@babel/runtime": "^7.0.0", + "is-dom": "^1.0.0", + "prop-types": "^15.0.0" } }, "react-intl": { @@ -16050,33 +17469,44 @@ "tlds": "^1.199.0" } }, + "react-popper": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.3.tgz", + "integrity": "sha512-mOEiMNT1249js0jJvkrOjyHsGvqcJd3aGW/agkiMoZk3bZ1fXN1wQszIQSjHIai48fE67+zwF8Cs+C4fWqlfjw==", + "dev": true, + "requires": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + } + }, "react-popper-tooltip": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz", - "integrity": "sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.0.tgz", + "integrity": "sha512-uoLUGtQSQyf4DucJQWXdZVAf3u/FFAHxox74y2GWP2Fy6D0lT9YL/7QIRSGsMI5USCHsS7HuHD4okVGAhctIGg==", "dev": true, "requires": { - "@babel/runtime": "^7.9.2", - "react-popper": "^1.3.7" + "@babel/runtime": "^7.10.4", + "@popperjs/core": "^2.4.4", + "react-popper": "^2.2.3" }, "dependencies": { - "react-popper": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", - "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", "dev": true, "requires": { - "@babel/runtime": "^7.1.2", - "create-react-context": "^0.3.0", - "deep-equal": "^1.1.1", - "popper.js": "^1.14.4", - "prop-types": "^15.6.1", - "typed-styles": "^0.0.7", - "warning": "^4.0.2" + "regenerator-runtime": "^0.13.4" } } } }, + "react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", + "dev": true + }, "react-router": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", @@ -16145,16 +17575,16 @@ } }, "react-syntax-highlighter": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz", - "integrity": "sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA==", + "version": "13.5.3", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz", + "integrity": "sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==", "dev": true, "requires": { "@babel/runtime": "^7.3.1", - "highlight.js": "~9.15.1", - "lowlight": "1.12.1", - "prismjs": "^1.8.4", - "refractor": "^2.4.1" + "highlight.js": "^10.1.1", + "lowlight": "^1.14.0", + "prismjs": "^1.21.0", + "refractor": "^3.1.0" } }, "react-textarea-autosize": { @@ -16341,25 +17771,14 @@ } }, "refractor": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz", - "integrity": "sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.1.0.tgz", + "integrity": "sha512-bN8GvY6hpeXfC4SzWmYNQGLLF2ZakRDNBkgCL0vvl5hnpMrnyURk8Mv61v6pzn4/RBHzSWLp44SzMmVHqMGNww==", "dev": true, "requires": { "hastscript": "^5.0.0", - "parse-entities": "^1.1.2", - "prismjs": "~1.17.0" - }, - "dependencies": { - "prismjs": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", - "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==", - "dev": true, - "requires": { - "clipboard": "^2.0.0" - } - } + "parse-entities": "^2.0.0", + "prismjs": "~1.21.0" } }, "regenerate": { @@ -17095,13 +18514,44 @@ "dev": true }, "side-channel": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", - "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", + "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", "dev": true, "requires": { - "es-abstract": "^1.17.0-next.1", - "object-inspect": "^1.7.0" + "es-abstract": "^1.18.0-next.0", + "object-inspect": "^1.8.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", + "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "signal-exit": { @@ -17479,6 +18929,12 @@ "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", "dev": true }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -17513,9 +18969,9 @@ "dev": true }, "store2": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.11.2.tgz", - "integrity": "sha512-TQMKs+C6n9idtzLpxluikmDCYiDJrTbbIGn9LFxMg0BVTu+8JZKSlXTWYRpOFKlfKD5HlDWLVpJJyNGZ2e9l1A==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.12.0.tgz", + "integrity": "sha512-7t+/wpKLanLzSnQPX8WAcuLCCeuSHoWdQuh9SB3xD0kNOM38DNf+0Oa+wmvxmYueRzkmh6IcdKFtvTa+ecgPDw==", "dev": true }, "stream-browserify": { @@ -17727,6 +19183,24 @@ "schema-utils": "^2.6.6" }, "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -17739,14 +19213,14 @@ } }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } } } @@ -17976,6 +19450,40 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "telejson": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz", @@ -18051,6 +19559,24 @@ "webpack-sources": "^1.4.3" }, "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "cacache": { "version": "15.0.5", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", @@ -18082,6 +19608,17 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -18091,6 +19628,15 @@ "yallist": "^4.0.0" } }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -18106,6 +19652,15 @@ "p-try": "^2.0.0" } }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -18116,16 +19671,22 @@ } }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -18141,20 +19702,6 @@ "minipass": "^3.1.1" } }, - "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -18237,9 +19784,9 @@ "dev": true }, "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", "dev": true }, "tlds": { @@ -18369,9 +19916,9 @@ "dev": true }, "ts-dedent": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz", - "integrity": "sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.2.0.tgz", + "integrity": "sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA==", "dev": true }, "ts-essentials": { @@ -18444,12 +19991,6 @@ "mime-types": "~2.1.24" } }, - "typed-styles": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", - "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==", - "dev": true - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -18537,6 +20078,12 @@ "imurmurhash": "^0.1.4" } }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -18646,6 +20193,24 @@ "schema-utils": "^2.6.5" }, "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -18658,14 +20223,14 @@ } }, "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } } } @@ -18748,7 +20313,18 @@ "uuid": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + }, + "uuidv4": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.3.tgz", + "integrity": "sha512-4hxGisl76Y6A7nkadg5gMrPGVYVGLmJ3fZHVvmnXsy+8DMA7n7YV/4Y72Fw38CCwpZpyPgOaa/4YxhkCYwyNNQ==", + "dev": true, + "requires": { + "@types/uuid": "8.3.0", + "uuid": "8.3.0" + } }, "v8-compile-cache": { "version": "2.1.1", @@ -19197,6 +20773,12 @@ } } }, + "webpack-filter-warnings-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz", + "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==", + "dev": true + }, "webpack-hot-middleware": { "version": "2.25.0", "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", diff --git a/package.json b/package.json index 25f0b2482..0716ee333 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,6 @@ "test:watch": "jest --watch", "storybook": "start-storybook -p 6006", "storybook:build": "build-storybook --output-dir ./storybook-build", - "generate": "node ./util/create-component", - "version:publish": "./version-publish.sh", "preversion": "npm run test", "postversion": "git push && git push --tags", "lint": "eslint .", @@ -33,15 +31,16 @@ "@fortawesome/pro-light-svg-icons": "^5.13.1", "@fortawesome/pro-regular-svg-icons": "^5.13.1", "@fortawesome/pro-solid-svg-icons": "^5.13.1", - "@storybook/addon-a11y": "^6.0.21", - "@storybook/addon-actions": "^6.0.21", - "@storybook/addon-controls": "^6.0.21", - "@storybook/addon-storysource": "^6.0.16", - "@storybook/addon-viewport": "^6.0.21", - "@storybook/addons": "^6.0.21", - "@storybook/client-api": "^6.0.21", - "@storybook/react": "^6.0.16", - "@storybook/theming": "^6.0.21", + "@storybook/addon-a11y": "^6.1.0-alpha.17", + "@storybook/addon-actions": "^6.1.0-alpha.17", + "@storybook/addon-backgrounds": "^6.1.0-alpha.17", + "@storybook/addon-controls": "^6.1.0-alpha.17", + "@storybook/addon-storysource": "^6.1.0-alpha.17", + "@storybook/addon-viewport": "^6.1.0-alpha.17", + "@storybook/addons": "^6.1.0-alpha.17", + "@storybook/client-api": "^6.1.0-alpha.17", + "@storybook/react": "^6.1.0-alpha.17", + "@storybook/theming": "^6.1.0-alpha.17", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", diff --git a/src/components/Switch/Switch.stories.js b/src/components/Switch/Switch.stories.js deleted file mode 100644 index 7dc4c6a32..000000000 --- a/src/components/Switch/Switch.stories.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { useArgs } from '@storybook/client-api'; -import Switch from '.'; - -export default { - title: 'Components/Switch', - component: Switch, - parameters: { layout: 'centered' }, -}; - -export const Default = args => { - const [{ value }, updateArgs] = useArgs(); - const toggleValue = () => updateArgs({ value: !value }); - return ; -}; - -Default.args = { - value: false, -}; - -Default.argTypes = { - value: { control: { type: 'boolean' } }, -}; - -export const WithActions = args => ; - -WithActions.argTypes = { - onChange: { action: 'Changed!' }, -}; diff --git a/src/components/Switch/index.js b/src/components/Switch/index.js deleted file mode 100644 index c5e4dae1e..000000000 --- a/src/components/Switch/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import { SwitchLabel, SwitchInput, SwitchSlider } from './styles'; - -const Switch = ({ value, onChange }) => ( - - - - -); - -export default Switch; diff --git a/src/components/Avatar/Avatar.stories.js b/src/core/components/Avatar/Avatar.stories.js similarity index 100% rename from src/components/Avatar/Avatar.stories.js rename to src/core/components/Avatar/Avatar.stories.js diff --git a/src/components/Avatar/index.js b/src/core/components/Avatar/index.js similarity index 84% rename from src/components/Avatar/index.js rename to src/core/components/Avatar/index.js index ec02f2c53..4d90c6a42 100644 --- a/src/components/Avatar/index.js +++ b/src/core/components/Avatar/index.js @@ -1,8 +1,8 @@ import React, { useState, useEffect, useCallback } from 'react'; import cx from 'classnames'; -import { customizableComponent } from 'hocs/customization'; -import withSize from 'hocs/withSize'; +import { customizableComponent } from '~/core/hocs/customization'; +import withSize from '~/core/hocs/withSize'; import { AvatarContainer, Img } from './styles'; diff --git a/src/components/Avatar/styles.js b/src/core/components/Avatar/styles.js similarity index 82% rename from src/components/Avatar/styles.js rename to src/core/components/Avatar/styles.js index 8ce3deaaa..213d342bd 100644 --- a/src/components/Avatar/styles.js +++ b/src/core/components/Avatar/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; -import { SIZES } from 'hocs/withSize'; -import { backgroundImage } from 'icons/User'; +import { SIZES } from '~/core/hocs/withSize'; +import { backgroundImage } from '~/icons/User'; export const AvatarContainer = styled.div` flex-shrink: 0; diff --git a/src/components/BackLink/index.js b/src/core/components/BackLink/index.js similarity index 100% rename from src/components/BackLink/index.js rename to src/core/components/BackLink/index.js diff --git a/src/components/BackLink/styles.js b/src/core/components/BackLink/styles.js similarity index 100% rename from src/components/BackLink/styles.js rename to src/core/components/BackLink/styles.js diff --git a/src/components/Button/Button.stories.js b/src/core/components/Button/Button.stories.js similarity index 100% rename from src/components/Button/Button.stories.js rename to src/core/components/Button/Button.stories.js diff --git a/src/components/Button/index.js b/src/core/components/Button/index.js similarity index 100% rename from src/components/Button/index.js rename to src/core/components/Button/index.js diff --git a/src/components/Button/styles.js b/src/core/components/Button/styles.js similarity index 100% rename from src/components/Button/styles.js rename to src/core/components/Button/styles.js diff --git a/src/components/ConditionalRender/index.js b/src/core/components/ConditionalRender/index.js similarity index 100% rename from src/components/ConditionalRender/index.js rename to src/core/components/ConditionalRender/index.js diff --git a/src/components/Confirm/index.js b/src/core/components/Confirm/index.js similarity index 100% rename from src/components/Confirm/index.js rename to src/core/components/Confirm/index.js diff --git a/src/components/Confirm/styles.js b/src/core/components/Confirm/styles.js similarity index 81% rename from src/components/Confirm/styles.js rename to src/core/components/Confirm/styles.js index cbe1477cb..c1c605ceb 100644 --- a/src/components/Confirm/styles.js +++ b/src/core/components/Confirm/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import Modal from 'components/Modal'; -import Button, { PrimaryButton } from 'components/Button'; +import Modal from '~/core/components/Modal'; +import Button, { PrimaryButton } from '~/core/components/Button'; export const ConfirmModal = styled(Modal)` max-width: 360px; diff --git a/src/components/Files/File.js b/src/core/components/Files/File.js similarity index 89% rename from src/components/Files/File.js rename to src/core/components/Files/File.js index dd5f291ad..317ddf4c0 100644 --- a/src/components/Files/File.js +++ b/src/core/components/Files/File.js @@ -1,11 +1,11 @@ import React, { useState, useEffect } from 'react'; import filesize from 'filesize'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import FileIcon from './FileIcon'; import { FileContainer, Content, FileName, FileSize, RemoveIcon } from './styles'; -import { ProgressBar } from '../ProgressBar'; +import { ProgressBar } from '~/core/components/ProgressBar'; const File = ({ file, onRemove, setFileLoaded }) => { // simulate progress animation diff --git a/src/components/Files/FileIcon.js b/src/core/components/Files/FileIcon.js similarity index 100% rename from src/components/Files/FileIcon.js rename to src/core/components/Files/FileIcon.js diff --git a/src/components/Files/icons/audio.svg b/src/core/components/Files/icons/audio.svg similarity index 100% rename from src/components/Files/icons/audio.svg rename to src/core/components/Files/icons/audio.svg diff --git a/src/components/Files/icons/avi.svg b/src/core/components/Files/icons/avi.svg similarity index 100% rename from src/components/Files/icons/avi.svg rename to src/core/components/Files/icons/avi.svg diff --git a/src/components/Files/icons/csv.svg b/src/core/components/Files/icons/csv.svg similarity index 100% rename from src/components/Files/icons/csv.svg rename to src/core/components/Files/icons/csv.svg diff --git a/src/components/Files/icons/default.svg b/src/core/components/Files/icons/default.svg similarity index 100% rename from src/components/Files/icons/default.svg rename to src/core/components/Files/icons/default.svg diff --git a/src/components/Files/icons/doc.svg b/src/core/components/Files/icons/doc.svg similarity index 100% rename from src/components/Files/icons/doc.svg rename to src/core/components/Files/icons/doc.svg diff --git a/src/components/Files/icons/exe.svg b/src/core/components/Files/icons/exe.svg similarity index 100% rename from src/components/Files/icons/exe.svg rename to src/core/components/Files/icons/exe.svg diff --git a/src/components/Files/icons/html.svg b/src/core/components/Files/icons/html.svg similarity index 100% rename from src/components/Files/icons/html.svg rename to src/core/components/Files/icons/html.svg diff --git a/src/components/Files/icons/img.svg b/src/core/components/Files/icons/img.svg similarity index 100% rename from src/components/Files/icons/img.svg rename to src/core/components/Files/icons/img.svg diff --git a/src/components/Files/icons/mov.svg b/src/core/components/Files/icons/mov.svg similarity index 100% rename from src/components/Files/icons/mov.svg rename to src/core/components/Files/icons/mov.svg diff --git a/src/components/Files/icons/mp3.svg b/src/core/components/Files/icons/mp3.svg similarity index 100% rename from src/components/Files/icons/mp3.svg rename to src/core/components/Files/icons/mp3.svg diff --git a/src/components/Files/icons/mp4.svg b/src/core/components/Files/icons/mp4.svg similarity index 100% rename from src/components/Files/icons/mp4.svg rename to src/core/components/Files/icons/mp4.svg diff --git a/src/components/Files/icons/mpeg.svg b/src/core/components/Files/icons/mpeg.svg similarity index 100% rename from src/components/Files/icons/mpeg.svg rename to src/core/components/Files/icons/mpeg.svg diff --git a/src/components/Files/icons/pdf.svg b/src/core/components/Files/icons/pdf.svg similarity index 100% rename from src/components/Files/icons/pdf.svg rename to src/core/components/Files/icons/pdf.svg diff --git a/src/components/Files/icons/ppt.svg b/src/core/components/Files/icons/ppt.svg similarity index 100% rename from src/components/Files/icons/ppt.svg rename to src/core/components/Files/icons/ppt.svg diff --git a/src/components/Files/icons/ppx.svg b/src/core/components/Files/icons/ppx.svg similarity index 100% rename from src/components/Files/icons/ppx.svg rename to src/core/components/Files/icons/ppx.svg diff --git a/src/components/Files/icons/rar.svg b/src/core/components/Files/icons/rar.svg similarity index 100% rename from src/components/Files/icons/rar.svg rename to src/core/components/Files/icons/rar.svg diff --git a/src/components/Files/icons/txt.svg b/src/core/components/Files/icons/txt.svg similarity index 100% rename from src/components/Files/icons/txt.svg rename to src/core/components/Files/icons/txt.svg diff --git a/src/components/Files/icons/xls.svg b/src/core/components/Files/icons/xls.svg similarity index 100% rename from src/components/Files/icons/xls.svg rename to src/core/components/Files/icons/xls.svg diff --git a/src/components/Files/icons/zip.svg b/src/core/components/Files/icons/zip.svg similarity index 100% rename from src/components/Files/icons/zip.svg rename to src/core/components/Files/icons/zip.svg diff --git a/src/components/Files/index.js b/src/core/components/Files/index.js similarity index 92% rename from src/components/Files/index.js rename to src/core/components/Files/index.js index 64f0cd615..1cc02b681 100644 --- a/src/components/Files/index.js +++ b/src/core/components/Files/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import File from './File'; diff --git a/src/components/Files/styles.js b/src/core/components/Files/styles.js similarity index 95% rename from src/components/Files/styles.js rename to src/core/components/Files/styles.js index d50b7a152..1a4f36cc2 100644 --- a/src/components/Files/styles.js +++ b/src/core/components/Files/styles.js @@ -3,7 +3,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton } from 'components/Button'; +import { SecondaryButton } from '~/core/components/Button'; export const RemoveIcon = styled(FaIcon).attrs({ icon: faTimes })` padding: 0 10px; diff --git a/src/components/Layout/Layout.stories.js b/src/core/components/Layout/Layout.stories.js similarity index 86% rename from src/components/Layout/Layout.stories.js rename to src/core/components/Layout/Layout.stories.js index 5714c73da..4e6c04dee 100644 --- a/src/components/Layout/Layout.stories.js +++ b/src/core/components/Layout/Layout.stories.js @@ -1,5 +1,5 @@ import React from 'react'; -import SideMenu from 'components/SideMenu'; +import SideMenu from '~/core/components/SideMenu'; import Layout from '.'; export default { diff --git a/src/components/Layout/index.js b/src/core/components/Layout/index.js similarity index 80% rename from src/components/Layout/index.js rename to src/core/components/Layout/index.js index 129d30ac5..ca93d0a10 100644 --- a/src/components/Layout/index.js +++ b/src/core/components/Layout/index.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import Avatar from 'components/Avatar'; -import Popover from 'components/Popover'; -import Menu, { MenuItem } from 'components/Menu'; +import Popover from '~/core/components/Popover'; +import Menu, { MenuItem } from '~/core/components/Menu'; +import { customizableComponent } from '~/core/hocs/customization'; +import Avatar from '~/core/components/Avatar'; import { LayoutHeader, Username, DropdownIcon, DropDownContainer } from './styles'; const Layout = () => { diff --git a/src/components/Layout/styles.js b/src/core/components/Layout/styles.js similarity index 100% rename from src/components/Layout/styles.js rename to src/core/components/Layout/styles.js diff --git a/src/components/Linkify/index.js b/src/core/components/Linkify/index.js similarity index 100% rename from src/components/Linkify/index.js rename to src/core/components/Linkify/index.js diff --git a/src/components/Linkify/styles.js b/src/core/components/Linkify/styles.js similarity index 100% rename from src/components/Linkify/styles.js rename to src/core/components/Linkify/styles.js diff --git a/src/components/Menu/index.js b/src/core/components/Menu/index.js similarity index 100% rename from src/components/Menu/index.js rename to src/core/components/Menu/index.js diff --git a/src/components/Menu/styles.js b/src/core/components/Menu/styles.js similarity index 100% rename from src/components/Menu/styles.js rename to src/core/components/Menu/styles.js diff --git a/src/components/Modal/index.js b/src/core/components/Modal/index.js similarity index 100% rename from src/components/Modal/index.js rename to src/core/components/Modal/index.js diff --git a/src/components/Modal/styles.js b/src/core/components/Modal/styles.js similarity index 100% rename from src/components/Modal/styles.js rename to src/core/components/Modal/styles.js diff --git a/src/components/Notification/index.js b/src/core/components/Notification/index.js similarity index 100% rename from src/components/Notification/index.js rename to src/core/components/Notification/index.js diff --git a/src/components/Notification/styles.js b/src/core/components/Notification/styles.js similarity index 100% rename from src/components/Notification/styles.js rename to src/core/components/Notification/styles.js diff --git a/src/components/Options/index.js b/src/core/components/Options/index.js similarity index 89% rename from src/components/Options/index.js rename to src/core/components/Options/index.js index 9d590e866..9f38ee5f1 100644 --- a/src/components/Options/index.js +++ b/src/core/components/Options/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; -import Popover from 'components/Popover'; -import Menu, { MenuItem } from 'components/Menu'; +import Popover from '~/core/components/Popover'; +import Menu, { MenuItem } from '~/core/components/Menu'; import { OptionsIcon, OptionsButton } from './styles'; diff --git a/src/components/Options/styles.js b/src/core/components/Options/styles.js similarity index 87% rename from src/components/Options/styles.js rename to src/core/components/Options/styles.js index 21752b7cf..04888c066 100644 --- a/src/components/Options/styles.js +++ b/src/core/components/Options/styles.js @@ -2,7 +2,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faEllipsisH } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton } from 'components/Button'; +import { SecondaryButton } from '~/core/components/Button'; export const OptionsIcon = styled(FaIcon).attrs({ icon: faEllipsisH })` font-size: 16px; diff --git a/src/components/Popover/index.js b/src/core/components/Popover/index.js similarity index 100% rename from src/components/Popover/index.js rename to src/core/components/Popover/index.js diff --git a/src/components/Popover/styles.js b/src/core/components/Popover/styles.js similarity index 100% rename from src/components/Popover/styles.js rename to src/core/components/Popover/styles.js diff --git a/src/components/ProgressBar/index.js b/src/core/components/ProgressBar/index.js similarity index 100% rename from src/components/ProgressBar/index.js rename to src/core/components/ProgressBar/index.js diff --git a/src/components/ProgressBar/styles.js b/src/core/components/ProgressBar/styles.js similarity index 100% rename from src/components/ProgressBar/styles.js rename to src/core/components/ProgressBar/styles.js diff --git a/src/components/SideMenu/MenuTab.js b/src/core/components/SideMenu/MenuTab.js similarity index 85% rename from src/components/SideMenu/MenuTab.js rename to src/core/components/SideMenu/MenuTab.js index 406c4297a..33eb328bc 100644 --- a/src/components/SideMenu/MenuTab.js +++ b/src/core/components/SideMenu/MenuTab.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { MenuTabContainer, MenuName } from './styles'; const MenuTab = ({ icon, name, className, onClick, active }) => { diff --git a/src/components/SideMenu/icons/community.svg b/src/core/components/SideMenu/icons/community.svg similarity index 100% rename from src/components/SideMenu/icons/community.svg rename to src/core/components/SideMenu/icons/community.svg diff --git a/src/components/SideMenu/index.js b/src/core/components/SideMenu/index.js similarity index 90% rename from src/components/SideMenu/index.js rename to src/core/components/SideMenu/index.js index 57bf62d68..d544192a3 100644 --- a/src/components/SideMenu/index.js +++ b/src/core/components/SideMenu/index.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { SideMenuContainer } from './styles'; import communityIcon from './icons/community.svg'; import MenuTab from './MenuTab'; diff --git a/src/components/SideMenu/styles.js b/src/core/components/SideMenu/styles.js similarity index 100% rename from src/components/SideMenu/styles.js rename to src/core/components/SideMenu/styles.js diff --git a/src/components/SideMenuItem/index.js b/src/core/components/SideMenuItem/index.js similarity index 100% rename from src/components/SideMenuItem/index.js rename to src/core/components/SideMenuItem/index.js diff --git a/src/components/SideMenuItem/styles.js b/src/core/components/SideMenuItem/styles.js similarity index 93% rename from src/components/SideMenuItem/styles.js rename to src/core/components/SideMenuItem/styles.js index 86c2977ed..933f4705c 100644 --- a/src/components/SideMenuItem/styles.js +++ b/src/core/components/SideMenuItem/styles.js @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import { SecondaryButton } from 'components/Button'; +import { SecondaryButton } from '~/core/components/Button'; export const SideMenuItemContainer = styled(SecondaryButton)` display: flex; diff --git a/src/core/components/Switch/Switch.stories.js b/src/core/components/Switch/Switch.stories.js new file mode 100644 index 000000000..cd214a886 --- /dev/null +++ b/src/core/components/Switch/Switch.stories.js @@ -0,0 +1,29 @@ +import React from 'react'; +import { useArgs } from '@storybook/client-api'; +import UiKitSwitch from '.'; + +export default { + title: 'Components/Switch', + component: UiKitSwitch, + parameters: { layout: 'centered' }, +}; + +export const SimpleSwitch = () => { + const [{ value, onChange }, updateArgs] = useArgs(); + + const setValue = newVal => { + onChange(newVal); + updateArgs({ value: newVal }); + }; + + return ; +}; + +SimpleSwitch.args = { + value: false, +}; + +SimpleSwitch.argTypes = { + value: { control: { type: 'boolean' } }, + onChange: { action: 'onChange' }, +}; diff --git a/src/core/components/Switch/index.js b/src/core/components/Switch/index.js new file mode 100644 index 000000000..d4ced5f24 --- /dev/null +++ b/src/core/components/Switch/index.js @@ -0,0 +1,17 @@ +import React, { useCallback } from 'react'; +import { SwitchLabel, SwitchInput, SwitchSlider } from './styles'; + +const Switch = ({ value = false, onChange = () => {} }) => { + const cb = useCallback(() => { + onChange(!value); + }, [value]); + + return ( + + + + + ); +}; + +export default Switch; diff --git a/src/components/Switch/styles.js b/src/core/components/Switch/styles.js similarity index 100% rename from src/components/Switch/styles.js rename to src/core/components/Switch/styles.js diff --git a/src/components/Tab/Tab.stories.js b/src/core/components/Tab/Tab.stories.js similarity index 100% rename from src/components/Tab/Tab.stories.js rename to src/core/components/Tab/Tab.stories.js diff --git a/src/components/Tab/index.js b/src/core/components/Tab/index.js similarity index 100% rename from src/components/Tab/index.js rename to src/core/components/Tab/index.js diff --git a/src/components/Tab/styles.js b/src/core/components/Tab/styles.js similarity index 100% rename from src/components/Tab/styles.js rename to src/core/components/Tab/styles.js diff --git a/src/components/Tabs/index.js b/src/core/components/Tabs/index.js similarity index 78% rename from src/components/Tabs/index.js rename to src/core/components/Tabs/index.js index 71fedbf80..1bae7fd87 100644 --- a/src/components/Tabs/index.js +++ b/src/core/components/Tabs/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; -import Tab from 'components/Tab'; +import { customizableComponent } from '~/core/hocs/customization'; +import Tab from '~/core/components/Tab'; import { TabsContainer } from './styles'; diff --git a/src/components/Tabs/styles.js b/src/core/components/Tabs/styles.js similarity index 100% rename from src/components/Tabs/styles.js rename to src/core/components/Tabs/styles.js diff --git a/src/components/Time/index.js b/src/core/components/Time/index.js similarity index 100% rename from src/components/Time/index.js rename to src/core/components/Time/index.js diff --git a/src/components/Time/styles.js b/src/core/components/Time/styles.js similarity index 100% rename from src/components/Time/styles.js rename to src/core/components/Time/styles.js diff --git a/src/hocs/customization.js b/src/core/hocs/customization.js similarity index 100% rename from src/hocs/customization.js rename to src/core/hocs/customization.js diff --git a/src/hocs/withSDK.js b/src/core/hocs/withSDK.js similarity index 100% rename from src/hocs/withSDK.js rename to src/core/hocs/withSDK.js diff --git a/src/hocs/withSize.js b/src/core/hocs/withSize.js similarity index 100% rename from src/hocs/withSize.js rename to src/core/hocs/withSize.js diff --git a/src/hooks/useLiveCollection.js b/src/core/hooks/useLiveCollection.js similarity index 77% rename from src/hooks/useLiveCollection.js rename to src/core/hooks/useLiveCollection.js index cd9b31697..c8104217f 100644 --- a/src/hooks/useLiveCollection.js +++ b/src/core/hooks/useLiveCollection.js @@ -5,31 +5,35 @@ const noop = () => null; const useLiveCollection = ( createLiveCollection, - defaultData, - skipEffectCondition = () => false, dependencies = [], + resolver = () => dependencies.some(dep => !dep), ) => { - const [data, setData] = useState(defaultData); + const [data, setData] = useState([]); + const [pagination, setPagination] = useState({ hasMore: false, loadMore: noop, }); useEffect(() => { - if (skipEffectCondition()) { - return; - } + if (resolver()) return; + const liveCollection = createLiveCollection(); + + // data liveCollection.models && setData(liveCollection.models); liveCollection.on('dataUpdated', setData); + // pagination liveCollection.on('loadingStatusChanged', ({ newValue }) => { - const hasMore = newValue === EkoLoadingStatus.Loaded ? liveCollection.hasMore : false; + const hasMore = newValue === EkoLoadingStatus.Loaded && liveCollection.hasMore; + setPagination({ hasMore, loadMore: hasMore ? () => liveCollection.nextPage() : noop, }); }); + return () => liveCollection.dispose(); }, [...dependencies]); diff --git a/src/hooks/useLiveObject.js b/src/core/hooks/useLiveObject.js similarity index 73% rename from src/hooks/useLiveObject.js rename to src/core/hooks/useLiveObject.js index 2463764f7..3e7cbad09 100644 --- a/src/hooks/useLiveObject.js +++ b/src/core/hooks/useLiveObject.js @@ -1,21 +1,20 @@ +// TODO add errors handling import { useState, useEffect } from 'react'; -// TODO add errors handling const useLiveObject = ( createLiveObject, - defaultData, - skipEffectCondition = () => false, dependencies = [], + resolver = () => dependencies.some(dep => !dep), ) => { - const [data, setData] = useState(defaultData); + const [data, setData] = useState({}); useEffect(() => { - if (skipEffectCondition()) { - return; - } + if (resolver()) return; + const liveObject = createLiveObject(); liveObject.model && setData(liveObject.model); liveObject.on('dataUpdated', setData); + return () => liveObject.dispose(); }, [...dependencies]); diff --git a/src/components/UiKitProvider/Localisation/index.js b/src/core/providers/UiKitProvider/Localisation/index.js similarity index 100% rename from src/components/UiKitProvider/Localisation/index.js rename to src/core/providers/UiKitProvider/Localisation/index.js diff --git a/src/components/UiKitProvider/index.js b/src/core/providers/UiKitProvider/index.js similarity index 87% rename from src/components/UiKitProvider/index.js rename to src/core/providers/UiKitProvider/index.js index 623abe1fc..ad2ed478d 100644 --- a/src/components/UiKitProvider/index.js +++ b/src/core/providers/UiKitProvider/index.js @@ -4,11 +4,11 @@ import { Helmet } from 'react-helmet'; import EkoClient, { _changeSDKDefaultConfig } from 'eko-sdk'; import { ThemeProvider } from 'styled-components'; -import { CustomComponentsProvider } from 'hocs/customization'; -import { SDKProvider } from 'hocs/withSDK'; -import MockData from 'mock'; -import { ConfirmContainer } from 'components/Confirm'; -import { NotificationsContainer } from 'components/Notification'; +import { NotificationsContainer } from '~/core/components/Notification'; +import { ConfirmContainer } from '~/core/components/Confirm'; +import { CustomComponentsProvider } from '~/core/hocs/customization'; +import { SDKProvider } from '~/core/hocs/withSDK'; +import MockData from '~/mock'; import Localization from './Localisation'; import buildGlobalTheme from './theme'; import { UIStyles } from './styles'; diff --git a/src/components/UiKitProvider/styles.js b/src/core/providers/UiKitProvider/styles.js similarity index 100% rename from src/components/UiKitProvider/styles.js rename to src/core/providers/UiKitProvider/styles.js diff --git a/src/components/UiKitProvider/theme/__tests__/index.test.js b/src/core/providers/UiKitProvider/theme/__tests__/index.test.js similarity index 100% rename from src/components/UiKitProvider/theme/__tests__/index.test.js rename to src/core/providers/UiKitProvider/theme/__tests__/index.test.js diff --git a/src/components/UiKitProvider/theme/__tests__/palette.test.js b/src/core/providers/UiKitProvider/theme/__tests__/palette.test.js similarity index 100% rename from src/components/UiKitProvider/theme/__tests__/palette.test.js rename to src/core/providers/UiKitProvider/theme/__tests__/palette.test.js diff --git a/src/components/UiKitProvider/theme/__tests__/typography.test.js b/src/core/providers/UiKitProvider/theme/__tests__/typography.test.js similarity index 100% rename from src/components/UiKitProvider/theme/__tests__/typography.test.js rename to src/core/providers/UiKitProvider/theme/__tests__/typography.test.js diff --git a/src/components/UiKitProvider/theme/default-theme.js b/src/core/providers/UiKitProvider/theme/default-theme.js similarity index 100% rename from src/components/UiKitProvider/theme/default-theme.js rename to src/core/providers/UiKitProvider/theme/default-theme.js diff --git a/src/components/UiKitProvider/theme/index.js b/src/core/providers/UiKitProvider/theme/index.js similarity index 100% rename from src/components/UiKitProvider/theme/index.js rename to src/core/providers/UiKitProvider/theme/index.js diff --git a/src/components/UiKitProvider/theme/palette.js b/src/core/providers/UiKitProvider/theme/palette.js similarity index 100% rename from src/components/UiKitProvider/theme/palette.js rename to src/core/providers/UiKitProvider/theme/palette.js diff --git a/src/components/UiKitProvider/theme/typography.js b/src/core/providers/UiKitProvider/theme/typography.js similarity index 100% rename from src/components/UiKitProvider/theme/typography.js rename to src/core/providers/UiKitProvider/theme/typography.js diff --git a/src/components/ColorPicker/ColorPicker.stories.js b/src/helpers/ColorPicker/ColorPicker.stories.js similarity index 93% rename from src/components/ColorPicker/ColorPicker.stories.js rename to src/helpers/ColorPicker/ColorPicker.stories.js index 9e499d6b1..a39e53801 100644 --- a/src/components/ColorPicker/ColorPicker.stories.js +++ b/src/helpers/ColorPicker/ColorPicker.stories.js @@ -1,5 +1,5 @@ import React from 'react'; -import defaultTheme from 'components/UiKitProvider/theme/default-theme'; +import defaultTheme from '~/core/providers/UiKitProvider/theme/default-theme'; import ColorPicker from '.'; export default { diff --git a/src/components/ColorPicker/index.js b/src/helpers/ColorPicker/index.js similarity index 91% rename from src/components/ColorPicker/index.js rename to src/helpers/ColorPicker/index.js index 82eadc2d9..e7d0838cc 100644 --- a/src/components/ColorPicker/index.js +++ b/src/helpers/ColorPicker/index.js @@ -1,7 +1,7 @@ import React from 'react'; import styled from 'styled-components'; import { readableColor } from 'polished'; -import { COLOR_SHADES, lightenHex } from 'components/UiKitProvider/theme/palette'; +import { COLOR_SHADES, lightenHex } from '~/core/providers/UiKitProvider/theme/palette'; const getShadeName = tileIndex => { if (tileIndex === 0) return 'Main'; diff --git a/src/helpers/getUser.js b/src/helpers/getUser.js index a79fa74f8..3de90a19b 100644 --- a/src/helpers/getUser.js +++ b/src/helpers/getUser.js @@ -1,6 +1,6 @@ import { UserRepository } from 'eko-sdk'; -import { testUser } from 'mock'; +import { testUser } from '~/mock'; export const getUser = userId => { if (userId) { diff --git a/src/components/Chat/index.js b/src/messaging/components/Chat/index.js similarity index 76% rename from src/components/Chat/index.js rename to src/messaging/components/Chat/index.js index b862216d3..b5eaa998d 100644 --- a/src/components/Chat/index.js +++ b/src/messaging/components/Chat/index.js @@ -1,11 +1,11 @@ import React, { useEffect } from 'react'; import { MessageRepository, ChannelRepository, EkoChannelType } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; +import MessageList from '~/messaging/components/MessageList'; +import MessageComposeBar from '~/messaging/components/MessageComposeBar'; +import { customizableComponent } from '~/core/hocs/customization'; -import ChatHeader from 'components/ChatHeader'; -import MessageList from 'components/MessageList'; -import MessageComposeBar from 'components/MessageComposeBar'; +import ChatHeader from '~/messaging/components/ChatHeader'; import { ChannelContainer } from './styles'; diff --git a/src/components/Chat/styles.js b/src/messaging/components/Chat/styles.js similarity index 100% rename from src/components/Chat/styles.js rename to src/messaging/components/Chat/styles.js diff --git a/src/components/ChatDetails/index.js b/src/messaging/components/ChatDetails/index.js similarity index 85% rename from src/components/ChatDetails/index.js rename to src/messaging/components/ChatDetails/index.js index 542543f04..52264960c 100644 --- a/src/components/ChatDetails/index.js +++ b/src/messaging/components/ChatDetails/index.js @@ -1,8 +1,8 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; -import useLiveObject from 'hooks/useLiveObject'; +import { customizableComponent } from '~/core/hocs/customization'; +import useLiveObject from '~/core/hooks/useLiveObject'; import { Avatar, @@ -18,7 +18,7 @@ import { const channelRepo = new ChannelRepository(); const ChatDetails = ({ channelId, onClose }) => { - const channel = useLiveObject(() => channelRepo.channelForId(channelId), {}); + const channel = useLiveObject(() => channelRepo.channelForId(channelId), [channelId]); return ( diff --git a/src/components/ChatDetails/styles.js b/src/messaging/components/ChatDetails/styles.js similarity index 94% rename from src/components/ChatDetails/styles.js rename to src/messaging/components/ChatDetails/styles.js index 0a243008c..2acae549c 100644 --- a/src/components/ChatDetails/styles.js +++ b/src/messaging/components/ChatDetails/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faTimes } from '@fortawesome/pro-regular-svg-icons'; -import UiKitAvatar from 'components/Avatar'; +import UiKitAvatar from '~/core/components/Avatar'; export const Avatar = styled(UiKitAvatar)``; diff --git a/src/components/ChatHeader/index.js b/src/messaging/components/ChatHeader/index.js similarity index 84% rename from src/components/ChatHeader/index.js rename to src/messaging/components/ChatHeader/index.js index 67cf25a5f..a4c45fbac 100644 --- a/src/components/ChatHeader/index.js +++ b/src/messaging/components/ChatHeader/index.js @@ -1,8 +1,8 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; -import useLiveObject from 'hooks/useLiveObject'; +import { customizableComponent } from '~/core/hocs/customization'; +import useLiveObject from '~/core/hooks/useLiveObject'; import { Avatar, @@ -17,7 +17,7 @@ import { const channelRepo = new ChannelRepository(); const ChatHeader = ({ channelId, onChatDetailsClick }) => { - const channel = useLiveObject(() => channelRepo.channelForId(channelId), {}); + const channel = useLiveObject(() => channelRepo.channelForId(channelId), [channelId]); return ( diff --git a/src/components/ChatHeader/styles.js b/src/messaging/components/ChatHeader/styles.js similarity index 94% rename from src/components/ChatHeader/styles.js rename to src/messaging/components/ChatHeader/styles.js index b96d6f9c6..181d2dec5 100644 --- a/src/components/ChatHeader/styles.js +++ b/src/messaging/components/ChatHeader/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faBars } from '@fortawesome/free-solid-svg-icons'; -import UiKitAvatar from 'components/Avatar'; +import UiKitAvatar from '~/core/components/Avatar'; export const Avatar = styled(UiKitAvatar)``; diff --git a/src/components/ChatHome/ChatHome.stories.js b/src/messaging/components/ChatHome/ChatHome.stories.js similarity index 89% rename from src/components/ChatHome/ChatHome.stories.js rename to src/messaging/components/ChatHome/ChatHome.stories.js index 96d126faf..a03d06324 100644 --- a/src/components/ChatHome/ChatHome.stories.js +++ b/src/messaging/components/ChatHome/ChatHome.stories.js @@ -1,5 +1,5 @@ import React from 'react'; -import Message from 'components/Message'; +import Message from '~/messaging/components/Message'; import ChatHome from '.'; export default { diff --git a/src/components/ChatHome/index.js b/src/messaging/components/ChatHome/index.js similarity index 81% rename from src/components/ChatHome/index.js rename to src/messaging/components/ChatHome/index.js index 24ce72978..ccdf83026 100644 --- a/src/components/ChatHome/index.js +++ b/src/messaging/components/ChatHome/index.js @@ -1,9 +1,9 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import RecentChat from 'components/RecentChat'; -import Chat from 'components/Chat'; -import ChatDetails from 'components/ChatDetails'; +import RecentChat from '~/messaging/components/RecentChat'; +import { customizableComponent } from '~/core/hocs/customization'; +import Chat from '~/messaging/components/Chat'; +import ChatDetails from '~/messaging/components/ChatDetails'; import { ChatHomeContainer } from './styles'; diff --git a/src/components/ChatHome/styles.js b/src/messaging/components/ChatHome/styles.js similarity index 100% rename from src/components/ChatHome/styles.js rename to src/messaging/components/ChatHome/styles.js diff --git a/src/components/ChatItem/index.js b/src/messaging/components/ChatItem/index.js similarity index 86% rename from src/components/ChatItem/index.js rename to src/messaging/components/ChatItem/index.js index b7a28dd23..749fa2552 100644 --- a/src/components/ChatItem/index.js +++ b/src/messaging/components/ChatItem/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { Avatar, ChatItemContainer, UnreadCount } from './styles'; diff --git a/src/components/ChatItem/styles.js b/src/messaging/components/ChatItem/styles.js similarity index 75% rename from src/components/ChatItem/styles.js rename to src/messaging/components/ChatItem/styles.js index a2b699ece..64faf0b4b 100644 --- a/src/components/ChatItem/styles.js +++ b/src/messaging/components/ChatItem/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import SideMenuItem from 'components/SideMenuItem'; -import UiKitAvatar from 'components/Avatar'; +import SideMenuItem from '~/core/components/SideMenuItem'; +import UiKitAvatar from '~/core/components/Avatar'; export const ChatItemContainer = styled(SideMenuItem)``; diff --git a/src/components/Message/IncomingMessage.js b/src/messaging/components/Message/IncomingMessage.js similarity index 74% rename from src/components/Message/IncomingMessage.js rename to src/messaging/components/Message/IncomingMessage.js index 58c51e48a..b2e334cdf 100644 --- a/src/components/Message/IncomingMessage.js +++ b/src/messaging/components/Message/IncomingMessage.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import Message from '.'; const IncomingMessage = props => ; diff --git a/src/components/Message/Options.js b/src/messaging/components/Message/Options.js similarity index 96% rename from src/components/Message/Options.js rename to src/messaging/components/Message/Options.js index 7318eec71..b11c8116b 100644 --- a/src/components/Message/Options.js +++ b/src/messaging/components/Message/Options.js @@ -1,8 +1,8 @@ import React, { useState, useEffect } from 'react'; import { MessageEditorRepository, MessageFlagRepository } from 'eko-sdk'; -import Popover from 'components/Popover'; -import Menu, { MenuItem } from 'components/Menu'; +import Popover from '~/core/components/Popover'; +import Menu, { MenuItem } from '~/core/components/Menu'; import { MessageOptionsIcon, SaveIcon, CloseIcon, EditingInput, EditingContainer } from './styles'; diff --git a/src/components/Message/OutgoingMessage.js b/src/messaging/components/Message/OutgoingMessage.js similarity index 57% rename from src/components/Message/OutgoingMessage.js rename to src/messaging/components/Message/OutgoingMessage.js index 47cd98d14..a367f0062 100644 --- a/src/components/Message/OutgoingMessage.js +++ b/src/messaging/components/Message/OutgoingMessage.js @@ -1,4 +1,4 @@ -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import Message from '.'; export default customizableComponent('OutgoingMessage', Message); diff --git a/src/components/Message/index.js b/src/messaging/components/Message/index.js similarity index 93% rename from src/components/Message/index.js rename to src/messaging/components/Message/index.js index 9dba83bf1..309a0a68f 100644 --- a/src/components/Message/index.js +++ b/src/messaging/components/Message/index.js @@ -1,9 +1,9 @@ import React from 'react'; import { FormattedTime } from 'react-intl'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; -import Linkify from 'components/Linkify'; +import Linkify from '~/core/components/Linkify'; import Options from './Options'; diff --git a/src/components/Message/styles.js b/src/messaging/components/Message/styles.js similarity index 97% rename from src/components/Message/styles.js rename to src/messaging/components/Message/styles.js index 3b4915c6f..11768cf77 100644 --- a/src/components/Message/styles.js +++ b/src/messaging/components/Message/styles.js @@ -3,7 +3,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faEllipsisV } from '@fortawesome/pro-solid-svg-icons'; import { faSave, faTrashAlt, faTimes } from '@fortawesome/pro-regular-svg-icons'; -import UiKitAvatar from 'components/Avatar'; +import UiKitAvatar from '~/core/components/Avatar'; export const SystemMessageContainer = styled.span` opacity: 0.5; diff --git a/src/components/MessageComposeBar/index.js b/src/messaging/components/MessageComposeBar/index.js similarity index 93% rename from src/components/MessageComposeBar/index.js rename to src/messaging/components/MessageComposeBar/index.js index fb846da5f..0ebd91ea2 100644 --- a/src/components/MessageComposeBar/index.js +++ b/src/messaging/components/MessageComposeBar/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { MessageComposeBarContainer, diff --git a/src/components/MessageComposeBar/styles.js b/src/messaging/components/MessageComposeBar/styles.js similarity index 100% rename from src/components/MessageComposeBar/styles.js rename to src/messaging/components/MessageComposeBar/styles.js diff --git a/src/components/MessageList/index.js b/src/messaging/components/MessageList/index.js similarity index 79% rename from src/components/MessageList/index.js rename to src/messaging/components/MessageList/index.js index 1127d9780..0f5aaf40f 100644 --- a/src/components/MessageList/index.js +++ b/src/messaging/components/MessageList/index.js @@ -2,11 +2,11 @@ import React from 'react'; import InfiniteScroll from 'react-infinite-scroller'; import { MessageRepository } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; -import withSDK from 'hocs/withSDK'; -import useLiveCollection from 'hooks/useLiveCollection'; -import OutgoingMessage from 'components/Message/OutgoingMessage'; -import IncomingMessage from 'components/Message/IncomingMessage'; +import OutgoingMessage from '~/messaging/components/Message/OutgoingMessage'; +import IncomingMessage from '~/messaging/components/Message/IncomingMessage'; +import { customizableComponent } from '~/core/hocs/customization'; +import withSDK from '~/core/hocs/withSDK'; +import useLiveCollection from '~/core/hooks/useLiveCollection'; import { InfiniteScrollContainer, MessageListContainer } from './styles'; @@ -15,7 +15,7 @@ const messageRepo = new MessageRepository(); const MessageList = ({ client, channelId }) => { const [messages, hasMore, loadMore] = useLiveCollection( () => messageRepo.messagesForChannel({ channelId }), - [], + [channelId], ); const { currentUserId } = client; diff --git a/src/components/MessageList/styles.js b/src/messaging/components/MessageList/styles.js similarity index 100% rename from src/components/MessageList/styles.js rename to src/messaging/components/MessageList/styles.js diff --git a/src/components/RecentChat/CreateNewChat.js b/src/messaging/components/RecentChat/CreateNewChat.js similarity index 96% rename from src/components/RecentChat/CreateNewChat.js rename to src/messaging/components/RecentChat/CreateNewChat.js index f85e96b35..3c0d67f2d 100644 --- a/src/components/RecentChat/CreateNewChat.js +++ b/src/messaging/components/RecentChat/CreateNewChat.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { ChannelRepository, EkoChannelType } from 'eko-sdk'; -import Popover from 'components/Popover'; +import Popover from '~/core/components/Popover'; import { CreateIcon, diff --git a/src/components/RecentChat/index.js b/src/messaging/components/RecentChat/index.js similarity index 82% rename from src/components/RecentChat/index.js rename to src/messaging/components/RecentChat/index.js index f9751d7de..769148b50 100644 --- a/src/components/RecentChat/index.js +++ b/src/messaging/components/RecentChat/index.js @@ -1,9 +1,9 @@ import React from 'react'; import { ChannelRepository } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; -import useLiveObject from 'hooks/useLiveObject'; -import ChatItem from 'components/ChatItem'; +import ChatItem from '~/messaging/components/ChatItem'; +import { customizableComponent } from '~/core/hocs/customization'; +import useLiveObject from '~/core/hooks/useLiveObject'; import CreateNewChat from './CreateNewChat'; import { RecentChatListContainer, RecentChatListHeader } from './styles'; diff --git a/src/components/RecentChat/styles.js b/src/messaging/components/RecentChat/styles.js similarity index 100% rename from src/components/RecentChat/styles.js rename to src/messaging/components/RecentChat/styles.js diff --git a/src/messaging/hocs/.gitkeep b/src/messaging/hocs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/src/messaging/hooks/.gitkeep b/src/messaging/hooks/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/src/hooks/useOneComment.js b/src/mock/useOneComment.js similarity index 96% rename from src/hooks/useOneComment.js rename to src/mock/useOneComment.js index 1b94635a4..0287d875d 100644 --- a/src/hooks/useOneComment.js +++ b/src/mock/useOneComment.js @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -import useOnePost from 'hooks/useOnePost'; import { CommentRepository, EkoCommentReferenceType } from 'eko-sdk'; +import useOnePost from '~/mock/useOnePost'; /** * Used in Storybook stories only to get a single comment. diff --git a/src/hooks/useOnePost.js b/src/mock/useOnePost.js similarity index 100% rename from src/hooks/useOnePost.js rename to src/mock/useOnePost.js diff --git a/src/hooks/useOneUser.js b/src/mock/useOneUser.js similarity index 86% rename from src/hooks/useOneUser.js rename to src/mock/useOneUser.js index 54df218a6..2dcc684ac 100644 --- a/src/hooks/useOneUser.js +++ b/src/mock/useOneUser.js @@ -1,5 +1,5 @@ import { UserRepository } from 'eko-sdk'; -import useLiveCollection from 'hooks/useLiveCollection'; +import useLiveCollection from '~/core/hooks/useLiveCollection'; /** * Used in Storybook stories only to get a single user that is not the current user. @@ -9,7 +9,7 @@ import useLiveCollection from 'hooks/useLiveCollection'; const userRepo = new UserRepository(); const useOneUser = () => { - const [users] = useLiveCollection(() => userRepo.getAllUsers(), []); + const [users] = useLiveCollection(() => userRepo.getAllUsers()); return users[0] || { userId: 'random-user-id' }; }; diff --git a/src/components/AddMemberModal/index.js b/src/social/components/AddMemberModal/index.js similarity index 89% rename from src/components/AddMemberModal/index.js rename to src/social/components/AddMemberModal/index.js index 86247faf3..0b81894fd 100644 --- a/src/components/AddMemberModal/index.js +++ b/src/social/components/AddMemberModal/index.js @@ -1,6 +1,7 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; +import Modal from '~/core/components/Modal'; import { ErrorMessage, Form, @@ -10,9 +11,8 @@ import { MembersField, SubmitButton, Footer, -} from 'components/CommunityForm/styles'; -import UserSelector from 'components/CommunityForm/UserSelector'; -import Modal from 'components/Modal'; +} from '~/social/components/CommunityForm/styles'; +import UserSelector from '~/social/components/CommunityForm/UserSelector'; import { FormContainer } from './styles'; const FormBlock = ({ children }) => ( diff --git a/src/components/AddMemberModal/styles.js b/src/social/components/AddMemberModal/styles.js similarity index 100% rename from src/components/AddMemberModal/styles.js rename to src/social/components/AddMemberModal/styles.js diff --git a/src/components/Comment/Comment.styles.js b/src/social/components/Comment/Comment.styles.js similarity index 95% rename from src/components/Comment/Comment.styles.js rename to src/social/components/Comment/Comment.styles.js index 66a9b4bc4..15ade01ae 100644 --- a/src/components/Comment/Comment.styles.js +++ b/src/social/components/Comment/Comment.styles.js @@ -1,7 +1,7 @@ /* eslint-disable import/no-cycle */ import React from 'react'; import PropTypes from 'prop-types'; -import CommentLikeButton from 'components/CommentLikeButton'; +import CommentLikeButton from '~/social/components/CommentLikeButton'; import CommentText from './CommentText'; import { Avatar, diff --git a/src/components/Comment/CommentReplies.js b/src/social/components/Comment/CommentReplies.js similarity index 100% rename from src/components/Comment/CommentReplies.js rename to src/social/components/Comment/CommentReplies.js diff --git a/src/components/Comment/CommentSDK.stories.js b/src/social/components/Comment/CommentSDK.stories.js similarity index 96% rename from src/components/Comment/CommentSDK.stories.js rename to src/social/components/Comment/CommentSDK.stories.js index 5b6408291..abf8c7a3f 100644 --- a/src/components/Comment/CommentSDK.stories.js +++ b/src/social/components/Comment/CommentSDK.stories.js @@ -1,5 +1,5 @@ import React from 'react'; -import useOneComment from 'hooks/useOneComment'; +import useOneComment from '~/mock/useOneComment'; import StyledComment from './Comment.styles'; import Comment from '.'; diff --git a/src/components/Comment/CommentText.js b/src/social/components/Comment/CommentText.js similarity index 93% rename from src/components/Comment/CommentText.js rename to src/social/components/Comment/CommentText.js index 01b8d9051..256b2c298 100644 --- a/src/components/Comment/CommentText.js +++ b/src/social/components/Comment/CommentText.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import Linkify from 'components/Linkify'; import Truncate from 'react-truncate-markup'; +import Linkify from '~/core/components/Linkify'; import { CommentContent, ReadMoreButton } from './styles'; const COMMENT_MAX_LINES = 8; diff --git a/src/components/Comment/index.js b/src/social/components/Comment/index.js similarity index 93% rename from src/components/Comment/index.js rename to src/social/components/Comment/index.js index e4daad19a..4ff9efe99 100644 --- a/src/components/Comment/index.js +++ b/src/social/components/Comment/index.js @@ -1,8 +1,8 @@ /* eslint-disable import/no-cycle */ import React, { useState } from 'react'; import PropTypes from 'prop-types'; -import { customizableComponent } from 'hocs/customization'; -import CommentComposeBar from 'components/CommentComposeBar'; +import { customizableComponent } from '~/core/hocs/customization'; +import CommentComposeBar from '~/social/components/CommentComposeBar'; import CommentReplies from './CommentReplies'; import StyledComment from './Comment.styles'; import useCommentSdk from './useCommentSdk'; diff --git a/src/components/Comment/styles.js b/src/social/components/Comment/styles.js similarity index 92% rename from src/components/Comment/styles.js rename to src/social/components/Comment/styles.js index a50d51365..f8f0e6836 100644 --- a/src/components/Comment/styles.js +++ b/src/social/components/Comment/styles.js @@ -4,12 +4,12 @@ import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faThumbsUp, faShare } from '@fortawesome/pro-regular-svg-icons'; import { faThumbsUp as faThumbsUpSolid } from '@fortawesome/pro-solid-svg-icons'; -import { SecondaryButton } from 'components/Button'; -import Time from 'components/Time'; -import UIOptions from 'components/Options'; -import UICommentComposeBar from 'components/CommentComposeBar'; +import UIOptions from '~/core/components/Options'; +import Time from '~/core/components/Time'; +import UICommentComposeBar from '~/social/components/CommentComposeBar'; +import { SecondaryButton } from '~/core/components/Button'; -import UIAvatar from 'components/Avatar'; +import UIAvatar from '~/core/components/Avatar'; export const Avatar = styled(UIAvatar)` margin-right: 8px; diff --git a/src/components/Comment/useCommentSdk.js b/src/social/components/Comment/useCommentSdk.js similarity index 72% rename from src/components/Comment/useCommentSdk.js rename to src/social/components/Comment/useCommentSdk.js index 4c5db079b..29e313aa4 100644 --- a/src/components/Comment/useCommentSdk.js +++ b/src/social/components/Comment/useCommentSdk.js @@ -1,21 +1,16 @@ import { CommentRepository, UserRepository } from 'eko-sdk'; -import useLiveObject from 'hooks/useLiveObject'; -import useLiveCollection from 'hooks/useLiveCollection'; +import useLiveObject from '~/core/hooks/useLiveObject'; +import useLiveCollection from '~/core/hooks/useLiveCollection'; const commentRepo = new CommentRepository(); const userRepo = new UserRepository(); -const useCommentSdk = ({ commentId, isReplyComment = false }) => { - const comment = useLiveObject(() => commentRepo.commentForId(commentId), {}); +const useCommentSdk = ({ commentId /* , isReplyComment = false */ }) => { + const comment = useLiveObject(() => commentRepo.commentForId(commentId), [commentId]); const isCommentReady = !!comment.commentId; const { userId, referenceId, referenceType } = comment; - const commentAuthor = useLiveObject( - () => userRepo.userForId(userId), - {}, - () => !userId, - [userId], - ); + const commentAuthor = useLiveObject(() => userRepo.userForId(userId), [userId]); // TODO - get pagination params here and used to show/hide replies. const [commentReplies] = useLiveCollection( @@ -25,9 +20,7 @@ const useCommentSdk = ({ commentId, isReplyComment = false }) => { filterByParentId: true, referenceId, }), - [], - () => isReplyComment || !referenceId, - [isReplyComment, referenceId], + [commentId, referenceId], ); const handleReportComment = () => { diff --git a/src/components/CommentComposeBar/index.js b/src/social/components/CommentComposeBar/index.js similarity index 92% rename from src/components/CommentComposeBar/index.js rename to src/social/components/CommentComposeBar/index.js index 9c8f3c4e3..4b2d9852d 100644 --- a/src/components/CommentComposeBar/index.js +++ b/src/social/components/CommentComposeBar/index.js @@ -1,8 +1,8 @@ import React, { useState, useRef, useEffect } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; -import { testUser } from 'mock'; +import { testUser } from '~/mock'; import { Avatar, diff --git a/src/components/CommentComposeBar/styles.js b/src/social/components/CommentComposeBar/styles.js similarity index 87% rename from src/components/CommentComposeBar/styles.js rename to src/social/components/CommentComposeBar/styles.js index 082b2b53a..1e70c6893 100644 --- a/src/components/CommentComposeBar/styles.js +++ b/src/social/components/CommentComposeBar/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; import TextareaAutosize from 'react-autosize-textarea'; -import { PrimaryButton } from 'components/Button'; +import { PrimaryButton } from '~/core/components/Button'; -import UIAvatar from 'components/Avatar'; +import UIAvatar from '~/core/components/Avatar'; export const Avatar = styled(UIAvatar)` margin-right: 8px; diff --git a/src/components/CommentLikeButton/CommentLikeButton.stories.js b/src/social/components/CommentLikeButton/CommentLikeButton.stories.js similarity index 96% rename from src/components/CommentLikeButton/CommentLikeButton.stories.js rename to src/social/components/CommentLikeButton/CommentLikeButton.stories.js index 5ccb496ab..6260cbf82 100644 --- a/src/components/CommentLikeButton/CommentLikeButton.stories.js +++ b/src/social/components/CommentLikeButton/CommentLikeButton.stories.js @@ -1,6 +1,6 @@ import React from 'react'; import { useArgs } from '@storybook/client-api'; -import useOneComment from 'hooks/useOneComment'; +import useOneComment from '~/mock/useOneComment'; import StyledCommentLikeButton from './CommentLikeButton.styles'; import SDKComentLikeButton from '.'; diff --git a/src/components/CommentLikeButton/CommentLikeButton.styles.js b/src/social/components/CommentLikeButton/CommentLikeButton.styles.js similarity index 89% rename from src/components/CommentLikeButton/CommentLikeButton.styles.js rename to src/social/components/CommentLikeButton/CommentLikeButton.styles.js index 7e0ebec39..55646dcb1 100644 --- a/src/components/CommentLikeButton/CommentLikeButton.styles.js +++ b/src/social/components/CommentLikeButton/CommentLikeButton.styles.js @@ -3,8 +3,8 @@ import PropTypes from 'prop-types'; import styled, { css } from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faThumbsUp } from '@fortawesome/pro-regular-svg-icons'; -import { SecondaryButton } from 'components/Button'; -import { customizableComponent } from 'hocs/customization'; +import { SecondaryButton } from '~/core/components/Button'; +import { customizableComponent } from '~/core/hocs/customization'; const isLikedStyle = css` color: ${({ theme }) => theme.palette.primary.main}; diff --git a/src/components/CommentLikeButton/index.js b/src/social/components/CommentLikeButton/index.js similarity index 100% rename from src/components/CommentLikeButton/index.js rename to src/social/components/CommentLikeButton/index.js diff --git a/src/components/CommentLikeButton/useCommentLikeSdk.js b/src/social/components/CommentLikeButton/useCommentLikeSdk.js similarity index 93% rename from src/components/CommentLikeButton/useCommentLikeSdk.js rename to src/social/components/CommentLikeButton/useCommentLikeSdk.js index 786d75889..a8dd9136d 100644 --- a/src/components/CommentLikeButton/useCommentLikeSdk.js +++ b/src/social/components/CommentLikeButton/useCommentLikeSdk.js @@ -1,11 +1,11 @@ import { CommentRepository } from 'eko-sdk'; -import useLiveObject from 'hooks/useLiveObject'; import { LIKE_REACTION_KEY } from 'constants'; +import useLiveObject from '~/core/hooks/useLiveObject'; const commentRepo = new CommentRepository(); const useCommentLikeSdk = ({ commentId, onLikeSuccess, onUnlikeSuccess }) => { - const comment = useLiveObject(() => commentRepo.commentForId(commentId), {}); + const comment = useLiveObject(() => commentRepo.commentForId(commentId), [commentId]); const isCommentReady = !!comment.commentId; const userHasLikedComment = isCommentReady && comment.myReactions && comment.myReactions.includes(LIKE_REACTION_KEY); diff --git a/src/components/Community/Community.stories.js b/src/social/components/Community/Community.stories.js similarity index 88% rename from src/components/Community/Community.stories.js rename to src/social/components/Community/Community.stories.js index d00368669..234862edb 100644 --- a/src/components/Community/Community.stories.js +++ b/src/social/components/Community/Community.stories.js @@ -9,18 +9,17 @@ import { } from 'react-router-dom'; import { EkoPostTargetType } from 'eko-sdk'; -import { useCommunitiesMock } from 'mock'; +import ProfileSettings from '~/social/components/ProfileSettings'; +import FeedLayout from '~/social/components/FeedLayout'; +import FeedSideMenu, { SELECTION_TYPES } from '~/social/components/FeedSideMenu'; -import FeedLayout from 'components/FeedLayout'; -import FeedSideMenu, { SELECTION_TYPES } from 'components/FeedSideMenu'; +import Feed from '~/social/components/Feed'; +import ExploreHome from '~/social/components/ExploreHome'; +import CategoryPage from '~/social/components/ExploreHome/CategoryPage'; +import CommunityCreationModal from '~/social/components/CommunityCreationModal'; +import CommunitySettings from '~/social/components/CommunitySettings'; -import ExploreHome from 'components/ExploreHome'; -import CategoryPage from 'components/ExploreHome/CategoryPage'; -import CommunityCreationModal from 'components/CommunityCreationModal'; -import CommunitySettings from 'components/CommunitySettings'; -import ProfileSettings from 'components/ProfileSettings'; - -import Feed from 'components/Feed'; +import { useCommunitiesMock } from '~/mock'; import CommunityFeed from '.'; export default { diff --git a/src/components/Community/CommunityMembers.js b/src/social/components/Community/CommunityMembers.js similarity index 88% rename from src/components/Community/CommunityMembers.js rename to src/social/components/Community/CommunityMembers.js index a31aea950..e70b889c4 100644 --- a/src/components/Community/CommunityMembers.js +++ b/src/social/components/Community/CommunityMembers.js @@ -1,12 +1,12 @@ import React, { useState } from 'react'; import { UserRepository } from 'eko-sdk'; -import usePaginatedLiveObject from 'hooks/useLiveCollection'; -import { customizableComponent } from 'hocs/customization'; -import Options from 'components/Options'; -import { confirm } from 'components/Confirm'; -import { notification } from 'components/Notification'; -import { LoadMore } from 'components/LoadMore'; +import Options from '~/core/components/Options'; +import { notification } from '~/core/components/Notification'; +import { LoadMore } from '~/social/components/LoadMore'; +import { confirm } from '~/core/components/Confirm'; +import { customizableComponent } from '~/core/hocs/customization'; +import usePaginatedLiveObject from '~/core/hooks/useLiveCollection'; import { Avatar, diff --git a/src/components/Community/index.js b/src/social/components/Community/index.js similarity index 88% rename from src/components/Community/index.js rename to src/social/components/Community/index.js index b46088d37..7489e0fad 100644 --- a/src/components/Community/index.js +++ b/src/social/components/Community/index.js @@ -1,11 +1,11 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import withSDK from 'hocs/withSDK'; +import { CommunityProfileBar } from '~/social/components/Profile'; +import EmptyFeed from '~/social/components/EmptyFeed'; +import { customizableComponent } from '~/core/hocs/customization'; +import withSDK from '~/core/hocs/withSDK'; -import { getCommunities, usePostsMock } from 'mock'; -import { CommunityProfileBar } from 'components/Profile'; -import EmptyFeed from 'components/EmptyFeed'; +import { getCommunities, usePostsMock } from '~/mock'; import CommunityMembers from './CommunityMembers'; diff --git a/src/components/Community/styles.js b/src/social/components/Community/styles.js similarity index 80% rename from src/components/Community/styles.js rename to src/social/components/Community/styles.js index a0968dd6f..307015e40 100644 --- a/src/components/Community/styles.js +++ b/src/social/components/Community/styles.js @@ -1,11 +1,10 @@ import styled from 'styled-components'; -import UIPost from 'components/Post'; -import UIPostCompose from 'components/PostCompose'; -import UIFeedHeaderTabs from 'components/FeedHeaderTabs'; -import UIUserFeedHeader from 'components/UserFeedHeader'; -import UiKitAvatar from 'components/Avatar'; - -import Tabs from 'components/Tabs'; +import Tabs from '~/core/components/Tabs'; +import UIUserFeedHeader from '~/social/components/UserFeedHeader'; +import UIPost from '~/social/components/Post'; +import UIPostCompose from '~/social/components/PostCompose'; +import UIFeedHeaderTabs from '~/social/components/FeedHeaderTabs'; +import UiKitAvatar from '~/core/components/Avatar'; export const CommunityMembersTabs = styled(Tabs)` margin-bottom: 14px; diff --git a/src/components/CommunityCreationModal/index.js b/src/social/components/CommunityCreationModal/index.js similarity index 82% rename from src/components/CommunityCreationModal/index.js rename to src/social/components/CommunityCreationModal/index.js index fef4b2a72..0b2c4f781 100644 --- a/src/components/CommunityCreationModal/index.js +++ b/src/social/components/CommunityCreationModal/index.js @@ -1,7 +1,7 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; -import { confirm } from 'components/Confirm'; -import Modal from 'components/Modal'; +import Modal from '~/core/components/Modal'; +import { confirm } from '~/core/components/Confirm'; +import { customizableComponent } from '~/core/hocs/customization'; import { CommunityForm } from './styles'; const CommunityCreationModal = ({ isOpen, onClose, onSubmit }) => { diff --git a/src/components/CommunityCreationModal/styles.js b/src/social/components/CommunityCreationModal/styles.js similarity index 54% rename from src/components/CommunityCreationModal/styles.js rename to src/social/components/CommunityCreationModal/styles.js index f7f5f3227..eac43e786 100644 --- a/src/components/CommunityCreationModal/styles.js +++ b/src/social/components/CommunityCreationModal/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import UICommunityForm from 'components/CommunityForm'; -import { FormBody } from 'components/CommunityForm/styles'; +import UICommunityForm from '~/social/components/CommunityForm'; +import { FormBody } from '~/social/components/CommunityForm/styles'; export const CommunityForm = styled(UICommunityForm)` ${FormBody} { diff --git a/src/components/CommunityForm/CategorySelector.js b/src/social/components/CommunityForm/CategorySelector.js similarity index 87% rename from src/components/CommunityForm/CategorySelector.js rename to src/social/components/CommunityForm/CategorySelector.js index 8bc690252..b7f6df4e5 100644 --- a/src/components/CommunityForm/CategorySelector.js +++ b/src/social/components/CommunityForm/CategorySelector.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import { getCategories, getCategory } from 'mock'; -import { MenuItem } from 'components/Menu'; +import { MenuItem } from '~/core/components/Menu'; +import { customizableComponent } from '~/core/hocs/customization'; +import { getCategories, getCategory } from '~/mock'; import { Avatar, Selector, SelectorPopover, SelectorList, SelectIcon } from './styles'; diff --git a/src/components/CommunityForm/UserSelector.js b/src/social/components/CommunityForm/UserSelector.js similarity index 94% rename from src/components/CommunityForm/UserSelector.js rename to src/social/components/CommunityForm/UserSelector.js index ec78230c0..e504ef027 100644 --- a/src/components/CommunityForm/UserSelector.js +++ b/src/social/components/CommunityForm/UserSelector.js @@ -1,8 +1,8 @@ import React, { useState, useEffect, useRef } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import { testUsers } from 'mock'; -import { MenuItem } from 'components/Menu'; +import { MenuItem } from '~/core/components/Menu'; +import { customizableComponent } from '~/core/hocs/customization'; +import { testUsers } from '~/mock'; import { Avatar, diff --git a/src/components/CommunityForm/index.js b/src/social/components/CommunityForm/index.js similarity index 96% rename from src/components/CommunityForm/index.js rename to src/social/components/CommunityForm/index.js index be0a2d82d..6d0e282d2 100644 --- a/src/components/CommunityForm/index.js +++ b/src/social/components/CommunityForm/index.js @@ -1,10 +1,10 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; -import { customizableComponent } from 'hocs/customization'; -import { getCommunities } from 'mock'; -import Button from 'components/Button'; -import Switch from 'components/Switch'; +import Switch from '~/core/components/Switch'; +import Button from '~/core/components/Button'; +import { customizableComponent } from '~/core/hocs/customization'; +import { getCommunities } from '~/mock'; import CategorySelector from './CategorySelector'; import UserSelector from './UserSelector'; diff --git a/src/components/CommunityForm/styles.js b/src/social/components/CommunityForm/styles.js similarity index 96% rename from src/components/CommunityForm/styles.js rename to src/social/components/CommunityForm/styles.js index ec9133b99..91cfd1353 100644 --- a/src/components/CommunityForm/styles.js +++ b/src/social/components/CommunityForm/styles.js @@ -10,10 +10,10 @@ import { faChevronDown, faTimes, } from '@fortawesome/pro-regular-svg-icons'; -import { PrimaryButton } from 'components/Button'; -import Popover from 'components/Popover'; -import UIAvatar from 'components/Avatar'; -import Menu from 'components/Menu'; +import Popover from '~/core/components/Popover'; +import Menu from '~/core/components/Menu'; +import { PrimaryButton } from '~/core/components/Button'; +import UIAvatar from '~/core/components/Avatar'; const ErrorMessageWrapper = styled.div` margin-top: 8px; diff --git a/src/components/CommunityInformation/index.js b/src/social/components/CommunityInformation/index.js similarity index 90% rename from src/components/CommunityInformation/index.js rename to src/social/components/CommunityInformation/index.js index b9c0f4b9e..833ce96ba 100644 --- a/src/components/CommunityInformation/index.js +++ b/src/social/components/CommunityInformation/index.js @@ -1,10 +1,10 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from 'hocs/customization'; +import { confirm } from '~/core/components/Confirm'; +import { customizableComponent } from '~/core/hocs/customization'; -import { useCommunitiesMock, getMyCommunityIds } from 'mock'; -import { confirm } from 'components/Confirm'; +import { useCommunitiesMock, getMyCommunityIds } from '~/mock'; import { Count, diff --git a/src/components/CommunityInformation/styles.js b/src/social/components/CommunityInformation/styles.js similarity index 89% rename from src/components/CommunityInformation/styles.js rename to src/social/components/CommunityInformation/styles.js index 53d0e7b90..812fca97d 100644 --- a/src/components/CommunityInformation/styles.js +++ b/src/social/components/CommunityInformation/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faChevronRight, faPlus } from '@fortawesome/pro-regular-svg-icons'; -import { PrimaryButton } from 'components/Button'; -import UIAvatar from 'components/Avatar'; -import UIOptions from 'components/Options'; +import UIOptions from '~/core/components/Options'; +import { PrimaryButton } from '~/core/components/Button'; +import UIAvatar from '~/core/components/Avatar'; export const RightIcon = styled(FaIcon).attrs({ icon: faChevronRight })` font-size: 16px; diff --git a/src/components/CommunityItem/index.js b/src/social/components/CommunityItem/index.js similarity index 75% rename from src/components/CommunityItem/index.js rename to src/social/components/CommunityItem/index.js index 3de36eb21..be0db4fa0 100644 --- a/src/components/CommunityItem/index.js +++ b/src/social/components/CommunityItem/index.js @@ -1,7 +1,7 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; -import CommunityName from 'components/CommunityName'; +import { customizableComponent } from '~/core/hocs/customization'; +import CommunityName from '~/social/components/CommunityName'; import { Avatar, CommunityItemContainer } from './styles'; diff --git a/src/components/CommunityItem/styles.js b/src/social/components/CommunityItem/styles.js similarity index 60% rename from src/components/CommunityItem/styles.js rename to src/social/components/CommunityItem/styles.js index f226c0b16..f0d6155b6 100644 --- a/src/components/CommunityItem/styles.js +++ b/src/social/components/CommunityItem/styles.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; -import UiKitAvatar from 'components/Avatar'; -import SideMenuItem from 'components/SideMenuItem'; +import SideMenuItem from '~/core/components/SideMenuItem'; +import UiKitAvatar from '~/core/components/Avatar'; export const CommunityItemContainer = styled(SideMenuItem)``; diff --git a/src/components/CommunityName/index.js b/src/social/components/CommunityName/index.js similarity index 100% rename from src/components/CommunityName/index.js rename to src/social/components/CommunityName/index.js diff --git a/src/components/CommunityName/styles.js b/src/social/components/CommunityName/styles.js similarity index 100% rename from src/components/CommunityName/styles.js rename to src/social/components/CommunityName/styles.js diff --git a/src/components/CommunitySettings/ExtraAction.js b/src/social/components/CommunitySettings/ExtraAction.js similarity index 91% rename from src/components/CommunitySettings/ExtraAction.js rename to src/social/components/CommunitySettings/ExtraAction.js index cb6dc0e4f..30fcc5e45 100644 --- a/src/components/CommunitySettings/ExtraAction.js +++ b/src/social/components/CommunitySettings/ExtraAction.js @@ -1,7 +1,7 @@ import React from 'react'; -import { confirm } from 'components/Confirm'; -import { useCommunitiesMock } from 'mock'; +import { confirm } from '~/core/components/Confirm'; +import { useCommunitiesMock } from '~/mock'; import { ExtraActionContainer, ExtraActionContainerHeader, @@ -12,7 +12,7 @@ import { Footer, } from './styles'; -import { communitySettings } from '../../constants/community'; +import { communitySettings } from '~/constants/community'; const ExtraAction = ({ title, bodyText, actionButton }) => { return ( diff --git a/src/components/CommunitySettings/index.js b/src/social/components/CommunitySettings/index.js similarity index 84% rename from src/components/CommunitySettings/index.js rename to src/social/components/CommunitySettings/index.js index 0235f0085..ae7f41661 100644 --- a/src/components/CommunitySettings/index.js +++ b/src/social/components/CommunitySettings/index.js @@ -1,12 +1,12 @@ import React, { useState } from 'react'; -import CommunityMembers from 'components/Community/CommunityMembers'; -import CommunityForm from 'components/CommunityForm'; -import { ConditionalRender } from 'components/ConditionalRender'; -import { BackLink } from 'components/BackLink'; -import { AddMemberModal } from 'components/AddMemberModal'; -import { customizableComponent } from 'hocs/customization'; -import { getCommunity } from 'mock/index'; +import { ConditionalRender } from '~/core/components/ConditionalRender'; +import CommunityMembers from '~/social/components/Community/CommunityMembers'; +import CommunityForm from '~/social/components/CommunityForm'; +import { BackLink } from '~/core/components/BackLink'; +import { AddMemberModal } from '~/social/components/AddMemberModal'; +import { customizableComponent } from '~/core/hocs/customization'; +import { getCommunity } from '~/mock/index'; import { CommunitySettingsTabs, Container, diff --git a/src/components/CommunitySettings/styles.js b/src/social/components/CommunitySettings/styles.js similarity index 90% rename from src/components/CommunitySettings/styles.js rename to src/social/components/CommunitySettings/styles.js index 8cce2e939..02cd37ab3 100644 --- a/src/components/CommunitySettings/styles.js +++ b/src/social/components/CommunitySettings/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; -import UICommunitySettingsTabs from 'components/CommunitySettingsTabs'; -import Button, { PrimaryButton } from 'components/Button'; import { faPlus } from '@fortawesome/pro-regular-svg-icons'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import UIAvatar from 'components/Avatar'; +import UICommunitySettingsTabs from '~/social/components/CommunitySettingsTabs'; +import Button, { PrimaryButton } from '~/core/components/Button'; +import UIAvatar from '~/core/components/Avatar'; export const CommunitySettingsTabs = styled(UICommunitySettingsTabs)``; diff --git a/src/components/CommunitySettingsTabs/index.js b/src/social/components/CommunitySettingsTabs/index.js similarity index 67% rename from src/components/CommunitySettingsTabs/index.js rename to src/social/components/CommunitySettingsTabs/index.js index 855312d3a..9b8da2f05 100644 --- a/src/components/CommunitySettingsTabs/index.js +++ b/src/social/components/CommunitySettingsTabs/index.js @@ -1,4 +1,4 @@ -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { CommunitySettingsTabs } from './styles'; diff --git a/src/components/CommunitySettingsTabs/styles.js b/src/social/components/CommunitySettingsTabs/styles.js similarity index 79% rename from src/components/CommunitySettingsTabs/styles.js rename to src/social/components/CommunitySettingsTabs/styles.js index 90957b51e..e6ade70d2 100644 --- a/src/components/CommunitySettingsTabs/styles.js +++ b/src/social/components/CommunitySettingsTabs/styles.js @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import UITabs from 'components/Tabs'; +import UITabs from '~/core/components/Tabs'; export const CommunitySettingsTabs = styled(UITabs)` background: #ffffff; diff --git a/src/components/EmptyFeed/EmptyFeed.stories.js b/src/social/components/EmptyFeed/EmptyFeed.stories.js similarity index 100% rename from src/components/EmptyFeed/EmptyFeed.stories.js rename to src/social/components/EmptyFeed/EmptyFeed.stories.js diff --git a/src/components/EmptyFeed/index.js b/src/social/components/EmptyFeed/index.js similarity index 92% rename from src/components/EmptyFeed/index.js rename to src/social/components/EmptyFeed/index.js index 43013b354..4bd4b4953 100644 --- a/src/components/EmptyFeed/index.js +++ b/src/social/components/EmptyFeed/index.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { EkoPostTargetType } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { EmptyFeedContainer, FeedIcon } from './styles'; const FeedTypesEmptyText = { diff --git a/src/components/EmptyFeed/styles.js b/src/social/components/EmptyFeed/styles.js similarity index 100% rename from src/components/EmptyFeed/styles.js rename to src/social/components/EmptyFeed/styles.js diff --git a/src/components/EngagementBar/index.js b/src/social/components/EngagementBar/index.js similarity index 83% rename from src/components/EngagementBar/index.js rename to src/social/components/EngagementBar/index.js index 0695f3a84..aafd1a41b 100644 --- a/src/components/EngagementBar/index.js +++ b/src/social/components/EngagementBar/index.js @@ -1,13 +1,13 @@ import React, { useState, useMemo } from 'react'; import { PostRepository, CommentRepository, EkoCommentReferenceType } from 'eko-sdk'; import { toHumanString } from 'human-readable-numbers'; -import { customizableComponent } from 'hocs/customization'; -import useLiveObject from 'hooks/useLiveObject'; -import { SecondaryButton } from 'components/Button'; -import PostLikeButton from 'components/PostLikeButton'; -import CommentComposeBar from 'components/CommentComposeBar'; -import Comment from 'components/Comment'; import { LIKE_REACTION_KEY } from 'constants'; +import PostLikeButton from '~/social/components/PostLikeButton'; +import CommentComposeBar from '~/social/components/CommentComposeBar'; +import Comment from '~/social/components/Comment'; +import { SecondaryButton } from '~/core/components/Button'; +import useLiveObject from '~/core/hooks/useLiveObject'; +import { customizableComponent } from '~/core/hocs/customization'; import { EngagementBarContainer, Counters, InteractionBar, CommentIcon } from './styles'; const commentRepo = new CommentRepository(); @@ -16,7 +16,7 @@ const EngagementBar = ({ postId }) => { const [isOpen, setIsOpen] = useState(false); const open = () => setIsOpen(true); - const post = useLiveObject(() => PostRepository.postForId(postId), {}); + const post = useLiveObject(() => PostRepository.postForId(postId), [postId]); const isPostReady = !!post.postId; const { comments = [] } = post; diff --git a/src/components/EngagementBar/styles.js b/src/social/components/EngagementBar/styles.js similarity index 100% rename from src/components/EngagementBar/styles.js rename to src/social/components/EngagementBar/styles.js diff --git a/src/components/ExploreHome/CategoryPage.js b/src/social/components/ExploreHome/CategoryPage.js similarity index 91% rename from src/components/ExploreHome/CategoryPage.js rename to src/social/components/ExploreHome/CategoryPage.js index c6e3b7ebc..8d2a37b39 100644 --- a/src/components/ExploreHome/CategoryPage.js +++ b/src/social/components/ExploreHome/CategoryPage.js @@ -1,8 +1,8 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; -import { getCommunities, getCategory } from 'mock'; +import { getCommunities, getCategory } from '~/mock'; import Community from './Community'; diff --git a/src/components/ExploreHome/Community.js b/src/social/components/ExploreHome/Community.js similarity index 83% rename from src/components/ExploreHome/Community.js rename to src/social/components/ExploreHome/Community.js index a4953d99e..3cdad1eaa 100644 --- a/src/components/ExploreHome/Community.js +++ b/src/social/components/ExploreHome/Community.js @@ -1,8 +1,8 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from 'hocs/customization'; -import CommunityName from 'components/CommunityName'; +import { customizableComponent } from '~/core/hocs/customization'; +import CommunityName from '~/social/components/CommunityName'; import { Avatar, CommunityItem, Description, Count } from './styles'; diff --git a/src/components/ExploreHome/CommunitySearch.js b/src/social/components/ExploreHome/CommunitySearch.js similarity index 91% rename from src/components/ExploreHome/CommunitySearch.js rename to src/social/components/ExploreHome/CommunitySearch.js index 84d54447b..7b6936430 100644 --- a/src/components/ExploreHome/CommunitySearch.js +++ b/src/social/components/ExploreHome/CommunitySearch.js @@ -1,9 +1,9 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import { getCommunities } from 'mock'; -import Popover from 'components/Popover'; -import { MenuItem } from 'components/Menu'; +import Popover from '~/core/components/Popover'; +import { MenuItem } from '~/core/components/Menu'; +import { customizableComponent } from '~/core/hocs/customization'; +import { getCommunities } from '~/mock'; import { Avatar, diff --git a/src/components/ExploreHome/ExploreHeader.js b/src/social/components/ExploreHome/ExploreHeader.js similarity index 92% rename from src/components/ExploreHome/ExploreHeader.js rename to src/social/components/ExploreHome/ExploreHeader.js index f86796870..48e705a62 100644 --- a/src/components/ExploreHome/ExploreHeader.js +++ b/src/social/components/ExploreHome/ExploreHeader.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import CommunitySearch from './CommunitySearch'; diff --git a/src/components/ExploreHome/TrendingCommunity.js b/src/social/components/ExploreHome/TrendingCommunity.js similarity index 86% rename from src/components/ExploreHome/TrendingCommunity.js rename to src/social/components/ExploreHome/TrendingCommunity.js index 8988ef7b9..0d9b7b251 100644 --- a/src/components/ExploreHome/TrendingCommunity.js +++ b/src/social/components/ExploreHome/TrendingCommunity.js @@ -1,8 +1,8 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from 'hocs/customization'; -import CommunityName from 'components/CommunityName'; +import { customizableComponent } from '~/core/hocs/customization'; +import CommunityName from '~/social/components/CommunityName'; import { Avatar, diff --git a/src/components/ExploreHome/index.js b/src/social/components/ExploreHome/index.js similarity index 93% rename from src/components/ExploreHome/index.js rename to src/social/components/ExploreHome/index.js index 98bb75d75..39e8eed9e 100644 --- a/src/components/ExploreHome/index.js +++ b/src/social/components/ExploreHome/index.js @@ -1,9 +1,9 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import { getCommunities, getCategories } from 'mock'; -import Modal from 'components/Modal'; -import { MenuItem } from 'components/Menu'; +import Modal from '~/core/components/Modal'; +import { MenuItem } from '~/core/components/Menu'; +import { customizableComponent } from '~/core/hocs/customization'; +import { getCommunities, getCategories } from '~/mock'; import Community from './Community'; import TrendingCommunity from './TrendingCommunity'; diff --git a/src/components/ExploreHome/styles.js b/src/social/components/ExploreHome/styles.js similarity index 97% rename from src/components/ExploreHome/styles.js rename to src/social/components/ExploreHome/styles.js index 6f4e09127..76328844b 100644 --- a/src/components/ExploreHome/styles.js +++ b/src/social/components/ExploreHome/styles.js @@ -6,9 +6,9 @@ import { faChevronLeft, faChevronRight, } from '@fortawesome/pro-regular-svg-icons'; -import Button, { SecondaryButton } from 'components/Button'; -import UIAvatar from 'components/Avatar'; -import Menu from 'components/Menu'; +import Menu from '~/core/components/Menu'; +import Button, { SecondaryButton } from '~/core/components/Button'; +import UIAvatar from '~/core/components/Avatar'; export const SearchIcon = styled(FaIcon).attrs({ icon: faSearch })` color: #898e9e; diff --git a/src/components/Feed/Feed.stories.js b/src/social/components/Feed/Feed.stories.js similarity index 97% rename from src/components/Feed/Feed.stories.js rename to src/social/components/Feed/Feed.stories.js index 660deff8f..f1d18ae02 100644 --- a/src/components/Feed/Feed.stories.js +++ b/src/social/components/Feed/Feed.stories.js @@ -1,7 +1,7 @@ import React from 'react'; import styled from 'styled-components'; import { EkoPostTargetType } from 'eko-sdk'; -import useOneUser from 'hooks/useOneUser'; +import useOneUser from '~/mock/useOneUser'; import Feed from '.'; export default { diff --git a/src/components/Feed/index.js b/src/social/components/Feed/index.js similarity index 84% rename from src/components/Feed/index.js rename to src/social/components/Feed/index.js index b1121fe7f..e32009342 100644 --- a/src/components/Feed/index.js +++ b/src/social/components/Feed/index.js @@ -1,10 +1,10 @@ import React from 'react'; import PropTypes from 'prop-types'; import { EkoPostTargetType } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; -import PostCompose from 'components/PostCompose'; -import Post from 'components/Post'; -import EmptyFeed from 'components/EmptyFeed'; +import PostCompose from '~/social/components/PostCompose'; +import Post from '~/social/components/Post'; +import { customizableComponent } from '~/core/hocs/customization'; +import EmptyFeed from '~/social/components/EmptyFeed'; import useFeedSdk from './useFeedSdk'; import { FeedScrollContainer } from './styles'; diff --git a/src/components/Feed/styles.js b/src/social/components/Feed/styles.js similarity index 100% rename from src/components/Feed/styles.js rename to src/social/components/Feed/styles.js diff --git a/src/components/Feed/useFeedSdk.js b/src/social/components/Feed/useFeedSdk.js similarity index 84% rename from src/components/Feed/useFeedSdk.js rename to src/social/components/Feed/useFeedSdk.js index a9435290e..8575fd397 100644 --- a/src/components/Feed/useFeedSdk.js +++ b/src/social/components/Feed/useFeedSdk.js @@ -1,5 +1,5 @@ import { FeedRepository, EkoPostTargetType } from 'eko-sdk'; -import useLiveCollection from 'hooks/useLiveCollection'; +import useLiveCollection from '~/core/hooks/useLiveCollection'; const { getGlobalFeed, getCommunityFeed, getUserFeed, getMyFeed } = FeedRepository; @@ -11,9 +11,7 @@ const useFeedSdk = ({ targetType, targetId }) => { [EkoPostTargetType.MyFeed]: getMyFeed, }; - const [posts, hasMore, loadMore] = useLiveCollection(FeedQueryTypes[targetType], [], () => {}, [ - targetId, - ]); + const [posts, hasMore, loadMore] = useLiveCollection(FeedQueryTypes[targetType], [targetType]); return [posts, hasMore, loadMore]; }; diff --git a/src/components/FeedHeaderTabs/index.js b/src/social/components/FeedHeaderTabs/index.js similarity index 63% rename from src/components/FeedHeaderTabs/index.js rename to src/social/components/FeedHeaderTabs/index.js index c4c893b3c..8940df49b 100644 --- a/src/components/FeedHeaderTabs/index.js +++ b/src/social/components/FeedHeaderTabs/index.js @@ -1,4 +1,4 @@ -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { FeedHeaderTabs } from './styles'; diff --git a/src/components/FeedHeaderTabs/styles.js b/src/social/components/FeedHeaderTabs/styles.js similarity index 79% rename from src/components/FeedHeaderTabs/styles.js rename to src/social/components/FeedHeaderTabs/styles.js index 03ac01967..0dbb3a14b 100644 --- a/src/components/FeedHeaderTabs/styles.js +++ b/src/social/components/FeedHeaderTabs/styles.js @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import UITabs from 'components/Tabs'; +import UITabs from '~/core/components/Tabs'; export const FeedHeaderTabs = styled(UITabs)` background: #ffffff; diff --git a/src/components/FeedLayout/index.js b/src/social/components/FeedLayout/index.js similarity index 80% rename from src/components/FeedLayout/index.js rename to src/social/components/FeedLayout/index.js index 46fba7f0d..cb1943db4 100644 --- a/src/components/FeedLayout/index.js +++ b/src/social/components/FeedLayout/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { LayoutContainer } from './styles'; diff --git a/src/components/FeedLayout/styles.js b/src/social/components/FeedLayout/styles.js similarity index 100% rename from src/components/FeedLayout/styles.js rename to src/social/components/FeedLayout/styles.js diff --git a/src/components/FeedSideMenu/index.js b/src/social/components/FeedSideMenu/index.js similarity index 89% rename from src/components/FeedSideMenu/index.js rename to src/social/components/FeedSideMenu/index.js index 11e50abe0..920130216 100644 --- a/src/components/FeedSideMenu/index.js +++ b/src/social/components/FeedSideMenu/index.js @@ -1,9 +1,9 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; -import { getMyCommunities } from 'mock'; -import CommunityItem from 'components/CommunityItem'; -import SideMenuItem from 'components/SideMenuItem'; +import SideMenuItem from '~/core/components/SideMenuItem'; +import CommunityItem from '~/social/components/CommunityItem'; +import { customizableComponent } from '~/core/hocs/customization'; +import { getMyCommunities } from '~/mock'; import { SideMenuListContainer, diff --git a/src/components/FeedSideMenu/styles.js b/src/social/components/FeedSideMenu/styles.js similarity index 100% rename from src/components/FeedSideMenu/styles.js rename to src/social/components/FeedSideMenu/styles.js diff --git a/src/components/ImageGallery/index.js b/src/social/components/ImageGallery/index.js similarity index 95% rename from src/components/ImageGallery/index.js rename to src/social/components/ImageGallery/index.js index ef215cd03..b7ce3e6c9 100644 --- a/src/components/ImageGallery/index.js +++ b/src/social/components/ImageGallery/index.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { ImageGalleryContainer, diff --git a/src/components/ImageGallery/styles.js b/src/social/components/ImageGallery/styles.js similarity index 100% rename from src/components/ImageGallery/styles.js rename to src/social/components/ImageGallery/styles.js diff --git a/src/components/Images/Image.js b/src/social/components/Images/Image.js similarity index 92% rename from src/components/Images/Image.js rename to src/social/components/Images/Image.js index 97c7c187e..c61120b15 100644 --- a/src/components/Images/Image.js +++ b/src/social/components/Images/Image.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { ImageContainer, @@ -11,7 +11,7 @@ import { CircleButton, } from './styles'; -import { ProgressBar } from '../ProgressBar'; +import { ProgressBar } from '~/core/components/ProgressBar'; const Image = ({ image, onClick, onRemove, numberOfHiddenImages, setImageLoaded }) => { // simulate progress animation diff --git a/src/components/Images/index.js b/src/social/components/Images/index.js similarity index 90% rename from src/components/Images/index.js rename to src/social/components/Images/index.js index 7abee5388..f3a4b4932 100644 --- a/src/components/Images/index.js +++ b/src/social/components/Images/index.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; -import ImageGallery from 'components/ImageGallery'; +import ImageGallery from '~/social/components/ImageGallery'; import Image from './Image'; import { ImagesContainer } from './styles'; diff --git a/src/components/Images/styles.js b/src/social/components/Images/styles.js similarity index 100% rename from src/components/Images/styles.js rename to src/social/components/Images/styles.js diff --git a/src/components/LoadMore/index.js b/src/social/components/LoadMore/index.js similarity index 100% rename from src/components/LoadMore/index.js rename to src/social/components/LoadMore/index.js diff --git a/src/components/LoadMore/styles.js b/src/social/components/LoadMore/styles.js similarity index 91% rename from src/components/LoadMore/styles.js rename to src/social/components/LoadMore/styles.js index 74414f942..9716f42ad 100644 --- a/src/components/LoadMore/styles.js +++ b/src/social/components/LoadMore/styles.js @@ -2,7 +2,7 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faChevronDown } from '@fortawesome/pro-regular-svg-icons'; -import Button from 'components/Button'; +import Button from '~/core/components/Button'; export const LoadMoreButton = styled(Button)` width: 100%; diff --git a/src/components/Post/Post.stories.js b/src/social/components/Post/Post.stories.js similarity index 84% rename from src/components/Post/Post.stories.js rename to src/social/components/Post/Post.stories.js index 751bbb2dd..73bb5d38c 100644 --- a/src/components/Post/Post.stories.js +++ b/src/social/components/Post/Post.stories.js @@ -1,5 +1,5 @@ import React from 'react'; -import useOnePost from 'hooks/useOnePost'; +import useOnePost from '~/mock/useOnePost'; import Post from '.'; export default { diff --git a/src/components/Post/index.js b/src/social/components/Post/index.js similarity index 82% rename from src/components/Post/index.js rename to src/social/components/Post/index.js index 05607d850..d4296d85e 100644 --- a/src/components/Post/index.js +++ b/src/social/components/Post/index.js @@ -3,18 +3,18 @@ import PropTypes from 'prop-types'; import { PostRepository, UserRepository } from 'eko-sdk'; import Truncate from 'react-truncate-markup'; import cx from 'classnames'; -import { customizableComponent } from 'hocs/customization'; -import useLiveObject from 'hooks/useLiveObject'; -import Linkify from 'components/Linkify'; -import Modal from 'components/Modal'; -import Time from 'components/Time'; -import { confirm } from 'components/Confirm'; +import Modal from '~/core/components/Modal'; +import Time from '~/core/components/Time'; -import EngagementBar from 'components/EngagementBar'; -import Avatar from 'components/Avatar'; -import Files from 'components/Files'; -import Images from 'components/Images'; -import PostComposeEdit from 'components/PostComposeEdit'; +import PostComposeEdit from '~/social/components/PostComposeEdit'; +import Linkify from '~/core/components/Linkify'; +import Images from '~/social/components/Images'; +import Files from '~/core/components/Files'; +import EngagementBar from '~/social/components/EngagementBar'; +import { confirm } from '~/core/components/Confirm'; +import Avatar from '~/core/components/Avatar'; +import useLiveObject from '~/core/hooks/useLiveObject'; +import { customizableComponent } from '~/core/hocs/customization'; import { PostContainer, @@ -41,17 +41,12 @@ const Post = ({ postId, onPostAuthorClick = () => {}, className = '' }) => { const closeEditingPostModal = () => setIsEditing(false); const expand = () => setIsExpanded(true); - const post = useLiveObject(() => PostRepository.postForId(postId), {}); + const post = useLiveObject(() => PostRepository.postForId(postId), [postId]); const isPostReady = !!post.postId; const { postedUserId, createdAt, data = {} } = post; const { text = '', files = [], images = [] } = data; - const postAuthor = useLiveObject( - () => userRepo.userForId(postedUserId), - {}, - () => !postedUserId, - [postedUserId], - ); + const postAuthor = useLiveObject(() => userRepo.userForId(postedUserId), [postedUserId]); const handleDeletePost = async () => { try { diff --git a/src/components/Post/styles.js b/src/social/components/Post/styles.js similarity index 88% rename from src/components/Post/styles.js rename to src/social/components/Post/styles.js index b935f7139..f1008f834 100644 --- a/src/components/Post/styles.js +++ b/src/social/components/Post/styles.js @@ -1,7 +1,7 @@ import styled from 'styled-components'; -import { SecondaryButton } from 'components/Button'; -import UIOptions from 'components/Options'; +import UIOptions from '~/core/components/Options'; +import { SecondaryButton } from '~/core/components/Button'; export const Options = styled(UIOptions)` margin-left: auto; diff --git a/src/components/PostCompose/AuthorSelector.js b/src/social/components/PostCompose/AuthorSelector.js similarity index 89% rename from src/components/PostCompose/AuthorSelector.js rename to src/social/components/PostCompose/AuthorSelector.js index 39e1e84d5..7fa644564 100644 --- a/src/components/PostCompose/AuthorSelector.js +++ b/src/social/components/PostCompose/AuthorSelector.js @@ -1,8 +1,8 @@ import React, { useState } from 'react'; -import { customizableComponent } from 'hocs/customization'; -import Popover from 'components/Popover'; -import Menu, { MenuItem } from 'components/Menu'; +import Popover from '~/core/components/Popover'; +import Menu, { MenuItem } from '~/core/components/Menu'; +import { customizableComponent } from '~/core/hocs/customization'; import { AuthorSelectorContainer, CommunitySeparator, SelectIcon, Avatar } from './styles'; diff --git a/src/components/PostCompose/PostAsCommunity.js b/src/social/components/PostCompose/PostAsCommunity.js similarity index 100% rename from src/components/PostCompose/PostAsCommunity.js rename to src/social/components/PostCompose/PostAsCommunity.js diff --git a/src/components/PostCompose/PostCompose.stories.js b/src/social/components/PostCompose/PostCompose.stories.js similarity index 100% rename from src/components/PostCompose/PostCompose.stories.js rename to src/social/components/PostCompose/PostCompose.stories.js diff --git a/src/components/PostCompose/index.js b/src/social/components/PostCompose/index.js similarity index 96% rename from src/components/PostCompose/index.js rename to src/social/components/PostCompose/index.js index 80d98b1d7..e728f8d09 100644 --- a/src/components/PostCompose/index.js +++ b/src/social/components/PostCompose/index.js @@ -2,12 +2,12 @@ import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import cx from 'classnames'; import { PostRepository, EkoPostTargetType } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; -import Files from 'components/Files'; -import Images from 'components/Images'; - -import { confirm } from 'components/Confirm'; import { isEqual } from 'helpers'; +import Images from '~/social/components/Images'; + +import Files from '~/core/components/Files'; +import { confirm } from '~/core/components/Confirm'; +import { customizableComponent } from '~/core/hocs/customization'; import PostAsCommunity from './PostAsCommunity'; import AuthorSelector from './AuthorSelector'; import { isIdenticalAuthor } from './utils'; diff --git a/src/components/PostCompose/styles.js b/src/social/components/PostCompose/styles.js similarity index 96% rename from src/components/PostCompose/styles.js rename to src/social/components/PostCompose/styles.js index 909db184d..2e6dd6acd 100644 --- a/src/components/PostCompose/styles.js +++ b/src/social/components/PostCompose/styles.js @@ -3,8 +3,8 @@ import TextareaAutosize from 'react-autosize-textarea'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faPaperclip, faImage } from '@fortawesome/pro-regular-svg-icons'; import { faSortDown } from '@fortawesome/pro-solid-svg-icons'; -import { PrimaryButton } from 'components/Button'; -import UIAvatar from 'components/Avatar'; +import { PrimaryButton } from '~/core/components/Button'; +import UIAvatar from '~/core/components/Avatar'; // TODO add icon button export const ImagePostIcon = styled(FaIcon).attrs({ icon: faImage })` diff --git a/src/components/PostCompose/utils.js b/src/social/components/PostCompose/utils.js similarity index 89% rename from src/components/PostCompose/utils.js rename to src/social/components/PostCompose/utils.js index 936c34dbe..19e08aabb 100644 --- a/src/components/PostCompose/utils.js +++ b/src/social/components/PostCompose/utils.js @@ -1,4 +1,4 @@ -import { notification } from 'components/Notification'; +import { notification } from '~/core/components/Notification'; export const MAX_IMAGES = 10; export const MAX_FILES = 10; diff --git a/src/components/PostComposeEdit/PostComposeEdit.stories.js b/src/social/components/PostComposeEdit/PostComposeEdit.stories.js similarity index 89% rename from src/components/PostComposeEdit/PostComposeEdit.stories.js rename to src/social/components/PostComposeEdit/PostComposeEdit.stories.js index 653c1d65c..72d89d1fe 100644 --- a/src/components/PostComposeEdit/PostComposeEdit.stories.js +++ b/src/social/components/PostComposeEdit/PostComposeEdit.stories.js @@ -1,5 +1,5 @@ import React from 'react'; -import getOnePost from 'hooks/useOnePost'; +import getOnePost from '~/mock/useOnePost'; import PostComposeEdit from '.'; export default { diff --git a/src/components/PostComposeEdit/index.js b/src/social/components/PostComposeEdit/index.js similarity index 93% rename from src/components/PostComposeEdit/index.js rename to src/social/components/PostComposeEdit/index.js index fd7e637ac..51fbad4e5 100644 --- a/src/components/PostComposeEdit/index.js +++ b/src/social/components/PostComposeEdit/index.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { PostRepository } from 'eko-sdk'; -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { PostComposeContainer, PostComposeTextarea, @@ -10,7 +10,7 @@ import { FooterActionBar, PostContainer, PostButton, -} from 'components/PostCompose/styles'; +} from '~/social/components/PostCompose/styles'; const PostComposeEdit = ({ post, diff --git a/src/components/PostLikeButton/PostLikeButton.stories.js b/src/social/components/PostLikeButton/PostLikeButton.stories.js similarity index 97% rename from src/components/PostLikeButton/PostLikeButton.stories.js rename to src/social/components/PostLikeButton/PostLikeButton.stories.js index 989c4f7f6..f226cd208 100644 --- a/src/components/PostLikeButton/PostLikeButton.stories.js +++ b/src/social/components/PostLikeButton/PostLikeButton.stories.js @@ -1,6 +1,6 @@ import React from 'react'; import { useArgs } from '@storybook/client-api'; -import useOnePost from 'hooks/useOnePost'; +import useOnePost from '~/mock/useOnePost'; import StyledPostLikeButton from './PostLikeButton.styles'; import SDKPostLikeButton from '.'; diff --git a/src/components/PostLikeButton/PostLikeButton.styles.js b/src/social/components/PostLikeButton/PostLikeButton.styles.js similarity index 90% rename from src/components/PostLikeButton/PostLikeButton.styles.js rename to src/social/components/PostLikeButton/PostLikeButton.styles.js index f0541ef92..ba7b379d3 100644 --- a/src/components/PostLikeButton/PostLikeButton.styles.js +++ b/src/social/components/PostLikeButton/PostLikeButton.styles.js @@ -3,8 +3,8 @@ import PropTypes from 'prop-types'; import styled, { css } from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faThumbsUp } from '@fortawesome/pro-regular-svg-icons'; -import { customizableComponent } from 'hocs/customization'; -import { SecondaryButton } from 'components/Button'; +import { customizableComponent } from '~/core/hocs/customization'; +import { SecondaryButton } from '~/core/components/Button'; const isLikedStyle = css` color: ${({ theme }) => theme.palette.primary.main}; diff --git a/src/components/PostLikeButton/index.js b/src/social/components/PostLikeButton/index.js similarity index 100% rename from src/components/PostLikeButton/index.js rename to src/social/components/PostLikeButton/index.js diff --git a/src/components/PostLikeButton/usePostLikeSdk.js b/src/social/components/PostLikeButton/usePostLikeSdk.js similarity index 92% rename from src/components/PostLikeButton/usePostLikeSdk.js rename to src/social/components/PostLikeButton/usePostLikeSdk.js index 9240aca3a..c033d5de8 100644 --- a/src/components/PostLikeButton/usePostLikeSdk.js +++ b/src/social/components/PostLikeButton/usePostLikeSdk.js @@ -1,9 +1,9 @@ import { PostRepository } from 'eko-sdk'; -import useLiveObject from 'hooks/useLiveObject'; import { LIKE_REACTION_KEY } from 'constants'; +import useLiveObject from '~/core/hooks/useLiveObject'; const usePostLikeSdk = ({ postId, onLikeSuccess, onUnlikeSuccess }) => { - const post = useLiveObject(() => PostRepository.postForId(postId), {}); + const post = useLiveObject(() => PostRepository.postForId(postId), [postId]); const isPostReady = !!post.postId; const userHasLikedPost = isPostReady && post.myReactions && post.myReactions.includes(LIKE_REACTION_KEY); diff --git a/src/components/Profile/UserProfileForm.js b/src/social/components/Profile/UserProfileForm.js similarity index 96% rename from src/components/Profile/UserProfileForm.js rename to src/social/components/Profile/UserProfileForm.js index dee8b6830..d7102f7b3 100644 --- a/src/components/Profile/UserProfileForm.js +++ b/src/social/components/Profile/UserProfileForm.js @@ -18,9 +18,9 @@ import { Label, LabelCounterWrapper, TextField, -} from 'components/CommunityForm/styles'; +} from '~/social/components/CommunityForm/styles'; -import { PrimaryButton } from 'components/Button'; +import { PrimaryButton } from '~/core/components/Button'; import { ButtonContainer } from './styles'; diff --git a/src/components/Profile/index.js b/src/social/components/Profile/index.js similarity index 92% rename from src/components/Profile/index.js rename to src/social/components/Profile/index.js index 6aa14b8e9..90e3ae03c 100644 --- a/src/components/Profile/index.js +++ b/src/social/components/Profile/index.js @@ -1,12 +1,12 @@ import React from 'react'; import { toHumanString } from 'human-readable-numbers'; import Truncate from 'react-truncate-markup'; -import { customizableComponent } from 'hocs/customization'; +import { confirm } from '~/core/components/Confirm'; +import Button, { PrimaryButton } from '~/core/components/Button'; +import { customizableComponent } from '~/core/hocs/customization'; -import { useCommunitiesMock, getMyCommunityIds, usePostsMock } from 'mock'; -import { confirm } from 'components/Confirm'; +import { useCommunitiesMock, getMyCommunityIds, usePostsMock } from '~/mock'; -import Button, { PrimaryButton } from 'components/Button'; import { Count, Avatar, diff --git a/src/components/Profile/styles.js b/src/social/components/Profile/styles.js similarity index 92% rename from src/components/Profile/styles.js rename to src/social/components/Profile/styles.js index 776666893..054417053 100644 --- a/src/components/Profile/styles.js +++ b/src/social/components/Profile/styles.js @@ -2,8 +2,8 @@ import styled from 'styled-components'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; import { faPlus, faPencil } from '@fortawesome/pro-regular-svg-icons'; -import UIAvatar from 'components/Avatar'; -import UIOptions from 'components/Options'; +import UIOptions from '~/core/components/Options'; +import UIAvatar from '~/core/components/Avatar'; export const PlusIcon = styled(FaIcon).attrs({ icon: faPlus })` font-size: 15px; diff --git a/src/components/ProfileSettings/index.js b/src/social/components/ProfileSettings/index.js similarity index 84% rename from src/components/ProfileSettings/index.js rename to src/social/components/ProfileSettings/index.js index 3abbd2af1..4429f04a7 100644 --- a/src/components/ProfileSettings/index.js +++ b/src/social/components/ProfileSettings/index.js @@ -1,10 +1,10 @@ import React, { useState } from 'react'; -import { UserProfileForm } from 'components/Profile/UserProfileForm'; -import { ConditionalRender } from 'components/ConditionalRender'; -import { BackLink } from 'components/BackLink'; -import { customizableComponent } from 'hocs/customization'; import { getUser } from 'helpers/getUser'; +import { UserProfileForm } from '~/social/components/Profile/UserProfileForm'; +import { ConditionalRender } from '~/core/components/ConditionalRender'; +import { BackLink } from '~/core/components/BackLink'; +import { customizableComponent } from '~/core/hocs/customization'; import { ProfileSettingsTabs, Container, diff --git a/src/components/ProfileSettings/styles.js b/src/social/components/ProfileSettings/styles.js similarity index 90% rename from src/components/ProfileSettings/styles.js rename to src/social/components/ProfileSettings/styles.js index d400981c9..7bdebdfa3 100644 --- a/src/components/ProfileSettings/styles.js +++ b/src/social/components/ProfileSettings/styles.js @@ -1,9 +1,9 @@ import styled from 'styled-components'; -import UIProfileSettingsTabs from 'components/ProfileSettingsTabs'; -import Button, { PrimaryButton } from 'components/Button'; import { faPlus } from '@fortawesome/pro-regular-svg-icons'; import { FontAwesomeIcon as FaIcon } from '@fortawesome/react-fontawesome'; -import UIAvatar from 'components/Avatar'; +import UIProfileSettingsTabs from '~/social/components/ProfileSettingsTabs'; +import Button, { PrimaryButton } from '~/core/components/Button'; +import UIAvatar from '~/core/components/Avatar'; export const ProfileSettingsTabs = styled(UIProfileSettingsTabs)``; diff --git a/src/components/ProfileSettingsTabs/index.js b/src/social/components/ProfileSettingsTabs/index.js similarity index 66% rename from src/components/ProfileSettingsTabs/index.js rename to src/social/components/ProfileSettingsTabs/index.js index 6813aedf3..952c8be42 100644 --- a/src/components/ProfileSettingsTabs/index.js +++ b/src/social/components/ProfileSettingsTabs/index.js @@ -1,4 +1,4 @@ -import { customizableComponent } from 'hocs/customization'; +import { customizableComponent } from '~/core/hocs/customization'; import { ProfileSettingsTabs } from './styles'; diff --git a/src/components/ProfileSettingsTabs/styles.js b/src/social/components/ProfileSettingsTabs/styles.js similarity index 79% rename from src/components/ProfileSettingsTabs/styles.js rename to src/social/components/ProfileSettingsTabs/styles.js index f79fedfbe..48317c70b 100644 --- a/src/components/ProfileSettingsTabs/styles.js +++ b/src/social/components/ProfileSettingsTabs/styles.js @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import UITabs from 'components/Tabs'; +import UITabs from '~/core/components/Tabs'; export const ProfileSettingsTabs = styled(UITabs)` background: #ffffff; diff --git a/src/components/UserFeedHeader/index.js b/src/social/components/UserFeedHeader/index.js similarity index 77% rename from src/components/UserFeedHeader/index.js rename to src/social/components/UserFeedHeader/index.js index b25cb2e80..e996d4093 100644 --- a/src/components/UserFeedHeader/index.js +++ b/src/social/components/UserFeedHeader/index.js @@ -1,6 +1,6 @@ import React from 'react'; -import { customizableComponent } from 'hocs/customization'; -import Tab from 'components/Tab'; +import Tab from '~/core/components/Tab'; +import { customizableComponent } from '~/core/hocs/customization'; import { UserFeedHeaderContainer, Tabs } from './styles'; diff --git a/src/components/UserFeedHeader/styles.js b/src/social/components/UserFeedHeader/styles.js similarity index 100% rename from src/components/UserFeedHeader/styles.js rename to src/social/components/UserFeedHeader/styles.js diff --git a/src/social/hocs/.gitkeep b/src/social/hocs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/src/social/hooks/.gitkeep b/src/social/hooks/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/util/create-component.js b/util/create-component.js deleted file mode 100644 index af238cc2c..000000000 --- a/util/create-component.js +++ /dev/null @@ -1,31 +0,0 @@ -/* eslint no-console: 0 */ -/* eslint import/no-extraneous-dependencies: 0 */ -require('colors'); -const fs = require('fs'); -const templates = require('./templates'); - -const componentName = process.argv[2]; - -if (!componentName) { - console.error('Please supply a valid component name'.red); - process.exit(1); -} - -console.log(`Creating Component Templates with name: ${componentName}`); - -const componentDirectory = `./src/${componentName}`; - -if (fs.existsSync(componentDirectory)) { - console.error(`Component ${componentName} already exists.`.red); - process.exit(1); -} - -fs.mkdirSync(componentDirectory); - -const generatedTemplates = templates.map(template => template(componentName)); - -generatedTemplates.forEach(template => { - fs.writeFileSync(`${componentDirectory}/${componentName}${template.extension}`, template.content); -}); - -console.log(`Successfully created component under: ${componentDirectory.green}`); diff --git a/util/templates/component.js b/util/templates/component.js deleted file mode 100644 index 177de8efa..000000000 --- a/util/templates/component.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = componentName => ({ - content: `// Generated with util/create-component.js -import React from "react"; - -import { ${componentName}Props } from "./${componentName}.types"; - -const ${componentName}: React.FC<${componentName}Props> = ({ foo }) => ( -
{foo}
-); - -export default ${componentName}; - -`, - extension: `.tsx`, -}); diff --git a/util/templates/component.stories.js b/util/templates/component.stories.js deleted file mode 100644 index 9a09b34ff..000000000 --- a/util/templates/component.stories.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = componentName => ({ - content: `// Generated with util/create-component.js -import React from "react"; -import ${componentName} from "./${componentName}"; - -export default { - title: "${componentName}" -}; - -export const WithBar = () => <${componentName} foo="bar" />; - -export const WithBaz = () => <${componentName} foo="baz" />; -`, - extension: `.stories.tsx`, -}); diff --git a/util/templates/component.test.js b/util/templates/component.test.js deleted file mode 100644 index ab69166dd..000000000 --- a/util/templates/component.test.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = componentName => ({ - content: `// Generated with util/create-component.js -import React from "react"; -import { render } from "@testing-library/react"; - -import ${componentName} from "./${componentName}"; -import { ${componentName}Props } from "./${componentName}.types"; - -describe("Test Component", () => { - let props: ${componentName}Props; - - beforeEach(() => { - props = { - foo: "bar" - }; - }); - - const renderComponent = () => render(<${componentName} {...props} />); - - it("should render foo text correctly", () => { - props.foo = "test"; - const { getByTestId } = renderComponent(); - - const component = getByTestId("${componentName}"); - - expect(component).toHaveTextContent("test"); - }); -}); -`, - extension: `.test.tsx`, -}); diff --git a/util/templates/component.types.js b/util/templates/component.types.js deleted file mode 100644 index 37d387c0b..000000000 --- a/util/templates/component.types.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = componentName => ({ - content: `// Generated with util/create-component.js -export interface ${componentName}Props { - foo: string; -} -`, - extension: `.types.ts`, -}); diff --git a/util/templates/index.js b/util/templates/index.js deleted file mode 100644 index af9aff2f7..000000000 --- a/util/templates/index.js +++ /dev/null @@ -1,6 +0,0 @@ -const component = require('./component'); -const componentTypes = require('./component.types'); -const componentStories = require('./component.stories'); -const componentTests = require('./component.test'); - -module.exports = [component, componentTypes, componentStories, componentTests]; diff --git a/version-publish.sh b/version-publish.sh deleted file mode 100755 index 70ce2c2b7..000000000 --- a/version-publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -echo "This script will publish a new version of ui-kit to npm." - -read -p "Would you like to continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1 - -read -p "How would you like to bump the version? (major/minor/patch): " versionBump - -npm version $versionBump - - diff --git a/webpack.config.js b/webpack.config.js index 86360a2a3..63b9715b2 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -24,6 +24,7 @@ module.exports = (_, argv) => ({ ].filter(Boolean), resolve: { alias: { + '~': path.resolve(__dirname, 'src'), components: path.resolve(__dirname, 'src/components'), icons: path.resolve(__dirname, 'src/icons'), hocs: path.resolve(__dirname, 'src/hocs'), From 8da8e3db170ac7ec527a61a5ebc7d3688134cae5 Mon Sep 17 00:00:00 2001 From: Chaiwat Trisuwan Date: Tue, 29 Sep 2020 18:19:43 +0000 Subject: [PATCH 177/740] [Feature] UKT-507: small components to stories (tab component) --- src/core/components/Tab/Tab.stories.js | 16 ------- src/core/components/Tab/index.js | 3 -- src/core/components/Tab/styles.js | 27 ----------- src/core/components/Tabs/Tabs.stories.js | 58 ++++++++++++++++++++++++ src/core/components/Tabs/index.js | 17 ++++--- src/core/components/Tabs/styles.js | 45 +++++++++++++++++- 6 files changed, 111 insertions(+), 55 deletions(-) delete mode 100644 src/core/components/Tab/Tab.stories.js delete mode 100644 src/core/components/Tab/index.js delete mode 100644 src/core/components/Tab/styles.js create mode 100644 src/core/components/Tabs/Tabs.stories.js diff --git a/src/core/components/Tab/Tab.stories.js b/src/core/components/Tab/Tab.stories.js deleted file mode 100644 index a76cfc31a..000000000 --- a/src/core/components/Tab/Tab.stories.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import Tab from '.'; - -export default { - title: 'Components/Tab', -}; - -export const Default = () => Tab text; - -export const Active = () => Tab text; - -export const Tabs = () => ( -
- Active Tab Just Tab -
-); diff --git a/src/core/components/Tab/index.js b/src/core/components/Tab/index.js deleted file mode 100644 index b5998849b..000000000 --- a/src/core/components/Tab/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import { Tab } from './styles'; - -export default Tab; diff --git a/src/core/components/Tab/styles.js b/src/core/components/Tab/styles.js deleted file mode 100644 index e96e60bd3..000000000 --- a/src/core/components/Tab/styles.js +++ /dev/null @@ -1,27 +0,0 @@ -import styled from 'styled-components'; - -export const Tab = styled.span` - display: inline-block; - ${({ theme }) => theme.typography.bodyBold} - cursor: pointer; - text-align: center; - padding: 12px; - margin-right: 8px; - ${({ theme, active }) => - active - ? ` -border-bottom: 2px solid ${theme.palette.primary.main}; -color: ${theme.palette.primary.main}; -` - : ` - color: #abaeba; - &:hover { - color: ${theme.palette.neutral.shade1}; - } - &:disabled { - color: ${theme.palette.neutral.shade2}; - } -`} - - transition: border-color 0.3s; -`; diff --git a/src/core/components/Tabs/Tabs.stories.js b/src/core/components/Tabs/Tabs.stories.js new file mode 100644 index 000000000..c00b50cd4 --- /dev/null +++ b/src/core/components/Tabs/Tabs.stories.js @@ -0,0 +1,58 @@ +import React from 'react'; +import { useArgs } from '@storybook/client-api'; +import Tabs from '.'; + +export default { + title: 'Components/Tabs', + parameters: { layout: 'centered' }, +}; + +// Global config +const mockUpTabs = { + tab1: 'Tab 1', + tab2: 'Tab 2', + tab3: 'Tab 3', +}; + +// We test generation of tabs +export const TabsDistribution = ({ tabs, onChange }) => { + return ; +}; + +TabsDistribution.args = { + tabs: { ...mockUpTabs }, +}; + +TabsDistribution.argTypes = { + tabs: { + control: { + type: 'object', + }, + }, + onChange: { action: 'onChange' }, +}; + +export const ChangingTabs = () => { + const [{ activeTab, onChange }, updateArgs] = useArgs(); + + const setActiveTab = val => { + onChange(val); + updateArgs({ activeTab: val }); + }; + + return ; +}; + +ChangingTabs.args = { + activeTab: Object.values(mockUpTabs)[0], +}; + +ChangingTabs.argTypes = { + activeTab: { + control: { + type: 'select', + options: Object.fromEntries(Object.entries(mockUpTabs).map(arr => arr.reverse())), + }, + }, + onChange: { action: 'onChange' }, +}; diff --git a/src/core/components/Tabs/index.js b/src/core/components/Tabs/index.js index 1bae7fd87..cb49e901b 100644 --- a/src/core/components/Tabs/index.js +++ b/src/core/components/Tabs/index.js @@ -1,16 +1,19 @@ import React from 'react'; import { customizableComponent } from '~/core/hocs/customization'; -import Tab from '~/core/components/Tab'; -import { TabsContainer } from './styles'; +import { TabsContainer, TabsList, TabItem, TabButton } from './styles'; const Tabs = ({ className, tabs, activeTab, onChange }) => ( - {tabs.map(tab => ( - onChange(tab)}> - {tab} - - ))} + + {Object.entries(tabs).map(([key, val]) => ( + + onChange(key)}> + {val} + + + ))} + ); diff --git a/src/core/components/Tabs/styles.js b/src/core/components/Tabs/styles.js index 8a5fa1afc..8f1f46f65 100644 --- a/src/core/components/Tabs/styles.js +++ b/src/core/components/Tabs/styles.js @@ -1,6 +1,47 @@ import styled from 'styled-components'; -export const TabsContainer = styled.div` - border-bottom: 1px solid #edeef2; +export const TabsContainer = styled.nav` + background: #ffffff; + border-radius: 4px 4px 0 0; + border: 1px solid #edeef2; +`; + +export const TabsList = styled.ul` + margin: 0; padding: 0 16px; + list-style-type: none; +`; + +export const TabItem = styled.li` + display: inline-block; +`; + +export const TabButton = styled.button` + padding: 0.75em; + margin-right: 0.5em; + background-color: #ffffff; + border: none; + border-bottom: 2px solid transparent; + cursor: pointer; + outline: none; + color: #abaeba; + ${({ theme }) => theme.typography.bodyBold} + text-align: center; + + &:hover { + color: #818698; + } + + &.active { + ${({ theme }) => ` + border-bottom: 2px solid ${theme.palette.primary.main}; + color: ${theme.palette.primary.main}; + `} + } + + &:disabled { + color: #abaeba; + } + + transition: border-color 0.3s; `; From 2aaa5357a920947fac526b2a65443c6adaa70485 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Thu, 24 Sep 2020 16:41:27 +0700 Subject: [PATCH 178/740] refactoring of file icons --- src/icons/Icon.stories.js | 31 +++++++++++++++++++++++++++++++ src/icons/files/Audio.js | 13 +++++++++++++ src/icons/files/Avi.js | 11 +++++++++++ src/icons/files/Csv.js | 13 +++++++++++++ src/icons/files/Default.js | 13 +++++++++++++ src/icons/files/Doc.js | 13 +++++++++++++ src/icons/files/Exe.js | 11 +++++++++++ src/icons/files/File.js | 31 +++++++++++++++++++++++++++++++ src/icons/files/Html.js | 13 +++++++++++++ src/icons/files/Img.js | 23 +++++++++++++++++++++++ src/icons/files/Mov.js | 11 +++++++++++ src/icons/files/Mp3.js | 13 +++++++++++++ src/icons/files/Mp4.js | 11 +++++++++++ src/icons/files/Mpeg.js | 11 +++++++++++ src/icons/files/Pdf.js | 13 +++++++++++++ src/icons/files/Ppt.js | 19 +++++++++++++++++++ src/icons/files/Ppx.js | 17 +++++++++++++++++ src/icons/files/Rar.js | 29 +++++++++++++++++++++++++++++ src/icons/files/Txt.js | 13 +++++++++++++ src/icons/files/Xls.js | 13 +++++++++++++ src/icons/files/Zip.js | 13 +++++++++++++ src/icons/index.js | 21 +++++++++++++++++++++ 22 files changed, 356 insertions(+) create mode 100644 src/icons/files/Audio.js create mode 100644 src/icons/files/Avi.js create mode 100644 src/icons/files/Csv.js create mode 100644 src/icons/files/Default.js create mode 100644 src/icons/files/Doc.js create mode 100644 src/icons/files/Exe.js create mode 100644 src/icons/files/File.js create mode 100644 src/icons/files/Html.js create mode 100644 src/icons/files/Img.js create mode 100644 src/icons/files/Mov.js create mode 100644 src/icons/files/Mp3.js create mode 100644 src/icons/files/Mp4.js create mode 100644 src/icons/files/Mpeg.js create mode 100644 src/icons/files/Pdf.js create mode 100644 src/icons/files/Ppt.js create mode 100644 src/icons/files/Ppx.js create mode 100644 src/icons/files/Rar.js create mode 100644 src/icons/files/Txt.js create mode 100644 src/icons/files/Xls.js create mode 100644 src/icons/files/Zip.js diff --git a/src/icons/Icon.stories.js b/src/icons/Icon.stories.js index 594fc0b64..8ccd7a94c 100644 --- a/src/icons/Icon.stories.js +++ b/src/icons/Icon.stories.js @@ -7,3 +7,34 @@ export default { }; export const User = () => ; + +export const Files = () => ( +
+ + + + + + + + + + + + + + + + + + + +
+); diff --git a/src/icons/files/Audio.js b/src/icons/files/Audio.js new file mode 100644 index 000000000..50e2f3e2d --- /dev/null +++ b/src/icons/files/Audio.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#FFB400' }) => ( + + + +); diff --git a/src/icons/files/Avi.js b/src/icons/files/Avi.js new file mode 100644 index 000000000..0137e55a0 --- /dev/null +++ b/src/icons/files/Avi.js @@ -0,0 +1,11 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#5856D6' }) => ( + + + +); diff --git a/src/icons/files/Csv.js b/src/icons/files/Csv.js new file mode 100644 index 000000000..5aa77c373 --- /dev/null +++ b/src/icons/files/Csv.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#00BED4' }) => ( + + + +); diff --git a/src/icons/files/Default.js b/src/icons/files/Default.js new file mode 100644 index 000000000..62bde84ef --- /dev/null +++ b/src/icons/files/Default.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#999' }) => ( + + + +); diff --git a/src/icons/files/Doc.js b/src/icons/files/Doc.js new file mode 100644 index 000000000..53a7c7404 --- /dev/null +++ b/src/icons/files/Doc.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#0E86FE' }) => ( + + + +); diff --git a/src/icons/files/Exe.js b/src/icons/files/Exe.js new file mode 100644 index 000000000..76e5a22b2 --- /dev/null +++ b/src/icons/files/Exe.js @@ -0,0 +1,11 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#5C6070' }) => ( + + + +); diff --git a/src/icons/files/File.js b/src/icons/files/File.js new file mode 100644 index 000000000..0d7db2982 --- /dev/null +++ b/src/icons/files/File.js @@ -0,0 +1,31 @@ +import React from 'react'; + +export default ({ bg = '#fff', fg = '#EBECEF', children }) => ( + + + + + {children} + +); diff --git a/src/icons/files/Html.js b/src/icons/files/Html.js new file mode 100644 index 000000000..d7ddd8875 --- /dev/null +++ b/src/icons/files/Html.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#1E3868' }) => ( + + + +); diff --git a/src/icons/files/Img.js b/src/icons/files/Img.js new file mode 100644 index 000000000..be8335f5d --- /dev/null +++ b/src/icons/files/Img.js @@ -0,0 +1,23 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#999' }) => ( + + + + + +); diff --git a/src/icons/files/Mov.js b/src/icons/files/Mov.js new file mode 100644 index 000000000..29e4d0b0a --- /dev/null +++ b/src/icons/files/Mov.js @@ -0,0 +1,11 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#5856D6' }) => ( + + + +); diff --git a/src/icons/files/Mp3.js b/src/icons/files/Mp3.js new file mode 100644 index 000000000..38de338aa --- /dev/null +++ b/src/icons/files/Mp3.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#FFB400' }) => ( + + + +); diff --git a/src/icons/files/Mp4.js b/src/icons/files/Mp4.js new file mode 100644 index 000000000..405be55c7 --- /dev/null +++ b/src/icons/files/Mp4.js @@ -0,0 +1,11 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#5856D6' }) => ( + + + +); diff --git a/src/icons/files/Mpeg.js b/src/icons/files/Mpeg.js new file mode 100644 index 000000000..7fd537e85 --- /dev/null +++ b/src/icons/files/Mpeg.js @@ -0,0 +1,11 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#5856D6' }) => ( + + + +); diff --git a/src/icons/files/Pdf.js b/src/icons/files/Pdf.js new file mode 100644 index 000000000..52ce573f9 --- /dev/null +++ b/src/icons/files/Pdf.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#F02B04' }) => ( + + + +); diff --git a/src/icons/files/Ppt.js b/src/icons/files/Ppt.js new file mode 100644 index 000000000..c06a0a520 --- /dev/null +++ b/src/icons/files/Ppt.js @@ -0,0 +1,19 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#FF742F' }) => ( + + + + +); diff --git a/src/icons/files/Ppx.js b/src/icons/files/Ppx.js new file mode 100644 index 000000000..f94405b49 --- /dev/null +++ b/src/icons/files/Ppx.js @@ -0,0 +1,17 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#FF742F' }) => ( + + + + +); diff --git a/src/icons/files/Rar.js b/src/icons/files/Rar.js new file mode 100644 index 000000000..a8983f464 --- /dev/null +++ b/src/icons/files/Rar.js @@ -0,0 +1,29 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#F14B5F' }) => ( + + + + + + +); diff --git a/src/icons/files/Txt.js b/src/icons/files/Txt.js new file mode 100644 index 000000000..c4259079b --- /dev/null +++ b/src/icons/files/Txt.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#795545' }) => ( + + + +); diff --git a/src/icons/files/Xls.js b/src/icons/files/Xls.js new file mode 100644 index 000000000..ce5d7d838 --- /dev/null +++ b/src/icons/files/Xls.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#27B740' }) => ( + + + +); diff --git a/src/icons/files/Zip.js b/src/icons/files/Zip.js new file mode 100644 index 000000000..a4edad392 --- /dev/null +++ b/src/icons/files/Zip.js @@ -0,0 +1,13 @@ +import React from 'react'; +import File from './File'; + +export default ({ color = '#5856D6' }) => ( + + + +); diff --git a/src/icons/index.js b/src/icons/index.js index 79cbc1e2e..a3db81042 100644 --- a/src/icons/index.js +++ b/src/icons/index.js @@ -1 +1,22 @@ export { default as User } from './User'; + +export { default as AudioFile } from './files/Audio'; +export { default as AviFile } from './files/Avi'; +export { default as CsvFile } from './files/Csv'; +export { default as DefaultFile } from './files/Default'; +export { default as DocFile } from './files/Doc'; +export { default as ExeFile } from './files/Exe'; +export { default as File } from './files/File'; +export { default as HtmlFile } from './files/Html'; +export { default as ImgFile } from './files/Img'; +export { default as MovFile } from './files/Mov'; +export { default as Mp3File } from './files/Mp3'; +export { default as Mp4File } from './files/Mp4'; +export { default as MpegFile } from './files/Mpeg'; +export { default as PdfFile } from './files/Pdf'; +export { default as PptFile } from './files/Ppt'; +export { default as PpxFile } from './files/Ppx'; +export { default as RarFile } from './files/Rar'; +export { default as TxtFile } from './files/Txt'; +export { default as XlsFile } from './files/Xls'; +export { default as ZipFile } from './files/Zip'; From 748a6c3ddc32bbf9d2cb750457e508e3eea77335 Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Tue, 29 Sep 2020 18:20:54 +0000 Subject: [PATCH 179/740] [Component] User header --- package-lock.json | 6 +-- package.json | 2 +- src/core/hooks/useFile.js | 6 +++ src/core/hooks/useUser.js | 19 +++++++ .../UserHeader/UserHeader.stories.js | 43 ++++++++++++++++ .../UserHeader/UserHeader.styles.js | 50 +++++++++++++++++++ src/social/components/UserHeader/index.js | 33 ++++++++++++ 7 files changed, 155 insertions(+), 4 deletions(-) create mode 100644 src/core/hooks/useFile.js create mode 100644 src/core/hooks/useUser.js create mode 100644 src/social/components/UserHeader/UserHeader.stories.js create mode 100644 src/social/components/UserHeader/UserHeader.styles.js create mode 100644 src/social/components/UserHeader/index.js diff --git a/package-lock.json b/package-lock.json index 81db0eabf..896814ed8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10143,9 +10143,9 @@ } }, "eko-sdk": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/eko-sdk/-/eko-sdk-4.0.13.tgz", - "integrity": "sha512-epb0ixLYfOF7/c79QSC7J1EYsY7yVzv5DhULrq00hyXt3ki45I3GjgNKClYqNkxlrqsmU6MluvPaZVXpfAeChw==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/eko-sdk/-/eko-sdk-4.0.14.tgz", + "integrity": "sha512-qWhLDybSHTdHHyYniZRlC4MI19R2YwCSlWC+XOp//AjLIn4lLtVOJeSQXWY7nSwscYNC/KpPHROQixq2zeFz+Q==", "dev": true, "requires": { "debug": "^3.1.0", diff --git a/package.json b/package.json index 0716ee333..47c5673e3 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", - "eko-sdk": "^4.0.13", + "eko-sdk": "^4.0.14", "eslint": "~6.8.0", "eslint-config-airbnb": "~18.0.1", "eslint-config-airbnb-base": "~14.0.0", diff --git a/src/core/hooks/useFile.js b/src/core/hooks/useFile.js new file mode 100644 index 000000000..8022c4cc9 --- /dev/null +++ b/src/core/hooks/useFile.js @@ -0,0 +1,6 @@ +import { FileRepository } from 'eko-sdk'; +import useLiveObject from '~/core/hooks/useLiveObject'; + +export default fileId => { + return useLiveObject(() => FileRepository.fileInformationForId(fileId), []); +}; diff --git a/src/core/hooks/useUser.js b/src/core/hooks/useUser.js new file mode 100644 index 000000000..24407fb3d --- /dev/null +++ b/src/core/hooks/useUser.js @@ -0,0 +1,19 @@ +/* eslint-disable no-nested-ternary */ + +import { UserRepository } from 'eko-sdk'; +import useLiveObject from '~/core/hooks/useLiveObject'; +import useFile from '~/core/hooks/useFile'; + +const userRepo = new UserRepository(); + +export default userId => { + const user = useLiveObject(() => userRepo.userForId(userId), []); + + const file = user.avatarCustomUrl + ? { fileUrl: user.avatarCustomUrl } + : user.avatarFileId + ? useFile(user.avatarFileId) + : {}; + + return { user, file }; +}; diff --git a/src/social/components/UserHeader/UserHeader.stories.js b/src/social/components/UserHeader/UserHeader.stories.js new file mode 100644 index 000000000..cdffe6eb6 --- /dev/null +++ b/src/social/components/UserHeader/UserHeader.stories.js @@ -0,0 +1,43 @@ +import React from 'react'; + +import UiKitUserHeader from './UserHeader.styles'; +import UiKitUserHeaderWithSdk from '.'; + +export default { + title: 'Components/User/Header', + parameters: { layout: 'centered' }, +}; + +export const UserHeader = props => ; + +UserHeader.args = { + userId: 'Web-Test', + displayName: 'Web-Test', + avatarFileUrl: 'https://via.placeholder.com/32/dfdfdf?text=foobar', + children: 'children slot', +}; + +UserHeader.argTypes = { + userId: { control: { type: 'text' } }, + displayName: { control: { type: 'text' } }, + avatarFileUrl: { control: { type: 'text' } }, + children: { control: { type: 'text' } }, + onClick: { action: 'onClick' }, +}; + +export const UserHeaderWithSdk = ({ userId, children, onClick }) => ( + + {children} + +); + +UserHeaderWithSdk.args = { + userId: 'Web-Test', + children: 'children slot', +}; + +UserHeaderWithSdk.argTypes = { + userId: { control: { type: 'text' } }, + children: { control: { type: 'text' } }, + onClick: { action: 'onClick' }, +}; diff --git a/src/social/components/UserHeader/UserHeader.styles.js b/src/social/components/UserHeader/UserHeader.styles.js new file mode 100644 index 000000000..97065003b --- /dev/null +++ b/src/social/components/UserHeader/UserHeader.styles.js @@ -0,0 +1,50 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; + +import { customizableComponent } from '~/core/hocs/customization'; + +import Avatar from '~/core/components/Avatar'; + +const UserHeaderContainer = styled.div.attrs(props => props)` + display: grid; + grid-template-areas: 'avatar title' 'avatar subtitle'; + grid-template-columns: min-content auto; + grid-template-rows: min-content min-content; + grid-gap: 0 0.5em; + padding: 1em; +`; + +const UserHeaderAvatar = styled(Avatar)` + grid-area: avatar; +`; + +const UserHeaderTitle = styled.div.attrs(props => props)` + grid-area: title; + ${({ theme }) => theme.typography.title} +`; + +const UserHeaderSubtitle = styled.div` + grid-area: subtitle; + ${({ theme }) => theme.typography.body} +`; + +const UserHeader = ({ userId, displayName, avatarFileUrl, children, onClick }) => { + return ( + + + {displayName} + {children} + + ); +}; + +UserHeader.propTypes = { + userId: PropTypes.string, + displayName: PropTypes.string, + avatarFileUrl: PropTypes.string, + children: PropTypes.node, + onClick: PropTypes.func, +}; + +export default customizableComponent('UserHeader', UserHeader); diff --git a/src/social/components/UserHeader/index.js b/src/social/components/UserHeader/index.js new file mode 100644 index 000000000..b17af63b7 --- /dev/null +++ b/src/social/components/UserHeader/index.js @@ -0,0 +1,33 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import useUser from '~/core/hooks/useUser'; +import StyledUserHeader from './UserHeader.styles'; + +const UserHeader = ({ userId, children, onClick }) => { + const { user, file } = useUser(userId); + + return ( + + {children} + + ); +}; + +UserHeader.propTypes = { + userId: PropTypes.string.isRequired, + children: PropTypes.node, + onClick: PropTypes.func, +}; + +UserHeader.defaultProps = { + children: null, + onClick: () => {}, +}; + +export default UserHeader; From 59d103fd50d464f3db200d46ddfec66ccd22694b Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Fri, 25 Sep 2020 10:54:46 +0300 Subject: [PATCH 180/740] UKT-688 - fixed work break --- src/social/components/CommunityInformation/styles.js | 2 ++ src/social/components/ExploreHome/styles.js | 1 + 2 files changed, 3 insertions(+) diff --git a/src/social/components/CommunityInformation/styles.js b/src/social/components/CommunityInformation/styles.js index 812fca97d..d709da458 100644 --- a/src/social/components/CommunityInformation/styles.js +++ b/src/social/components/CommunityInformation/styles.js @@ -41,6 +41,7 @@ export const Avatar = styled(UIAvatar).attrs({ export const CommunityName = styled.div` margin-top: 10px; + word-break: break-all; ${({ theme }) => theme.typography.headline} `; @@ -55,6 +56,7 @@ export const Count = styled.span` export const Description = styled.div` margin: 8px 0 12px; + word-break: break-all; `; export const JoinButton = styled(PrimaryButton)` diff --git a/src/social/components/ExploreHome/styles.js b/src/social/components/ExploreHome/styles.js index 76328844b..2dffce18c 100644 --- a/src/social/components/ExploreHome/styles.js +++ b/src/social/components/ExploreHome/styles.js @@ -168,6 +168,7 @@ export const CommunityItems = styled.div` export const Description = styled.div` margin-top: 5px; + word-break: break-all; `; export const Count = styled.span` From 596da4b74df720d0bb6ef1fb240130ba913cac18 Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Sun, 27 Sep 2020 14:09:37 +0300 Subject: [PATCH 181/740] UKT-681 - show error on create community name contains of spaces only --- src/social/components/CommunityForm/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/social/components/CommunityForm/index.js b/src/social/components/CommunityForm/index.js index 6d0e282d2..81b2853e6 100644 --- a/src/social/components/CommunityForm/index.js +++ b/src/social/components/CommunityForm/index.js @@ -91,6 +91,10 @@ const CommunityForm = ({ setError('name', { message: 'This name has already been taken' }); return; } + if (!data.name.trim()) { + setError('name', { message: 'Name cannot be empty' }); + return; + } if (data.permission === PRIVATE && data.members.length === 0) { setError('members', { message: 'Please select at least one member' }); return; From ff9e122d127fc1f7c20e7737fab21e11e38e48b2 Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Sun, 27 Sep 2020 14:56:52 +0300 Subject: [PATCH 182/740] UKT-686 - now show empty popup if all users are selected --- src/social/components/CommunityForm/UserSelector.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/social/components/CommunityForm/UserSelector.js b/src/social/components/CommunityForm/UserSelector.js index e504ef027..c4e529c0c 100644 --- a/src/social/components/CommunityForm/UserSelector.js +++ b/src/social/components/CommunityForm/UserSelector.js @@ -95,7 +95,11 @@ const UserSelector = ({ value: userIds, onChange }) => { ); return ( - + {selectedUsers.map(user => ( remove(user.userId)} /> From 63f33d2369137c6c93bd3ed3169705ed71b2b6a9 Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Sun, 27 Sep 2020 22:46:22 +0300 Subject: [PATCH 183/740] UKT-687 - added redirect on create new community --- src/mock/index.js | 17 ++++++++++------- .../components/Community/Community.stories.js | 7 ++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/mock/index.js b/src/mock/index.js index b189284aa..51be662e1 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -543,18 +543,21 @@ export const useCommunitiesMock = () => { const leaveCommunity = id => setMyCommunities(myCommunities.filter(communityId => communityId !== id)); - const addCommunity = newCommunity => { + const addCommunity = community => { const communityId = `c${Date.now()}`; + const newCommunity = { + communityId, + postsCount: 2357, + description, + ...community, + }; setCommunities([ - { - communityId, - postsCount: 2357, - description, - ...newCommunity, - }, + newCommunity, ...communities, ]); joinCommunity(communityId); + + return newCommunity; }; const removeCommunity = communityId => diff --git a/src/social/components/Community/Community.stories.js b/src/social/components/Community/Community.stories.js index 234862edb..3f5c38387 100644 --- a/src/social/components/Community/Community.stories.js +++ b/src/social/components/Community/Community.stories.js @@ -81,6 +81,11 @@ const Pages = () => { const { addCommunity, editCommunity } = useCommunitiesMock(); + const createCommunity = data => { + const newCommunity = addCommunity(data); + goToCommunity(newCommunity.communityId); + }; + return ( {
From 91c4a072f398574ce87961e5be021bb2282b601b Mon Sep 17 00:00:00 2001 From: Julien Barbay Date: Wed, 30 Sep 2020 01:27:36 +0700 Subject: [PATCH 184/740] hotfix build --- src/social/components/UserFeedHeader/index.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/social/components/UserFeedHeader/index.js b/src/social/components/UserFeedHeader/index.js index e996d4093..3025874d5 100644 --- a/src/social/components/UserFeedHeader/index.js +++ b/src/social/components/UserFeedHeader/index.js @@ -1,15 +1,13 @@ import React from 'react'; -import Tab from '~/core/components/Tab'; +import Tabs from '~/core/components/Tabs'; import { customizableComponent } from '~/core/hocs/customization'; -import { UserFeedHeaderContainer, Tabs } from './styles'; +import { UserFeedHeaderContainer } from './styles'; const UserFeedHeader = ({ className }) => { return ( - - Timeline - + ); }; From c85039f930bff4558a154f2a9235f4a7c257695d Mon Sep 17 00:00:00 2001 From: Serhii Ivanenko Date: Wed, 30 Sep 2020 10:21:26 +0000 Subject: [PATCH 185/740] UKT-680 - fixed layout --- .../components/Community/Community.stories.js | 1 + src/social/components/CommunityForm/index.js | 4 +- src/social/components/CommunityForm/styles.js | 11 ++--- src/social/components/Feed/index.js | 3 ++ src/social/components/PostCompose/index.js | 40 ++++++++++--------- .../components/Profile/UserProfileForm.js | 2 +- 6 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/social/components/Community/Community.stories.js b/src/social/components/Community/Community.stories.js index 3f5c38387..c77916f1b 100644 --- a/src/social/components/Community/Community.stories.js +++ b/src/social/components/Community/Community.stories.js @@ -155,6 +155,7 @@ const Pages = () => { targetId={userId} onPostAuthorClick={navigateTo} editProfile={editProfile} + blockRouteChange={blockRouteChange} />
diff --git a/src/social/components/CommunityForm/index.js b/src/social/components/CommunityForm/index.js index 81b2853e6..4e95bd3fb 100644 --- a/src/social/components/CommunityForm/index.js +++ b/src/social/components/CommunityForm/index.js @@ -109,7 +109,7 @@ const CommunityForm = ({ -