From 2ef0148b83c1fab729397deac9319dea6b196f60 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Sun, 19 Apr 2020 18:33:06 +0700 Subject: [PATCH 01/88] [CHORES] Install node_module first before test on CI/CD script --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7c1a15a..377aff2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,10 @@ test: image: nezappl/web:stage stage: test script: + - npm i - npm test -- --coverage --watchAll=false --collectCoverageFrom="src/!(serviceWorker.ts|index.tsx|react-app-env.d.ts)/**/*" + dependencies: + - modules artifacts: paths: - coverage -- GitLab From e6c09c57f09775af081d50eb7ae87c89d722a4d5 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Sun, 19 Apr 2020 18:35:14 +0700 Subject: [PATCH 02/88] [CHORES] Fix unknown dependencies on CI/CD script --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 377aff2..77ca013 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,8 +15,6 @@ test: script: - npm i - npm test -- --coverage --watchAll=false --collectCoverageFrom="src/!(serviceWorker.ts|index.tsx|react-app-env.d.ts)/**/*" - dependencies: - - modules artifacts: paths: - coverage -- GitLab From 377a6a537933c0b7616202c537a8b1b94eb6af62 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:02:37 +0700 Subject: [PATCH 03/88] [CHORES] Set coverage more selective --- .gitlab-ci.yml | 2 +- sonar-project.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 77ca013..d75eccb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,7 +14,7 @@ test: stage: test script: - npm i - - npm test -- --coverage --watchAll=false --collectCoverageFrom="src/!(serviceWorker.ts|index.tsx|react-app-env.d.ts)/**/*" + - npm test -- --coverage --watchAll=false --collectCoverageFrom="src/!(serviceWorker.ts|index.tsx|react-app-env.d.ts)/**/*.tsx" artifacts: paths: - coverage diff --git a/sonar-project.properties b/sonar-project.properties index 2254d08..cfd8969 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -5,7 +5,7 @@ ## Path to sources sonar.sources=src -sonar.exclusions=src/*, src/**/*.test.* +sonar.exclusions=src/*,src/**/*.test.*,src/**/*.ts ## Path to tests sonar.javascript.lcov.reportPaths=coverage/lcov.info -- GitLab From aedccfa8de4f60fc536ea0a3a28f3f3372b214cb Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:03:03 +0700 Subject: [PATCH 04/88] [CHORES] Change title of the web --- public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index aa069f2..716c7a8 100644 --- a/public/index.html +++ b/public/index.html @@ -24,7 +24,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - React App + TBCare - Admin -- GitLab From 2f2e2557d9dae1ed159491d78ea1c23f6cb27684 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:03:57 +0700 Subject: [PATCH 05/88] [CHORES] Install new dependencies for dropdown material and lint --- package-lock.json | 5407 ++++++++++++++++++++++++++++++++------------- package.json | 39 +- 2 files changed, 3897 insertions(+), 1549 deletions(-) diff --git a/package-lock.json b/package-lock.json index f90c1b6..0bf86a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,20 +13,13 @@ } }, "@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", + "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", "requires": { - "browserslist": "^4.8.5", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "@babel/core": { @@ -51,22 +44,42 @@ "source-map": "^0.5.0" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.5", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "@babel/helper-annotate-as-pure": { @@ -87,63 +100,57 @@ } }, "@babel/helper-builder-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", - "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", + "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", "requires": { - "@babel/types": "^7.8.3", - "esutils": "^2.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/types": "^7.9.0" } }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz", + "integrity": "sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg==", "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/types": "^7.9.5" } }, "@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", + "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", "requires": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", - "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz", + "integrity": "sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA==", "requires": { - "@babel/helper-function-name": "^7.8.3", + "@babel/helper-function-name": "^7.9.5", "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { @@ -166,13 +173,13 @@ } }, "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", "requires": { "@babel/helper-get-function-arity": "^7.8.3", "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.9.5" } }, "@babel/helper-get-function-arity": { @@ -208,15 +215,16 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "requires": { "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -254,14 +262,14 @@ } }, "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/helper-simple-access": { @@ -281,6 +289,11 @@ "@babel/types": "^7.8.3" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==" + }, "@babel/helper-wrap-function": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", @@ -293,29 +306,29 @@ } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "requires": { "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.8.3", @@ -383,12 +396,13 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz", + "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -401,20 +415,20 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "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==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-create-regexp-features-plugin": "^7.8.8", "@babel/helper-plugin-utils": "^7.8.3" } }, @@ -558,16 +572,16 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", + "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", + "@babel/helper-function-name": "^7.9.5", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" } @@ -581,9 +595,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", + "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", "requires": { "@babel/helper-plugin-utils": "^7.8.3" } @@ -615,18 +629,18 @@ } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.8.3.tgz", - "integrity": "sha512-g/6WTWG/xbdd2exBBzMfygjX/zw4eyNC4X8pRaq7aRHRoDUCzAIu3kGYIXviOv8BjCuWm8vDBwjHcjiRNgXrPA==", + "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==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-flow": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.3" } @@ -657,43 +671,43 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", + "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "@babel/helper-simple-access": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "requires": { "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3" } }, @@ -723,11 +737,10 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", + "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", "requires": { - "@babel/helper-call-delegate": "^7.8.3", "@babel/helper-get-function-arity": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } @@ -741,11 +754,10 @@ } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.8.3.tgz", - "integrity": "sha512-glrzN2U+egwRfkNFtL34xIBYTxbbUF2qJTP8HD3qETBBqzAWSeNB821X0GjU06+dNpq/UyCIjI72FmGE5NNkQQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.9.0.tgz", + "integrity": "sha512-wXMXsToAUOxJuBBEHajqKLFWcCkOSLshTI2ChCFFj1zDd7od4IOxiwLCOObNUvOpkxLpjIuaIdBMmNt6ocCPAw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } }, @@ -758,39 +770,50 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", - "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", + "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", + "requires": { + "@babel/helper-builder-react-jsx": "^7.9.0", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz", + "integrity": "sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw==", "requires": { - "@babel/helper-builder-react-jsx": "^7.8.3", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", - "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", + "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", - "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", + "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { @@ -802,21 +825,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz", - "integrity": "sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ==", + "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==", "requires": { "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "resolve": "^1.8.1", "semver": "^5.5.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "@babel/plugin-transform-shorthand-properties": { @@ -862,9 +878,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.3.tgz", - "integrity": "sha512-Ebj230AxcrKGZPKIp4g4TdQLrqX95TobLUWKd/CwG7X1XHUH1ZpkpFvXuXqWbtGRWb7uuEWNlrl681wsOArAdQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.4.tgz", + "integrity": "sha512-yeWeUkKx2auDbSxRe8MusAG+n4m9BFY/v+lPjmQDgOFX5qnySkUY5oXzkp6FwPdsYqnKay6lorXYdC0n3bZO7w==", "requires": { "@babel/helper-create-class-features-plugin": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", @@ -881,26 +897,28 @@ } }, "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.5.tgz", + "integrity": "sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ==", "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", + "@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-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.5", "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^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", @@ -909,26 +927,26 @@ "@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.8.3", + "@babel/plugin-transform-classes": "^7.9.5", "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", "@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.8.4", + "@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.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^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.4", + "@babel/plugin-transform-parameters": "^7.9.5", "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^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", @@ -936,99 +954,121 @@ "@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/types": "^7.8.3", - "browserslist": "^4.8.5", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.5", + "browserslist": "^4.9.1", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "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.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", - "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.4.tgz", + "integrity": "sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.8.3", - "@babel/plugin-transform-react-jsx-self": "^7.8.3", - "@babel/plugin-transform-react-jsx-source": "^7.8.3" + "@babel/plugin-transform-react-jsx": "^7.9.4", + "@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/preset-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz", - "integrity": "sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", + "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-typescript": "^7.8.3" + "@babel/plugin-transform-typescript": "^7.9.0" } }, "@babel/runtime": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", - "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.8.4.tgz", - "integrity": "sha512-+wpLqy5+fbQhvbllvlJEVRIpYj+COUWnnsm+I4jZlA8Lo7/MJmBhGTCHyk1/RWfOqBRJ2MbadddG6QltTKTlrg==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz", + "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==", "requires": { "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", + "@babel/generator": "^7.9.5", + "@babel/helper-function-name": "^7.9.5", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, "@cnakazawa/watch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", - "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "requires": { "exec-sh": "^0.3.2", "minimist": "^1.2.0" @@ -1044,6 +1084,29 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, + "@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==", + "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==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1055,9 +1118,9 @@ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" }, "@hapi/hoek": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz", - "integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" }, "@hapi/joi": { "version": "15.1.1", @@ -1177,13 +1240,6 @@ "slash": "^2.0.0", "source-map": "^0.6.0", "string-length": "^2.0.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==" - } } }, "@jest/source-map": { @@ -1200,11 +1256,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -1250,13 +1301,6 @@ "slash": "^2.0.0", "source-map": "^0.6.1", "write-file-atomic": "2.4.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==" - } } }, "@jest/types": { @@ -1283,10 +1327,143 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, + "@progress/kendo-data-query": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@progress/kendo-data-query/-/kendo-data-query-1.5.3.tgz", + "integrity": "sha512-ykey2x3dvr5LSd5yxnmQ5BGJiRP7dLUaZNYKvn2V5PhzxkCYl/wHfmDPMrxH78XGcn2PzjFwxo9r78LT7jWa8A==", + "requires": { + "tslib": "^1.7.0" + } + }, + "@progress/kendo-date-math": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-date-math/-/kendo-date-math-1.2.0.tgz", + "integrity": "sha512-SVj6lSajwgI/dxqn+Gm1Pe1T8aaQkMmf/1ALETx2pii6SMLDLdCH9tp6Kp+M5t+NDqppLVrdMYDXWng9buiU8A==", + "requires": { + "tslib": "^1.7.0" + } + }, + "@progress/kendo-drawing": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-drawing/-/kendo-drawing-1.6.0.tgz", + "integrity": "sha512-9dGlFvW9fMgqAgcbLi+SfTeMUpNYdoVthwNxwAtsRQ+QwcgXJcdzFpLrLBXp17pXpDDFpiOyMqiwjffNGwtc3w==", + "requires": { + "pako": "^1.0.5" + } + }, + "@progress/kendo-popup-common": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-popup-common/-/kendo-popup-common-1.7.0.tgz", + "integrity": "sha512-KxPIXDkirDpJaF/UWFKbe8QpbO5CwdQH/HyNT5Fj1qZb25YaO68VZCisls2qkcEVPHBlXesDcN3QJlt4vJ6tJw==" + }, + "@progress/kendo-react-animation": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-animation/-/kendo-react-animation-3.12.0.tgz", + "integrity": "sha512-FASwdGZ5npXFKDtUmxAtrbTHD2AwPJeD3DnnQmCf8wPTQHSdOR4g+jnJ+ZB+/BFA/KLYISnpLzm45MOlu4caMQ==", + "requires": { + "@progress/kendo-react-common": "3.12.0", + "prop-types": "^15.6.0", + "react-transition-group": "^2.2.0" + } + }, + "@progress/kendo-react-buttons": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-buttons/-/kendo-react-buttons-3.12.0.tgz", + "integrity": "sha512-B0424gIFsKk6r9E8tCMCb2XOR7lqTWcmTMNa4sUVrbKwiVi9fC/IOFPCD9+1qa0JbaQ2RZ+PNzNV44oABtgcRg==", + "requires": { + "@progress/kendo-react-common": "3.12.0", + "@progress/kendo-react-popup": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-common": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-common/-/kendo-react-common-3.12.0.tgz", + "integrity": "sha512-TgJVu4mgdrhulK6s7NeprtOrggdyeIAtvwOUaDziE8uHpkTr0fHxIHsJiooI5XD3QLWOJdxOGkscHRx+WiZfyw==", + "requires": { + "@telerik/kendo-draggable": "2.0.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-data-tools": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-data-tools/-/kendo-react-data-tools-3.12.0.tgz", + "integrity": "sha512-pI1JDSmU0/neDsB99pE4ewttl1mGAGusno5FezP4/r34AX1WzIwqNf9C769uxa/u7ZaKqry4i87lVsN3337/Zw==", + "requires": { + "@progress/kendo-react-common": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-dateinputs": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-dateinputs/-/kendo-react-dateinputs-3.12.0.tgz", + "integrity": "sha512-eDCqlrVXtIbS4Igd/9Xw86SPmIVnW6AAKfGdiRwcn9leDfOj3DLGgTKgdrpvKqGu2JZopLL7XcvrSKUcPPpI5w==", + "requires": { + "@progress/kendo-date-math": "1.2.0", + "@progress/kendo-react-buttons": "3.12.0", + "@progress/kendo-react-common": "3.12.0", + "@progress/kendo-react-popup": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-dropdowns": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-dropdowns/-/kendo-react-dropdowns-3.12.0.tgz", + "integrity": "sha512-PcGFulfielrrsva0kSneiaSXh0PWkItlLFekIF2Q/NnQW2ak/Sbl6wBSBS5M2viGF57JGPqJYQLfQ2PLRYgoSg==", + "requires": { + "@progress/kendo-react-common": "3.12.0", + "@progress/kendo-react-popup": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-grid": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-grid/-/kendo-react-grid-3.12.0.tgz", + "integrity": "sha512-EK3vXouC+7uC/8GiRZFwghxt28AKPX4ossnEysgW4vn3KxS3EJEOlDxgeBdIRnpAU3mhidY2Dn5NjiIgw5G0CQ==", + "requires": { + "@progress/kendo-react-common": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-inputs": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-inputs/-/kendo-react-inputs-3.12.0.tgz", + "integrity": "sha512-ZCJfYF3CELYHN7vnj5HazjMwQpGJy8v76Ot2ClvmRzPPhVZJ9fgTlAYFDDgMkc1x387CyzzOLeCEe4Aq0TZ2wQ==", + "requires": { + "@progress/kendo-react-common": "3.12.0", + "@progress/kendo-react-popup": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-intl": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-intl/-/kendo-react-intl-3.12.0.tgz", + "integrity": "sha512-qnPLR6a6pCAptjTA11QZS5adu6REHDnwsSFaQXSWVeGkh2X8M4cp9AmVv9xblHPGhkmO8kkAJAhklVdEatnwww==", + "requires": { + "@telerik/kendo-intl": "^2.1.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-react-popup": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-react-popup/-/kendo-react-popup-3.12.0.tgz", + "integrity": "sha512-XmSMBttW9CVAo+qmSjfdjw+E3afVe4RseZZqmwoz87eK4Js8g9UTxCmJNePxnvWQjLA14ddTNTxlzsI1gfyOgQ==", + "requires": { + "@progress/kendo-popup-common": "^1.2.2", + "@progress/kendo-react-animation": "3.12.0", + "@progress/kendo-react-common": "3.12.0", + "prop-types": "^15.6.0" + } + }, + "@progress/kendo-theme-default": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@progress/kendo-theme-default/-/kendo-theme-default-4.17.0.tgz", + "integrity": "sha512-sAD4KdSIZAvrf0nXjph5A9IQa8c9vqSDxSqcJeCmHUVXP20A8DHA7gSF60W0BiGNp7PtR5kEH0up2yks/dJvPg==" + }, "@sheerun/mutationobserver-shim": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz", - "integrity": "sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q==" + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", + "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==" }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "4.2.0", @@ -1397,91 +1574,183 @@ "loader-utils": "^1.2.3" } }, - "@testing-library/dom": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.12.2.tgz", - "integrity": "sha512-KCnvHra5fV+wDxg3wJObGvZFxq7v1DJt829GNFLuRDjKxVNc/B5AdsylNF5PMHFbWMXDsHwM26d2NZcZO9KjbQ==", - "requires": { - "@babel/runtime": "^7.6.2", - "@sheerun/mutationobserver-shim": "^0.3.2", - "@types/testing-library__dom": "^6.0.0", - "aria-query": "3.0.0", - "pretty-format": "^24.9.0", - "wait-for-expect": "^3.0.0" - } - }, - "@testing-library/jest-dom": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", - "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", - "requires": { - "@babel/runtime": "^7.5.1", - "chalk": "^2.4.1", - "css": "^2.2.3", - "css.escape": "^1.5.1", - "jest-diff": "^24.0.0", - "jest-matcher-utils": "^24.0.0", - "lodash": "^4.17.11", - "pretty-format": "^24.0.0", - "redent": "^3.0.0" - } - }, - "@testing-library/react": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.4.0.tgz", - "integrity": "sha512-XdhDWkI4GktUPsz0AYyeQ8M9qS/JFie06kcSnUVcpgOwFjAu9vhwR83qBl+lw9yZWkbECjL8Hd+n5hH6C0oWqg==", - "requires": { - "@babel/runtime": "^7.7.6", - "@testing-library/dom": "^6.11.0", - "@types/testing-library__react": "^9.1.2" - } - }, - "@testing-library/user-event": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", - "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" - }, - "@types/babel__core": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", - "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } + "@telerik/kendo-draggable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@telerik/kendo-draggable/-/kendo-draggable-2.0.0.tgz", + "integrity": "sha512-6fZcwVZQNh9ovWbueo2VFgpFxktWdxaABe/gVZ+dJy4h+ngkoSr0HSmfUJY5QupMQ1RvLA9hr3Eficbqx+gU0Q==" }, - "@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==", - "requires": { - "@babel/types": "^7.0.0" - } + "@telerik/kendo-intl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@telerik/kendo-intl/-/kendo-intl-2.1.1.tgz", + "integrity": "sha512-aAJCnaWpKdnKpqrZgXf6LlgH75epc0byDoYxyzPUEPuKizQ5JTEP1KwQa4y0qkLcTgC3XSUQegadXOLzJ6phgg==" }, - "@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==", + "@testing-library/dom": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz", + "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==", "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, + "@babel/runtime": "^7.8.4", + "@sheerun/mutationobserver-shim": "^0.3.2", + "@types/testing-library__dom": "^6.12.1", + "aria-query": "^4.0.2", + "dom-accessibility-api": "^0.3.0", + "pretty-format": "^25.1.0", + "wait-for-expect": "^3.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz", + "integrity": "sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==", + "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.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", + "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "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==" + }, + "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==" + }, + "pretty-format": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.3.0.tgz", + "integrity": "sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA==", + "requires": { + "@jest/types": "^25.3.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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", + "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", + "requires": { + "@babel/runtime": "^7.5.1", + "chalk": "^2.4.1", + "css": "^2.2.3", + "css.escape": "^1.5.1", + "jest-diff": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "lodash": "^4.17.11", + "pretty-format": "^24.0.0", + "redent": "^3.0.0" + } + }, + "@testing-library/react": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz", + "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==", + "requires": { + "@babel/runtime": "^7.8.4", + "@testing-library/dom": "^6.15.0", + "@types/testing-library__react": "^9.1.2" + } + }, + "@testing-library/user-event": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", + "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" + }, + "@types/babel__core": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", + "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", + "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==", + "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==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, "@types/babel__traverse": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", - "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.10.tgz", + "integrity": "sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw==", "requires": { "@babel/types": "^7.3.0" } }, "@types/cheerio": { - "version": "0.22.16", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.16.tgz", - "integrity": "sha512-bSbnU/D4yzFdzLpp3+rcDj0aQQMIRUBNJU7azPxdqMpnexjUSvGJyDuOBQBHeOZh1mMKgsJm6Dy+LLh80Ew4tQ==", + "version": "0.22.17", + "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.17.tgz", + "integrity": "sha512-izlm+hbqWN9csuB9GSMfCnAyd3/57XZi3rfz1B0C4QBGVMp+9xQ7+9KYnep+ySfUrCWql4lGzkLf0XmprXcz9g==", "requires": { "@types/node": "*" } @@ -1533,6 +1802,15 @@ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.5.tgz", "integrity": "sha512-wLD/Aq2VggCJXSjxEwrMafIP51Z+13H78nXIX0ABEuIGhmB5sNGbR113MOKo+yfw+RDo1ZU3DM6yfnnRF/+ouw==" }, + "@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==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "@types/istanbul-lib-coverage": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", @@ -1568,15 +1846,21 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==" }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "12.12.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.26.tgz", - "integrity": "sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA==" + "version": "12.12.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.36.tgz", + "integrity": "sha512-hmmypvyO/uTLFYCYu6Hlb3ydeJ11vXRxg8/WJ0E3wvwmPO0y47VqnfmXFVuWlysO0Zyj+je1Y33rQeuYkZ51GQ==" }, "@types/parse-json": { "version": "4.0.0", @@ -1594,35 +1878,43 @@ "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, "@types/react": { - "version": "16.9.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", - "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", + "version": "16.9.34", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.34.tgz", + "integrity": "sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow==", "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" } }, "@types/react-dom": { - "version": "16.9.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz", - "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==", + "version": "16.9.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.6.tgz", + "integrity": "sha512-S6ihtlPMDotrlCJE9ST1fRmYrQNNwfgL61UB4I1W7M6kPulUKx9fXAleW5zpdIjUQ4fTaaog8uERezjsGUj9HQ==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-native": { + "version": "0.62.2", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.62.2.tgz", + "integrity": "sha512-oIUIbqZNN9vRnGKWHYbTVp/GyTqdaM5mfy1s4zsi6BYvHAaFOPZ32IrhIHno/A5XOv4wuGfE7g5fliDk/H0+/Q==", "requires": { "@types/react": "*" } }, "@types/react-router": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.4.tgz", - "integrity": "sha512-PZtnBuyfL07sqCJvGg3z+0+kt6fobc/xmle08jBiezLS8FrmGeiGkJnuxL/8Zgy9L83ypUhniV5atZn/L8n9MQ==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.5.tgz", + "integrity": "sha512-RZPdCtZympi6X7EkGyaU7ISiAujDYTWgqMF9owE3P6efITw27IWQykcti0BvA5h4Mu1LLl5rxrpO3r8kHyUZ/Q==", "requires": { "@types/history": "*", "@types/react": "*" } }, "@types/react-router-dom": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.3.tgz", - "integrity": "sha512-pCq7AkOvjE65jkGS5fQwQhvUp4+4PVD9g39gXLZViP2UqFiFzsEpB3PKf0O6mdbKsewSK8N14/eegisa/0CwnA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.4.tgz", + "integrity": "sha512-LO0z5qqSfWdYtCNsRm8/OMnnkv52hwADJKrAfpKIyfHclORllcgAMGypEA7ajHm38+jOonKLx8nPygNAAZGxtg==", "requires": { "@types/history": "*", "@types/react": "*", @@ -1634,21 +1926,114 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" }, + "@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==", + "requires": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "@types/react-native": "*", + "csstype": "^2.2.0" + } + }, "@types/testing-library__dom": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.12.0.tgz", - "integrity": "sha512-PQ/gzABzc53T68RldZ/sJHKCihtP9ofU8XIgOk+H7tlfoCRdg9mqICio5Fo8j3Z8wo+pOfuDsuPprWsn3YtVmA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", + "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==", "requires": { "pretty-format": "^24.3.0" } }, "@types/testing-library__react": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.2.tgz", - "integrity": "sha512-CYaMqrswQ+cJACy268jsLAw355DZtPZGt3Jwmmotlcu8O/tkoXBI6AeZ84oZBJsIsesozPKzWzmv/0TIU+1E9Q==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz", + "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==", "requires": { "@types/react-dom": "*", - "@types/testing-library__dom": "*" + "@types/testing-library__dom": "*", + "pretty-format": "^25.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz", + "integrity": "sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==", + "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.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", + "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "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==" + }, + "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==" + }, + "pretty-format": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.3.0.tgz", + "integrity": "sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA==", + "requires": { + "@jest/types": "^25.3.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==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@types/yargs": { @@ -1665,42 +2050,42 @@ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "@typescript-eslint/eslint-plugin": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.19.0.tgz", - "integrity": "sha512-u7IcQ9qwsB6U806LupZmINRnQjC+RJyv36sV/ugaFWMHTbFm/hlLTRx3gGYJgHisxcGSTnf+I/fPDieRMhPSQQ==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.28.0.tgz", + "integrity": "sha512-w0Ugcq2iatloEabQP56BRWJowliXUP5Wv6f9fKzjJmDW81hOTBxRoJ4LoEOxRpz9gcY51Libytd2ba3yLmSOfg==", "requires": { - "@typescript-eslint/experimental-utils": "2.19.0", - "eslint-utils": "^1.4.3", + "@typescript-eslint/experimental-utils": "2.28.0", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", "tsutils": "^3.17.1" } }, "@typescript-eslint/experimental-utils": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.19.0.tgz", - "integrity": "sha512-zwpg6zEOPbhB3+GaQfufzlMUOO6GXCNZq6skk+b2ZkZAIoBhVoanWK255BS1g5x9bMwHpLhX0Rpn5Fc3NdCZdg==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.28.0.tgz", + "integrity": "sha512-4SL9OWjvFbHumM/Zh/ZeEjUFxrYKtdCi7At4GyKTbQlrj1HcphIDXlje4Uu4cY+qzszR5NdVin4CCm6AXCjd6w==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.19.0", - "eslint-scope": "^5.0.0" + "@typescript-eslint/typescript-estree": "2.28.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.19.0.tgz", - "integrity": "sha512-s0jZoxAWjHnuidbbN7aA+BFVXn4TCcxEVGPV8lWMxZglSs3NRnFFAlL+aIENNmzB2/1jUJuySi6GiM6uACPmpg==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.28.0.tgz", + "integrity": "sha512-RqPybRDquui9d+K86lL7iPqH6Dfp9461oyqvlXMNtap+PyqYbkY5dB7LawQjDzot99fqzvS0ZLZdfe+1Bt3Jgw==", "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.19.0", - "@typescript-eslint/typescript-estree": "2.19.0", + "@typescript-eslint/experimental-utils": "2.28.0", + "@typescript-eslint/typescript-estree": "2.28.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.19.0.tgz", - "integrity": "sha512-n6/Xa37k0jQdwpUszffi19AlNbVCR0sdvCs3DmSKMD7wBttKY31lhD2fug5kMD91B2qW4mQldaTEc1PEzvGu8w==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.28.0.tgz", + "integrity": "sha512-HDr8MP9wfwkiuqzRVkuM3BeDrOC4cKbO5a6BymZBHUt5y/2pL0BXD6I/C/ceq2IZoHWhcASk+5/zo+dwgu9V8Q==", "requires": { "debug": "^4.1.1", "eslint-visitor-keys": "^1.1.0", @@ -1709,6 +2094,26 @@ "lodash": "^4.17.15", "semver": "^6.3.0", "tsutils": "^3.17.1" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@webassemblyjs/ast": { @@ -1894,9 +2299,9 @@ } }, "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" }, "acorn-globals": { "version": "4.3.4", @@ -1908,16 +2313,16 @@ }, "dependencies": { "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" } } }, "acorn-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", - "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" }, "acorn-walk": { "version": "6.2.0", @@ -1945,6 +2350,29 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "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==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } } } }, @@ -1975,13 +2403,14 @@ } }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.1.tgz", + "integrity": "sha512-AUh2mDlJDAnzSRaKkMHopTD1GKwC1ApUq8oCzdjAOM5tavncgqWU+JoRu5Y3iYY0Q/euiU+1LWp0/O/QY8CcHw==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", + "opencollective-postinstall": "^2.0.2", "uri-js": "^4.2.2" } }, @@ -2006,11 +2435,18 @@ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" }, "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "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==", "requires": { - "type-fest": "^0.8.1" + "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==" + } } }, "ansi-html": { @@ -2019,9 +2455,9 @@ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { "version": "3.2.1", @@ -2054,12 +2490,12 @@ } }, "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.0.2.tgz", + "integrity": "sha512-S1G1V790fTaigUSM/Gd0NngzEfiMy9uTUfMyHhKhVyy4cH5O/eTuR01ydhGL0z4Za1PXFTRGH3qL8VhUQuEO5w==", "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" + "@babel/runtime": "^7.7.4", + "@babel/runtime-corejs3": "^7.7.4" } }, "arity-n": { @@ -2126,12 +2562,12 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.find": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.0.tgz", - "integrity": "sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz", + "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.13.0" + "es-abstract": "^1.17.4" } }, "array.prototype.flat": { @@ -2222,23 +2658,29 @@ "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", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz", - "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==", + "version": "9.7.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.6.tgz", + "integrity": "sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ==", "requires": { - "browserslist": "^4.8.3", - "caniuse-lite": "^1.0.30001020", + "browserslist": "^4.11.1", + "caniuse-lite": "^1.0.30001039", "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.26", - "postcss-value-parser": "^4.0.2" + "postcss": "^7.0.27", + "postcss-value-parser": "^4.0.3" } }, "aws-sign2": { @@ -2251,15 +2693,19 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, - "axobject-query": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.1.tgz", - "integrity": "sha512-lF98xa/yvy6j3fBHAgQXIYl+J4eZadOSqsPojemUqClzNbBV38wWGpUbQbVEyf4eUF5yF7eHmGgGA2JiHyjeqw==", + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "requires": { - "@babel/runtime": "^7.7.4", - "@babel/runtime-corejs3": "^7.7.4" + "follow-redirects": "1.5.10" } }, + "axobject-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", + "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==" + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -2382,15 +2828,55 @@ "find-up": "^3.0.0", "istanbul-lib-instrument": "^3.3.0", "test-exclude": "^5.2.3" - } - }, - "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==", - "requires": { - "@types/babel__traverse": "^7.0.6" - } + }, + "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==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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==", + "requires": { + "p-limit": "^2.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==" + } + } + }, + "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==", + "requires": { + "@types/babel__traverse": "^7.0.6" + } }, "babel-plugin-macros": { "version": "2.8.0", @@ -2451,6 +2937,22 @@ "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==" }, + "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==", + "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=" + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -2480,23 +2982,156 @@ } }, "babel-preset-react-app": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.1.tgz", - "integrity": "sha512-YkWP2UwY//TLltNlEBRngDOrYhvSLb+CA330G7T9M5UhGEMWe+JK/8IXJc5p2fDTSfSiETf+PY0+PYXFMix81Q==", + "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==", "requires": { - "@babel/core": "7.8.4", + "@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-transform-flow-strip-types": "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.8.3", - "@babel/preset-env": "7.8.4", - "@babel/preset-react": "7.8.3", - "@babel/preset-typescript": "7.8.3", - "@babel/runtime": "7.8.4", + "@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==", + "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/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==", + "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==", + "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==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "babel-runtime": { @@ -2613,15 +3248,6 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2662,11 +3288,6 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -2692,6 +3313,12 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "boolify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/boolify/-/boolify-1.0.1.tgz", + "integrity": "sha1-tcCeF8rNET0Rt7s+04TMASmU2Gs=", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2734,9 +3361,9 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "browser-resolve": { "version": "1.11.3", @@ -2819,13 +3446,14 @@ } }, "browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz", + "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==", "requires": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" + "caniuse-lite": "^1.0.30001038", + "electron-to-chromium": "^1.3.390", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" } }, "bser": { @@ -2844,6 +3472,13 @@ "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } } }, "buffer-from": { @@ -2949,12 +3584,12 @@ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "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==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" } }, "camelcase": { @@ -2962,6 +3597,22 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -2974,9 +3625,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001025", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001025.tgz", - "integrity": "sha512-SKyFdHYfXUZf5V85+PJgLYyit27q4wgvZuf8QTOk1osbypcROihMBlx9GRar2/pIcKH2r4OehdlBr9x6PXetAQ==" + "version": "1.0.30001043", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001043.tgz", + "integrity": "sha512-MrBDRPJPDBYwACtSQvxg9+fkna5jPXhJlKmuxenl/ml9uf8LHKlDmLpElu+zTW/bEz7lC1m0wTDD7jiIB+hgFg==" }, "capture-exit": { "version": "2.0.0", @@ -3022,55 +3673,6 @@ "htmlparser2": "^3.9.1", "lodash": "^4.15.0", "parse5": "^3.0.1" - }, - "dependencies": { - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "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==" - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "requires": { - "@types/node": "*" - } - } } }, "chokidar": { @@ -3134,9 +3736,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "chrome-trace-event": { "version": "1.0.2", @@ -3187,13 +3789,6 @@ "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "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==" - } } }, "clean-stack": { @@ -3210,9 +3805,9 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" }, "cliui": { "version": "5.0.0", @@ -3384,10 +3979,10 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "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==" } } }, @@ -3407,6 +4002,11 @@ "typedarray": "^0.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3421,6 +4021,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -3462,6 +4067,13 @@ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "requires": { "safe-buffer": "5.1.2" + }, + "dependencies": { + "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==" + } } }, "content-type": { @@ -3475,6 +4087,13 @@ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==" + } } }, "cookie": { @@ -3506,16 +4125,16 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" }, "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "requires": { - "browserslist": "^4.8.3", + "browserslist": "^4.8.5", "semver": "7.0.0" }, "dependencies": { @@ -3527,9 +4146,9 @@ } }, "core-js-pure": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz", - "integrity": "sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==" + "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==" }, "core-util-is": { "version": "1.0.2", @@ -3591,13 +4210,6 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "crypto-browserify": { @@ -3627,13 +4239,6 @@ "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==" - } } }, "css-blank-pseudo": { @@ -3644,6 +4249,11 @@ "postcss": "^7.0.5" } }, + "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=" + }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -3719,14 +4329,14 @@ } }, "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" } }, "css-select-base-adapter": { @@ -3734,6 +4344,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "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==", + "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", @@ -3741,24 +4361,12 @@ "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==" - } } }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" - }, "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" }, "css.escape": { "version": "1.5.1", @@ -3847,11 +4455,27 @@ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" }, "csso": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", - "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", "requires": { - "css-tree": "1.0.0-alpha.37" + "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==", + "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==" + } } }, "cssom": { @@ -3868,9 +4492,9 @@ } }, "csstype": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", - "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==" + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", + "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" }, "cyclist": { "version": "1.0.1", @@ -3922,11 +4546,11 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "^2.1.1" + "ms": "2.0.0" } }, "decamelize": { @@ -4111,11 +4735,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -4148,6 +4767,12 @@ "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -4178,6 +4803,11 @@ "esutils": "^2.0.2" } }, + "dom-accessibility-api": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz", + "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==" + }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -4186,20 +4816,21 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "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==" - } + "domelementtype": "^1.3.0", + "entities": "^1.1.1" } }, "domain-browser": { @@ -4229,20 +4860,29 @@ } }, "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "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==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { @@ -4271,6 +4911,11 @@ "stream-shift": "^1.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -4285,6 +4930,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4310,9 +4960,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.345", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.345.tgz", - "integrity": "sha512-f8nx53+Z9Y+SPWGg3YdHrbYYfIJAtbUjpFfW4X1RwTZ94iUG7geg9tV8HqzAXX7XTNgyWgAFvce4yce8ZKxKmg==" + "version": "1.3.413", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.413.tgz", + "integrity": "sha512-Jm1Rrd3siqYHO3jftZwDljL2LYQafj3Kki5r+udqE58d0i91SkjItVJ5RwlJn9yko8i7MOcoidVKjQlgSdd1hg==" }, "elliptic": { "version": "6.5.2", @@ -4334,9 +4984,9 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "encodeurl": { "version": "1.0.2", @@ -4361,6 +5011,11 @@ "tapable": "^1.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "memory-fs": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", @@ -4384,6 +5039,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4395,9 +5055,9 @@ } }, "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, "enzyme": { "version": "3.11.0", @@ -4442,13 +5102,6 @@ "react-is": "^16.12.0", "react-test-renderer": "^16.0.0-0", "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "enzyme-adapter-utils": { @@ -4462,13 +5115,6 @@ "object.fromentries": "^2.0.2", "prop-types": "^15.7.2", "semver": "^5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "enzyme-shallow-equal": { @@ -4497,9 +5143,9 @@ } }, "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -4573,14 +5219,6 @@ "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==", - "optional": true - } } }, "eslint": { @@ -4627,10 +5265,26 @@ "v8-compile-cache": "^2.0.3" }, "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" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "requires": { "type-fest": "^0.8.1" } @@ -4644,6 +5298,11 @@ "resolve-from": "^4.0.0" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -4653,60 +5312,71 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "eslint-config-react-app": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.0.tgz", - "integrity": "sha512-WrHjoGpKr1kLLiWDD81tme9jMM0hk5cMxasLSdyno6DdPt+IfLOrDJBVo6jN7tn4y1nzhs43TmUaZWO6Sf0blw==", + "eslint-config-airbnb": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.1.0.tgz", + "integrity": "sha512-kZFuQC/MPnH7KJp6v95xsLBf63G/w7YqdPfQ0MUanxQ7zcKUNG8j+sSY860g3NwCBOa62apw16J6pRN+AOgXzw==", + "dev": true, "requires": { - "confusing-browser-globals": "^1.0.9" + "eslint-config-airbnb-base": "^14.1.0", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1" } }, - "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "eslint-config-airbnb-base": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz", + "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==", + "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==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "confusing-browser-globals": "^1.0.9", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1" } }, - "eslint-loader": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", - "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", + "eslint-config-airbnb-typescript": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-7.2.1.tgz", + "integrity": "sha512-D3elVKUbdsCfkOVstSyWuiu+KGCVTrYxJPoenPIqZtL6Li/R4xBeVTXjZIui8B8D17bDN3Pz5dSr7jRLY5HqIg==", + "dev": true, "requires": { - "fs-extra": "^8.1.0", - "loader-fs-cache": "^1.0.2", - "loader-utils": "^1.2.3", - "object-hash": "^2.0.1", - "schema-utils": "^2.6.1" + "@typescript-eslint/parser": "^2.24.0", + "eslint-config-airbnb": "^18.1.0", + "eslint-config-airbnb-base": "^14.1.0" } }, - "eslint-module-utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", - "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", + "eslint-config-prettier": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz", + "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-config-react-app": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", + "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "requires": { "debug": "^2.6.9", - "pkg-dir": "^2.0.0" + "resolve": "^1.13.1" }, "dependencies": { "debug": { @@ -4716,49 +5386,109 @@ "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=", + } + } + }, + "eslint-import-resolver-typescript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.0.0.tgz", + "integrity": "sha512-bT5Frpl8UWoHBtY25vKUOMoVIMlJQOMefHLyQ4Tz3MQpIZ2N6yYKEEIHMo38bszBNUuMBW6M3+5JNYxeiGFH4w==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "is-glob": "^4.0.1", + "resolve": "^1.12.0", + "tiny-glob": "^0.2.6", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, "requires": { - "locate-path": "^2.0.0" + "ms": "^2.1.1" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "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 + } + } + }, + "eslint-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.0.tgz", + "integrity": "sha512-QoaFRdh3oXt5i2uonSjO8dDnncsG05w7qvA7yYMvGDne8zAEk9R+R1rsfunp3OKVdO5mAJelf1x2Z1kYp664kA==", + "dev": true, + "requires": { + "fs-extra": "^9.0.0", + "loader-fs-cache": "^1.0.3", + "loader-utils": "^2.0.0", + "object-hash": "^2.0.3", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, "requires": { - "p-try": "^1.0.0" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, - "p-locate": { + "loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, "requires": { - "p-limit": "^1.1.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "p-try": { + "universalify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "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==", + "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==", + "requires": { + "ms": "2.0.0" + } }, "pkg-dir": { "version": "2.0.0", @@ -4771,17 +5501,19 @@ } }, "eslint-plugin-flowtype": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", - "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", + "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", + "dev": true, "requires": { "lodash": "^4.17.15" } }, "eslint-plugin-import": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz", - "integrity": "sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ==", + "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", @@ -4801,6 +5533,7 @@ "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" } @@ -4809,23 +5542,23 @@ "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=", - "requires": { - "locate-path": "^2.0.0" - } + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "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", @@ -4833,45 +5566,11 @@ "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=", - "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=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "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=", - "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=" - }, "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" } @@ -4880,6 +5579,7 @@ "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" } @@ -4887,12 +5587,14 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "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", @@ -4903,6 +5605,7 @@ "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" @@ -4926,6 +5629,15 @@ "jsx-ast-utils": "^2.2.1" }, "dependencies": { + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -4933,10 +5645,20 @@ } } }, + "eslint-plugin-prettier": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz", + "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-react": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.18.0.tgz", - "integrity": "sha512-p+PGoGeV4SaZRDsXqdj9OWcOrOpZn8gXoGPcIQTzo2IDMbAKhNDnME9myZWqO3Ic4R3YmwAZ1lDjWl2R2hMUVQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", + "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", + "dev": true, "requires": { "array-includes": "^3.1.1", "doctrine": "^2.1.0", @@ -4946,23 +5668,43 @@ "object.fromentries": "^2.0.2", "object.values": "^1.1.1", "prop-types": "^15.7.2", - "resolve": "^1.14.2" + "resolve": "^1.15.1", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.2", + "xregexp": "^4.3.0" }, "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" } + }, + "resolve": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.16.1.tgz", + "integrity": "sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, "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==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz", + "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==", + "dev": true }, "eslint-scope": { "version": "5.0.0", @@ -4974,9 +5716,9 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "requires": { "eslint-visitor-keys": "^1.1.0" } @@ -4987,12 +5729,12 @@ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==" }, "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" } }, @@ -5002,11 +5744,18 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==" + } } }, "esrecurse": { @@ -5120,11 +5869,6 @@ "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=" } } }, @@ -5191,15 +5935,20 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "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=" }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "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==" } } }, @@ -5326,6 +6075,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" }, + "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", @@ -5387,14 +6142,14 @@ } }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" } @@ -5416,12 +6171,6 @@ "schema-utils": "^2.5.0" } }, - "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==", - "optional": true - }, "filesize": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", @@ -5469,11 +6218,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -5488,11 +6232,11 @@ } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^3.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -5506,9 +6250,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" }, "flatten": { "version": "1.0.3", @@ -5524,6 +6268,11 @@ "readable-stream": "^2.3.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5538,6 +6287,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5549,21 +6303,11 @@ } }, "follow-redirects": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", - "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "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==", - "requires": { - "ms": "^2.1.1" - } - } + "debug": "=3.1.0" } }, "for-in": { @@ -5597,13 +6341,6 @@ "semver": "^5.6.0", "tapable": "^1.0.0", "worker-rpc": "^0.1.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "form-data": { @@ -5643,6 +6380,11 @@ "readable-stream": "^2.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5657,6 +6399,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5696,6 +6443,11 @@ "readable-stream": "1 || 2" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5710,6 +6462,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5771,6 +6528,12 @@ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" }, + "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", @@ -5806,9 +6569,9 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "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==", "requires": { "is-glob": "^4.0.1" } @@ -5848,6 +6611,12 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, + "globalyzer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.4.tgz", + "integrity": "sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==", + "dev": true + }, "globby": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", @@ -5874,6 +6643,12 @@ } } }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -5906,9 +6681,9 @@ } }, "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, "har-schema": { "version": "2.0.0", @@ -6051,9 +6826,9 @@ } }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" }, "hpack.js": { "version": "2.1.6", @@ -6066,6 +6841,11 @@ "wbuf": "^1.1.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -6080,6 +6860,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -6122,27 +6907,27 @@ } }, "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" }, "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "html-minifier-terser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz", - "integrity": "sha512-VAaitmbBuHaPKv9bj47XKypRhgDxT/cDLvsPiiF7w+omrN3K0eQhpigV9Z1ilrmHa9e0rOYcD6R/+LCDADGcnQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.5.tgz", + "integrity": "sha512-cBSFFghQh/uHcfSiL42KxxIRMF7A144+3E44xdlctIjxEmkEfCvouxNyFH2wysXk1fCGBPwtcr3hDWlGTfkDew==", "requires": { - "camel-case": "^3.0.0", - "clean-css": "^4.2.1", - "commander": "^4.0.0", + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", "he": "^1.2.0", - "param-case": "^2.1.1", + "param-case": "^3.0.3", "relateurl": "^0.2.7", - "terser": "^4.3.9" + "terser": "^4.6.3" }, "dependencies": { "commander": { @@ -6187,13 +6972,6 @@ "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } } }, "http-deceiver": { @@ -6379,69 +7157,139 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", + "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.2.0", + "run-async": "^2.4.0", "rxjs": "^6.5.3", "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "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=" - }, - "is-accessor-descriptor": { - "version": "0.1.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==" + }, + "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==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.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" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "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==" + }, + "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=" + }, + "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=", "requires": { @@ -6537,6 +7385,11 @@ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, + "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-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -6579,9 +7432,9 @@ "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-path-cwd": { "version": "2.2.0", @@ -6692,9 +7545,9 @@ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", @@ -6728,6 +7581,13 @@ "@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==" + } } }, "istanbul-lib-report": { @@ -6762,10 +7622,18 @@ "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==" + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -6900,9 +7768,9 @@ }, "dependencies": { "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" }, "jsdom": { "version": "14.1.0", @@ -6999,13 +7867,11 @@ }, "dependencies": { "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", + "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", "node-pre-gyp": "*" }, "dependencies": { @@ -7048,7 +7914,7 @@ } }, "chownr": { - "version": "1.1.3", + "version": "1.1.4", "bundled": true, "optional": true }, @@ -7198,7 +8064,7 @@ } }, "minimist": { - "version": "0.0.8", + "version": "1.2.5", "bundled": true, "optional": true }, @@ -7220,11 +8086,11 @@ } }, "mkdirp": { - "version": "0.5.1", + "version": "0.5.3", "bundled": true, "optional": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "ms": { @@ -7233,7 +8099,7 @@ "optional": true }, "needle": { - "version": "2.4.0", + "version": "2.3.3", "bundled": true, "optional": true, "requires": { @@ -7260,7 +8126,7 @@ } }, "nopt": { - "version": "4.0.1", + "version": "4.0.3", "bundled": true, "optional": true, "requires": { @@ -7282,12 +8148,13 @@ "optional": true }, "npm-packlist": { - "version": "1.4.7", + "version": "1.4.8", "bundled": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npmlog": { @@ -7357,17 +8224,10 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } } }, "readable-stream": { - "version": "2.3.6", + "version": "2.3.7", "bundled": true, "optional": true, "requires": { @@ -7667,6 +8527,13 @@ "natural-compare": "^1.4.0", "pretty-format": "^24.9.0", "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "jest-util": { @@ -7692,11 +8559,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -7836,9 +8698,14 @@ }, "dependencies": { "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" } } }, @@ -7886,11 +8753,11 @@ "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, "jsonfile": { @@ -8010,12 +8877,12 @@ } }, "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", - "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", "requires": { "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -8061,12 +8928,12 @@ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" }, "dependencies": { @@ -8081,11 +8948,11 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^3.0.0", + "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, @@ -8119,6 +8986,12 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -8141,15 +9014,73 @@ "lodash._reinterpolate": "^3.0.0" } }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, "loglevel": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", - "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==" + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" + }, + "loglevel-colored-level-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", + "integrity": "sha1-akAhj9x64V/HbD0PPmdsRlOIYD4=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" + }, + "dependencies": { + "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": "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" + } + }, + "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" + } + }, + "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 + } + } }, "loose-envify": { "version": "1.4.0", @@ -8160,9 +9091,12 @@ } }, "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "requires": { + "tslib": "^1.10.0" + } }, "lru-cache": { "version": "5.1.1", @@ -8192,14 +9126,18 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, + "make-plural": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", + "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -8226,6 +9164,12 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -8273,6 +9217,11 @@ "readable-stream": "^2.0.1" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -8287,6 +9236,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8322,6 +9276,29 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" }, + "messageformat": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", + "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", + "dev": true, + "requires": { + "make-plural": "^4.3.0", + "messageformat-formatters": "^2.0.1", + "messageformat-parser": "^4.1.2" + } + }, + "messageformat-formatters": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", + "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==", + "dev": true + }, + "messageformat-parser": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", + "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -8448,9 +9425,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.1", @@ -8537,18 +9514,11 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "moo": { @@ -8570,9 +9540,9 @@ } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multicast-dns": { "version": "6.2.3", @@ -8593,12 +9563,6 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -8630,22 +9594,15 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "nearley": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.1.tgz", - "integrity": "sha512-xq47GIUGXxU9vQg7g/y1o1xuKnkO7ev4nRWqftmQrLkfnE/FjRqDaGOUakM8XHPn/6pW3bGjU2wgoJyId90rqg==", + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.2.tgz", + "integrity": "sha512-h6lygT0BWAGErDvoE2LfI+tDeY2+UUrqG5dcBPdCmjnjud9z1wE0P7ljb85iNbE93YA+xJLpoSYGMuUqhnSSSA==", "requires": { "commander": "^2.19.0", "moo": "^0.5.0", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6", "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "negotiator": { @@ -8669,11 +9626,12 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", "requires": { - "lower-case": "^1.1.1" + "lower-case": "^2.0.1", + "tslib": "^1.10.0" } }, "node-forge": { @@ -8716,6 +9674,11 @@ "vm-browserify": "^1.0.1" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -8745,6 +9708,11 @@ } } }, + "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==" + }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -8777,22 +9745,12 @@ "semver": "^5.5.0", "shellwords": "^0.1.1", "which": "^1.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "node-releases": { - "version": "1.1.48", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", - "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", - "requires": { - "semver": "^6.3.0" - } + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==" }, "normalize-package-data": { "version": "2.5.0", @@ -8803,13 +9761,6 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "normalize-path": { @@ -8898,9 +9849,9 @@ } }, "object-hash": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.1.tgz", - "integrity": "sha512-HgcGMooY4JC2PBt9sdUdJ6PMzpin+YtY3r/7wg0uTifP+HJWW8rammseSEHuyt0UeShI183UGssCJqm1bJR7QA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", + "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==" }, "object-inspect": { "version": "1.7.0", @@ -8908,9 +9859,13 @@ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" }, "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } }, "object-keys": { "version": "1.1.1", @@ -9026,14 +9981,27 @@ } }, "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz", + "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==", "requires": { - "is-wsl": "^1.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==" + } } }, - "opn": { + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==" + }, + "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", @@ -9115,19 +10083,19 @@ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^2.0.0" + "p-try": "^1.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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -9152,9 +10120,9 @@ } }, "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==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "pako": { "version": "1.0.11", @@ -9171,6 +10139,11 @@ "readable-stream": "^2.1.5" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -9185,6 +10158,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9196,11 +10174,12 @@ } }, "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.3", + "tslib": "^1.10.0" } }, "parent-module": { @@ -9241,15 +10220,27 @@ } }, "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "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==", + "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", @@ -9291,9 +10282,12 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "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=" + "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" + } }, "path-type": { "version": "3.0.0", @@ -9321,9 +10315,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "3.0.0", @@ -9357,14 +10351,54 @@ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "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==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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==", + "requires": { + "p-limit": "^2.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==" + } } }, "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "requires": { - "find-up": "^3.0.0" + "find-up": "^2.1.0" } }, "pn": { @@ -9397,6 +10431,11 @@ "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -9406,20 +10445,15 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", - "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "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==" - }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -9448,36 +10482,13 @@ } }, "postcss-calc": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", - "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", "requires": { - "css-unit-converter": "^1.1.1", - "postcss": "^7.0.5", - "postcss-selector-parser": "^5.0.0-rc.4", - "postcss-value-parser": "^3.3.1" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "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==" - } + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" } }, "postcss-color-functional-notation": { @@ -9829,11 +10840,11 @@ }, "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "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==", "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -9906,11 +10917,11 @@ }, "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "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==", "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -9937,9 +10948,9 @@ } }, "postcss-modules-scope": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz", - "integrity": "sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==", + "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==", "requires": { "postcss": "^7.0.6", "postcss-selector-parser": "^6.0.0" @@ -10339,9 +11350,9 @@ } }, "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", + "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==" }, "postcss-values-parser": { "version": "2.0.1", @@ -10363,40 +11374,730 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, - "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "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==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" + "prettier": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz", + "integrity": "sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==", + "dev": true + }, + "prettier-eslint": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-9.0.1.tgz", + "integrity": "sha512-KZT65QTosSAqBBqmrC+RpXbsMRe7Os2YSR9cAfFbDlyPAopzA/S5bioiZ3rpziNQNSJaOxmtXSx07EQ+o2Dlug==", + "dev": true, + "requires": { + "@typescript-eslint/parser": "^1.10.2", + "common-tags": "^1.4.0", + "core-js": "^3.1.4", + "dlv": "^1.1.0", + "eslint": "^5.0.0", + "indent-string": "^4.0.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^1.7.0", + "pretty-format": "^23.0.1", + "require-relative": "^0.8.7", + "typescript": "^3.2.1", + "vue-eslint-parser": "^2.0.2" }, "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz", + "integrity": "sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "1.13.0", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, + "requires": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + } + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "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==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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": "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" + } + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": 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" + } + }, + "eslint-utils": { + "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" + } + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "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" + }, + "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=", + "dev": true + }, + "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.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.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" + } + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "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" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true } } }, - "private": { - "version": "0.1.8", + "prettier-eslint-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/prettier-eslint-cli/-/prettier-eslint-cli-5.0.0.tgz", + "integrity": "sha512-cei9UbN1aTrz3sQs88CWpvY/10PYTevzd76zoG1tdJ164OhmNTFRKPTOZrutVvscoQWzbnLKkviS3gu5JXwvZg==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "boolify": "^1.0.0", + "camelcase-keys": "^6.0.0", + "chalk": "^2.4.2", + "common-tags": "^1.8.0", + "core-js": "^3.1.4", + "eslint": "^5.0.0", + "find-up": "^4.1.0", + "get-stdin": "^7.0.0", + "glob": "^7.1.4", + "ignore": "^5.1.2", + "lodash.memoize": "^4.1.2", + "loglevel-colored-level-prefix": "^1.0.0", + "messageformat": "^2.2.1", + "prettier-eslint": "^9.0.0", + "rxjs": "^6.5.2", + "yargs": "^13.2.4" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "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 + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "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": "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" + } + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "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 + } + } + }, + "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" + } + }, + "eslint-utils": { + "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" + } + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "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": "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" + } + }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + }, + "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" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "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" + }, + "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=", + "dev": true + }, + "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" + } + }, + "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.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.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" + } + }, + "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": "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" + } + }, + "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 + }, + "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 + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "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-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, + "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-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "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==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "private": { + "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, @@ -10416,9 +12117,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", - "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", "requires": { "asap": "~2.0.6" } @@ -10429,12 +12130,12 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "prompts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", - "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", "requires": { "kleur": "^3.0.3", - "sisteransi": "^1.0.3" + "sisteransi": "^1.0.4" } }, "prop-types": { @@ -10458,12 +12159,12 @@ } }, "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "ipaddr.js": "1.9.1" } }, "prr": { @@ -10472,9 +12173,9 @@ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "public-encrypt": { "version": "4.0.3", @@ -10558,6 +12259,12 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -10621,9 +12328,9 @@ } }, "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -10644,14 +12351,14 @@ } }, "react-dev-utils": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.1.0.tgz", - "integrity": "sha512-KmZChqxY6l+ed28IHetGrY8J9yZSvzlAHyFXduEIhQ42EBGtqftlbqQZ+dDTaC7CwNW2tuXN+66bRKE5h2HgrQ==", + "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==", "requires": { "@babel/code-frame": "7.8.3", "address": "1.1.2", - "browserslist": "4.8.6", - "chalk": "3.0.0", + "browserslist": "4.10.0", + "chalk": "2.4.2", "cross-spawn": "7.0.1", "detect-port-alt": "1.1.6", "escape-string-regexp": "2.0.0", @@ -10665,46 +12372,26 @@ "inquirer": "7.0.4", "is-root": "2.1.0", "loader-utils": "1.2.3", - "open": "^6.4.0", + "open": "^7.0.2", "pkg-up": "3.1.0", - "react-error-overlay": "^6.0.5", + "react-error-overlay": "^6.0.7", "recursive-readdir": "2.2.2", "shell-quote": "1.7.2", "strip-ansi": "6.0.0", "text-table": "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==", - "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==", + "browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", "requires": { - "color-name": "~1.1.4" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, - "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==" - }, "cross-spawn": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", @@ -10715,6 +12402,11 @@ "which": "^2.0.1" } }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -10727,39 +12419,132 @@ "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==", + "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==", + "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==" + } } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "inquirer": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "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.2.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "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==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^4.1.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.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==", + "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==", "requires": { - "p-limit": "^2.2.0" + "p-limit": "^2.0.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==" + "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==" }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "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==", + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10779,14 +12564,13 @@ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "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==", - "requires": { - "has-flag": "^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==" + } } }, "which": { @@ -10800,25 +12584,30 @@ } }, "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "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==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.18.0" + "scheduler": "^0.19.1" } }, "react-error-overlay": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.5.tgz", - "integrity": "sha512-+DMR2k5c6BqMDSMF8hLH0vYKtKTeikiFW+fj0LClN+XZg4N9b8QUAdHC62CGWNLTi/gnuuemNcNcTFrCvK1f+A==" + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", + "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" }, "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "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==" }, "react-router": { "version": "5.1.2", @@ -10835,21 +12624,6 @@ "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": { @@ -10867,9 +12641,9 @@ } }, "react-scripts": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.3.1.tgz", - "integrity": "sha512-DHvc+/QN0IsLvmnPQqd+H70ol+gdFD3p/SS2tX8M6z1ysjtRGvOwLWy72co1nphYGpq1NqV/Ti5dviU8SCAXpA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz", + "integrity": "sha512-pBqaAroFoHnFAkuX+uSK9Th1uEh2GYdGY2IG1I9/7HmuEf+ls3lLCk1p2GFYRSrLMz6ieQR/SyN6TLIGK3hKRg==", "requires": { "@babel/core": "7.8.4", "@svgr/webpack": "4.3.3", @@ -10911,30 +12685,191 @@ "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.1", "react-app-polyfill": "^1.0.6", - "react-dev-utils": "^10.1.0", + "react-dev-utils": "^10.2.0", "resolve": "1.15.0", "resolve-url-loader": "3.1.1", "sass-loader": "8.0.2", "semver": "6.3.0", - "style-loader": "1.1.3", + "style-loader": "0.23.1", "terser-webpack-plugin": "2.3.4", "ts-pnp": "1.1.5", "url-loader": "2.3.0", "webpack": "4.41.5", - "webpack-dev-server": "3.10.1", + "webpack-dev-server": "3.10.2", "webpack-manifest-plugin": "2.2.0", "workbox-webpack-plugin": "4.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "eslint-loader": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", + "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", + "requires": { + "fs-extra": "^8.1.0", + "loader-fs-cache": "^1.0.2", + "loader-utils": "^1.2.3", + "object-hash": "^2.0.1", + "schema-utils": "^2.6.1" + } + }, + "eslint-plugin-flowtype": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", + "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-import": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz", + "integrity": "sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ==", + "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" + } + }, + "eslint-plugin-react": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.18.0.tgz", + "integrity": "sha512-p+PGoGeV4SaZRDsXqdj9OWcOrOpZn8gXoGPcIQTzo2IDMbAKhNDnME9myZWqO3Ic4R3YmwAZ1lDjWl2R2hMUVQ==", + "requires": { + "array-includes": "^3.1.1", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.3", + "object.entries": "^1.1.1", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.14.2" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "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==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "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=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "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=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "react-test-renderer": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.12.0.tgz", - "integrity": "sha512-Vj/teSqt2oayaWxkbhQ6gKis+t5JrknXfPVo+aIJ8QwYAqMPH77uptOdrlphyxl8eQI/rtkOYg86i/UWkpFu0w==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz", + "integrity": "sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==", "requires": { "object-assign": "^4.1.1", "prop-types": "^15.6.2", "react-is": "^16.8.6", - "scheduler": "^0.18.0" + "scheduler": "^0.19.1" + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" } }, "read-pkg": { @@ -10954,12 +12889,52 @@ "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==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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==", + "requires": { + "p-limit": "^2.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==" + } } }, "readable-stream": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", - "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11010,24 +12985,25 @@ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "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==", "requires": { "regenerate": "^1.4.0" } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" } }, "regex-not": { @@ -11054,21 +13030,21 @@ } }, "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "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==", "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.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.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { @@ -11077,9 +13053,9 @@ "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" }, "regjsparser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", - "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "requires": { "jsesc": "~0.5.0" }, @@ -11118,31 +13094,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "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==" - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -11164,9 +13115,9 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -11175,7 +13126,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -11185,25 +13136,9 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } } }, "request-promise-core": { @@ -11234,6 +13169,12 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -11287,6 +13228,29 @@ "source-map": "0.6.1" }, "dependencies": { + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "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==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, "postcss": { "version": "7.0.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", @@ -11297,11 +13261,6 @@ "supports-color": "^6.1.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -11394,9 +13353,9 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", "requires": { "is-promise": "^2.1.0" } @@ -11410,17 +13369,17 @@ } }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "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==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" }, "safe-regex": { "version": "1.1.0", @@ -11483,6 +13442,11 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -11507,20 +13471,20 @@ } }, "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" } }, "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz", + "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==", "requires": { - "ajv": "^6.10.2", + "ajv": "^6.12.0", "ajv-keywords": "^3.4.1" } }, @@ -11538,9 +13502,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "send": { "version": "0.17.1", @@ -11632,11 +13596,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -11726,6 +13685,11 @@ } } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -11749,10 +13713,20 @@ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" }, + "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.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "simple-swizzle": { "version": "0.2.2", @@ -11770,9 +13744,9 @@ } }, "sisteransi": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", - "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "slash": { "version": "2.0.0", @@ -11835,10 +13809,10 @@ "is-extendable": "^0.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -11938,6 +13912,11 @@ "requires": { "websocket-driver": ">=0.5.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -11955,9 +13934,9 @@ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { "version": "0.5.3", @@ -11972,19 +13951,12 @@ } }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.17.tgz", + "integrity": "sha512-bwdKOBZ5L0gFRh4KOxNap/J/MpvX9Yxsq9lFDx65s3o7F/NiHy7JRaGIS8MwW6tZPAq9UXE207Il0cfcb5yu/Q==", "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==" - } } }, "source-map-url": { @@ -12021,15 +13993,30 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "requires": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "spdy-transport": { @@ -12043,6 +14030,21 @@ "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "split-string": { @@ -12131,6 +14133,11 @@ "readable-stream": "^2.0.2" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -12145,6 +14152,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12176,6 +14188,11 @@ "xtend": "^4.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -12190,6 +14207,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12244,6 +14266,11 @@ "strip-ansi": "^6.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==" + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -12254,6 +14281,20 @@ } } }, + "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.trim": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", @@ -12264,22 +14305,42 @@ "function-bind": "^1.1.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==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" } }, "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "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==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -12288,13 +14349,6 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - } } }, "stringify-object": { @@ -12305,6 +14359,13 @@ "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + } } }, "strip-ansi": { @@ -12313,13 +14374,6 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "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==" - } } }, "strip-bom": { @@ -12350,17 +14404,46 @@ } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==" }, "style-loader": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.1.3.tgz", - "integrity": "sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.6.4" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "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==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "styled-components": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.1.0.tgz", + "integrity": "sha512-0Qs2wEkFBXHFlysz6CV831VG6HedcrFUwChjnWylNivsx14MtmqQsohi21rMHZxzuTba063dEyoe/SR6VGJI7Q==", + "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": { @@ -12374,11 +14457,11 @@ }, "dependencies": { "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "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==", "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -12394,9 +14477,9 @@ } }, "svg-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.3.tgz", - "integrity": "sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, "svgo": { "version": "1.3.2", @@ -12416,6 +14499,33 @@ "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==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } } }, "symbol-tree": { @@ -12462,20 +14572,13 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.11", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz", + "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==", "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "terser-webpack-plugin": { @@ -12495,12 +14598,12 @@ }, "dependencies": { "find-cache-dir": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", - "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", + "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==", "requires": { "commondir": "^1.0.1", - "make-dir": "^3.0.0", + "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, @@ -12519,9 +14622,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", - "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", + "version": "25.4.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz", + "integrity": "sha512-ghAs/1FtfYpMmYQ0AHqxV62XPvKdUDIBBApMZfly+E9JEmYh2K45G0R5dWxx986RN12pRCxsViwQVtGl+N4whw==", "requires": { "merge-stream": "^2.0.0", "supports-color": "^7.0.0" @@ -12536,13 +14639,21 @@ } }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { "semver": "^6.0.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -12551,6 +14662,11 @@ "p-limit": "^2.2.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==" + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -12564,10 +14680,10 @@ "find-up": "^4.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "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", @@ -12614,6 +14730,11 @@ "xtend": "~4.0.1" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -12628,6 +14749,11 @@ "util-deprecate": "~1.0.1" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12656,6 +14782,16 @@ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, + "tiny-glob": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.6.tgz", + "integrity": "sha512-A7ewMqPu1B5PWwC3m7KVgAu96Ch5LA0w4SnEN/LbDREj/gAD0nPWboRbn8YoP9ISZXqeNAlMvKSKoEuhcfK3Pw==", + "dev": true, + "requires": { + "globalyzer": "^0.1.0", + "globrex": "^0.1.1" + } + }, "tiny-invariant": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", @@ -12744,10 +14880,33 @@ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.5.tgz", "integrity": "sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==" }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "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" + } + } + } + }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" }, "tsutils": { "version": "3.17.1", @@ -12808,9 +14967,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==" + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -12827,14 +14986,14 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==" + "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==" }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==" + "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==" }, "union-value": { "version": "1.0.1", @@ -12921,6 +15080,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -12929,11 +15093,6 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -13077,12 +15236,71 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "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 + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + } + } + }, "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "requires": { - "browser-process-hrtime": "^0.1.2" + "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { @@ -13109,11 +15327,11 @@ } }, "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", + "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==", "requires": { - "chokidar": "^2.0.2", + "chokidar": "^2.1.8", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" }, @@ -13143,13 +15361,11 @@ } }, "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", + "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", "node-pre-gyp": "*" }, "dependencies": { @@ -13192,7 +15408,7 @@ } }, "chownr": { - "version": "1.1.3", + "version": "1.1.4", "bundled": true, "optional": true }, @@ -13342,7 +15558,7 @@ } }, "minimist": { - "version": "0.0.8", + "version": "1.2.5", "bundled": true, "optional": true }, @@ -13364,11 +15580,11 @@ } }, "mkdirp": { - "version": "0.5.1", + "version": "0.5.3", "bundled": true, "optional": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "ms": { @@ -13377,7 +15593,7 @@ "optional": true }, "needle": { - "version": "2.4.0", + "version": "2.3.3", "bundled": true, "optional": true, "requires": { @@ -13404,7 +15620,7 @@ } }, "nopt": { - "version": "4.0.1", + "version": "4.0.3", "bundled": true, "optional": true, "requires": { @@ -13426,12 +15642,13 @@ "optional": true }, "npm-packlist": { - "version": "1.4.7", + "version": "1.4.8", "bundled": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npmlog": { @@ -13501,17 +15718,10 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } } }, "readable-stream": { - "version": "2.3.6", + "version": "2.3.7", "bundled": true, "optional": true, "requires": { @@ -13659,6 +15869,11 @@ "binary-extensions": "^1.0.0" } }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13688,6 +15903,11 @@ "readable-stream": "^2.0.2" } }, + "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==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -13742,14 +15962,14 @@ }, "dependencies": { "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" }, "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "requires": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -13787,11 +16007,6 @@ "ajv-keywords": "^3.1.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "ssri": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", @@ -13831,9 +16046,9 @@ } }, "webpack-dev-server": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz", - "integrity": "sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA==", + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.2.tgz", + "integrity": "sha512-pxZKPYb+n77UN8u9YxXT4IaIrGcNtijh/mi8TXbErHmczw0DtPnMTTjHj+eNjkqLOaAZM/qD7V59j/qJsEiaZA==", "requires": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", @@ -13924,14 +16139,28 @@ } } }, + "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" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", + "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", "node-pre-gyp": "*" }, "dependencies": { @@ -13974,7 +16203,7 @@ } }, "chownr": { - "version": "1.1.3", + "version": "1.1.4", "bundled": true, "optional": true }, @@ -14124,7 +16353,7 @@ } }, "minimist": { - "version": "0.0.8", + "version": "1.2.5", "bundled": true, "optional": true }, @@ -14146,11 +16375,11 @@ } }, "mkdirp": { - "version": "0.5.1", + "version": "0.5.3", "bundled": true, "optional": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "ms": { @@ -14159,7 +16388,7 @@ "optional": true }, "needle": { - "version": "2.4.0", + "version": "2.3.3", "bundled": true, "optional": true, "requires": { @@ -14186,7 +16415,7 @@ } }, "nopt": { - "version": "4.0.1", + "version": "4.0.3", "bundled": true, "optional": true, "requires": { @@ -14208,12 +16437,13 @@ "optional": true }, "npm-packlist": { - "version": "1.4.7", + "version": "1.4.8", "bundled": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npmlog": { @@ -14283,17 +16513,10 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } } }, "readable-stream": { - "version": "2.3.6", + "version": "2.3.7", "bundled": true, "optional": true, "requires": { @@ -14456,11 +16679,51 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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==", + "requires": { + "p-limit": "^2.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==" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -14490,6 +16753,11 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, + "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==" + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -14500,6 +16768,11 @@ "ajv-keywords": "^3.1.0" } }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -14654,13 +16927,6 @@ "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==" - } } }, "websocket-driver": { @@ -14974,6 +17240,15 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "xregexp": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", + "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", + "dev": true, + "requires": { + "@babel/runtime-corejs3": "^7.8.3" + } + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -14990,17 +17265,17 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.1.tgz", + "integrity": "sha512-xbWX1ayUVoW8DPM8qxOBowac4XxSTi0mFLbiokRq880ViYglN+F3nJ4Dc2GdypXpykrknKS39d8I3lzFoHv1kA==", "requires": { - "@babel/runtime": "^7.6.3" + "@babel/runtime": "^7.9.2" } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -15011,7 +17286,7 @@ "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "yargs-parser": "^13.1.2" }, "dependencies": { "emoji-regex": { @@ -15019,11 +17294,49 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "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=" }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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==", + "requires": { + "p-limit": "^2.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==" + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -15037,9 +17350,9 @@ } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" diff --git a/package.json b/package.json index 328fbb8..e10ad40 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,15 @@ "version": "0.1.0", "private": true, "dependencies": { + "@progress/kendo-data-query": "^1.5.3", + "@progress/kendo-drawing": "^1.6.0", + "@progress/kendo-react-data-tools": "^3.12.0", + "@progress/kendo-react-dateinputs": "^3.12.0", + "@progress/kendo-react-dropdowns": "^3.12.0", + "@progress/kendo-react-grid": "^3.12.0", + "@progress/kendo-react-inputs": "^3.12.0", + "@progress/kendo-react-intl": "^3.12.0", + "@progress/kendo-theme-default": "^4.17.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.4.0", "@testing-library/user-event": "^7.2.1", @@ -13,19 +22,25 @@ "@types/react": "^16.9.19", "@types/react-dom": "^16.9.5", "@types/react-router-dom": "^5.1.3", + "@types/styled-components": "^5.1.0", + "axios": "^0.19.2", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "react": "^16.12.0", "react-dom": "^16.12.0", "react-router-dom": "^5.1.2", - "react-scripts": "3.3.1", + "react-scripts": "^3.4.0", + "react-test-renderer": "^16.13.1", + "styled-components": "^5.1.0", "typescript": "^3.7.5" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "lint": "eslint --ext .js,.jsx,.ts,.tsx src --color", + "format": "prettier --write src/**/*.{ts,tsx,scss,css,json}" }, "eslintConfig": { "extends": "react-app" @@ -41,5 +56,25 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "2.28.0", + "@typescript-eslint/parser": "2.28.0", + "eslint": "6.8.0", + "eslint-config-airbnb": "18.1.0", + "eslint-config-airbnb-typescript": "7.2.1", + "eslint-config-prettier": "6.10.1", + "eslint-config-react-app": "5.2.1", + "eslint-import-resolver-typescript": "2.0.0", + "eslint-loader": "4.0.0", + "eslint-plugin-flowtype": "4.7.0", + "eslint-plugin-import": "2.20.2", + "eslint-plugin-jsx-a11y": "6.2.3", + "eslint-plugin-prettier": "3.1.3", + "eslint-plugin-react": "7.19.0", + "eslint-plugin-react-hooks": "3.0.0", + "prettier": "2.0.4", + "prettier-eslint": "9.0.1", + "prettier-eslint-cli": "5.0.0" } } -- GitLab From 3a16fe01515ebdd36359161af87645c73f87f5dd Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:08:26 +0700 Subject: [PATCH 06/88] [CHORES] Ignore *.env to be saved by Git --- .gitignore | 3 ++- README.md | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d765ebc..d9871e5 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,5 @@ src/helper/* .scannerwork/ # Etc -*.log \ No newline at end of file +*.log +*.env \ No newline at end of file diff --git a/README.md b/README.md index 51c0752..e357693 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Install the following packages/tools: Create **.env** file in the root project and put necessary variable and value, for instance: ```bash -API_MAIN_URL=http://localhost:8000 +REACT_APP_API_MAIN_URL=http://localhost:8000 ``` Install all dependencies by run this command in the root of project @@ -44,6 +44,14 @@ npm i ```bash npm run build ``` +* ### **Lint checking** + ```bash + npm run lint + ``` +* ### **Formatting code** + ```bash + npm run format + ``` ## **Troubleshootings** * ### **Corrupt modules** -- GitLab From 61d38dfe9dc49d0299cbf6c1bf2b93dfdcb25078 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:08:51 +0700 Subject: [PATCH 07/88] [CHORES] Set configuration of ESLint --- .editorconfig | 9 ++++++ .eslintignore | 5 ++++ .eslintrc.json | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ .prettierrc | 4 +++ 4 files changed, 92 insertions(+) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .prettierrc diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..445bf48 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +end_of_line = lf +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..5460350 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +// .eslintignore +build/* +public/* +src/react-app-env.d.ts +src/serviceWorker.ts \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..81fd8f7 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,74 @@ +{ + "plugins": ["prettier", "@typescript-eslint"], + "extends": ["airbnb-typescript", "react-app", "prettier"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "./tsconfig.json" + }, + "settings": { + "import/resolver": { + "typescript": { + "alwaysTryTypes": true + } + } + }, + "rules": { + "object-curly-spacing": ["warn", "always"], + "no-unused-vars": [ + "warn", + { + "vars": "all", + "args": "none" + } + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "vars": "all", + "args": "none" + } + ], + "@typescript-eslint/no-explicit-any": [ + "error", + { + "ignoreRestArgs": true + } + ], + "max-len": [ + "warn", + { + "code": 80, + "ignoreStrings": true, + "ignoreTemplateLiterals": true, + "ignoreComments": true + } + ], + "no-plusplus": [ + "error", + { + "allowForLoopAfterthoughts": true + } + ], + "react/jsx-key": "error", + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": [ + "**/*.test.js", + "**/*.test.jsx", + "**/*.test.ts", + "**/*.test.tsx", + "src/tests/**/*" + ] + } + ], + "react/jsx-props-no-spreading": "off", + "import/prefer-default-export": "off", + "react/jsx-boolean-value": "off", + "react/prop-types": "off", + "react/no-unescaped-entities": "off", + "react/jsx-one-expression-per-line": "off", + "react/jsx-wrap-multilines": "off", + "react/destructuring-assignment": "off" + } +} \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..627d6c5 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "es5" +} \ No newline at end of file -- GitLab From 0af2e0ca1a718f8ef4ae6fb7023a92d69caefc63 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:09:23 +0700 Subject: [PATCH 08/88] [CHORES] Set ESLint configuration for VSCode --- settings.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 settings.json diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..2360b2b --- /dev/null +++ b/settings.json @@ -0,0 +1,11 @@ +{ + "files.associations": { + "*.jsx": "javascriptreact" + }, + "editor.insertSpaces": true, + "editor.detectIndentation": false, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + } +} \ No newline at end of file -- GitLab From 0a6b585c7b05ca19246594577ee32e3fecf2a3dc Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:11:08 +0700 Subject: [PATCH 09/88] [CHORES] Add fonts --- src/App/fonts/Dosis-Bold.ttf | Bin 0 -> 92932 bytes src/App/fonts/Dosis-ExtraBold.ttf | Bin 0 -> 92928 bytes src/App/fonts/Dosis-ExtraLight.ttf | Bin 0 -> 92788 bytes src/App/fonts/Dosis-Light.ttf | Bin 0 -> 93040 bytes src/App/fonts/Dosis-Medium.ttf | Bin 0 -> 93016 bytes src/App/fonts/Dosis-Regular.ttf | Bin 0 -> 93084 bytes src/App/fonts/Dosis-SemiBold.ttf | Bin 0 -> 93032 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/App/fonts/Dosis-Bold.ttf create mode 100644 src/App/fonts/Dosis-ExtraBold.ttf create mode 100644 src/App/fonts/Dosis-ExtraLight.ttf create mode 100644 src/App/fonts/Dosis-Light.ttf create mode 100644 src/App/fonts/Dosis-Medium.ttf create mode 100644 src/App/fonts/Dosis-Regular.ttf create mode 100644 src/App/fonts/Dosis-SemiBold.ttf diff --git a/src/App/fonts/Dosis-Bold.ttf b/src/App/fonts/Dosis-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f54363fa83d3784152e8d86a5917ff8f6f1d0f90 GIT binary patch literal 92932 zcmdSCcf2G=buV7kGt-lEhv}Z2XKv1O^Ug+XmUdUtYL#}cR#`}_1V}tELIfcY7%YKp zfw7*k!DJ8*g990CjK#x5`v({qi3ixS5%FO_V()$5Q`Hl0SRwoOet-P-Bh8(zsjfa% z=hVq{nsLTh0v~QxIB(bPJ;j0ICm8$n=g|7e^Da35*drG`FU8o|S2A|vqvsvFXvgte z^MB6x_180|+WFb^7+_7CdiB;kUf{&if0(h)*(5XY8||!vwFsdFA$`cOV2#} zInVv>W5@oIu_wL@c)oe&wrkFudElZ^#{P8|`hT8rR%ID}ihqpNS*2a9rsH0>!uUbX znZoXNyA(ya9UbeeKCBIURBP~#Qf+!_rq!y~= zJeOVOaTT;wWaqAMN-MhQ+FjIA;axi;8C&y)z4zSXji_2$J97pfYJ{%CUd>LPIg(ZA%400U@@%v{l;>{F4+5_)=5}4jIL{waJPM}G4s({vS}8pl^kX_1)n^Por$i98 zk~0LJnIy;nTCH9$dsQ_#>AEaYv-zjI`mwB^RaFpgWY$IK5y>!iLt^~OoEKRw4d@9vJ1X1}w!&)OiZcehW8-vi|P zFt3L=rq!MKkGnlA_Hp(jn)xPZ{ztcu&7QmdNxyuEbYHvVxvscGMPeo{~B&;OpLCH2*>8kJA#`X`T%&!&_7bH}b3 zu4t*!=kj{I_;;n0R?#({Sp8Wt&EN95xp~5}n1`T*prizT^M<*)*dnMnfw`twi4C#2 z_Dqz!+>(wJqGL?+B$hdUh|$zl&Ut|!W^8DnTE=WG+-J^seI`*fO>+{H6Z6U@SbCN^e9bX#0xzQ%F4V205h@mp zx%t({7iNuOC1xh<+Tx{Sz>9!h;3eYh&@TwQ@V*@?`}{rVRQ561E4Jv z@b>QbwBzKx27Bce_hJQI4|e+`*hkm*!9M8FMx3SDaC^YbU0}Xg-hPSz(~}gDwzLF` zv)GJhBQ=1s)v}<2IMD&HpSM4-^Tuu4ZrpkO^%JwR<2L}~ua2d#daFOe>fJUs&*SqT zUS;i9_(%cIHZZ-^o)2@6!ViK7y_~r@BkEL6f-pgyZnx_sHma-O0(A}#)~c0KHjVqN z$*Sh}S&}}1V3G@yT|(UeT6b&ymYr|L;_+A$knXr?dHJRtfV9<`xc*Qqk%%2i#dsr= zNMyOX3F?n#6NwCPAlA-B_|pWAO?JOn-!2#a|L^Ru|7do^Aqyn=Kq)S_B4l2NGTd$t zc!kGP@Bka=m5*2B74V64mrpp{u-IL4-D!EAUa9E(Y9py@tKWM-)04&nJWYReO?j23 zuV;Bg?E)6Do1i%fdH1FDl-%t@@=o?iu{WHf4`EF9G1;rm(T8@H>|?N3pQ8`SMA;|K z{y_HWlR^?^+I_N5f_>r~{z?JL+E>YrF0Ve{7{3+m2 z>}}FofW_+smlw>_1HLJAmy{8YMZbY(M3&(DkEPS9*F6FZTh?w{|ANQSuiTCkv z2%pZbhx`?sJih~+{04CHmME(%s4vBSe-j2IFDFdOJ_dX37JZf-UXDJ%Qh~j-kCzjr z$a@p))9de*m{f|uWS$MRo7jyWrg*M%fidR~xz&z_l1bCLg@Qhn<$0dOUq@tPUE+cz z(ic*Z9d!iAY^JQnWAxFmQq9K*mG|mNXd+K>5B)uRyM`s@`PIjOQ-v%EiwOqgS8Ixu&Xl@GD*Y|J1g5= zPg+NM8nl{kD*xoJu|c8%Hp8A0G%$&)vx38+U2wR`^)#@yw)RW>qPU0-WuFvUNbB!H ziatL=pOBc1>|>y1W1lrV>sKz~Ub0UdaEU(axflDm&>du-1ZZ=^IN&FYeWCAJNwjR} zv-U#)4{~Ch*sC>qbennL+9uGA&=1c*T`CJxJaLuW7ud}HwG{iSbLH` z3Jew5M0=ERm*V2eUEne9lTaIkX3JKH-3c|(P9+o3Ffdo-MPhfyg{da&w46dJY`jB| z5|`?)cHO*OELt_L#D|)bt?Ni(f4@=LcD*`w=~B&#r&1F|Xf*dq6@7IWj00;bU=r&y zgBcKI-MIe)bONrGBvGFaJIt2KQun{k(+@AmOO|Mx=Moj-lXSy`G`XgRTYPq;4qCUF%XTeY`mkfn@cGq8H zs|#9PCfKmu z%;x7w{Oj8jlFsOigo%Z-@^_m&O34g1G!wYxqj~an!06ItF~2VoHSzoZ9v>0USF_`h!^mX zTE4|nH(0$?Ovc>~SxkEcZzl%{DZoU&!aV{C@p?OY*bDVaOjQ$UpMRE6v8bwHEgZkb zLCLrMu9_Bzxifqx@y^w!@=C%E8@`FJ5t1DID=!9ob=qr{ObEs#S(5ex&BlrX!@T+ z1bk~H8^~oJeKea3WGiQ1C%F3iz7z=sqhDX$5BimKDr9Dk)!UUc5E<(OR zEF3~dH`t%sU2)U?9AE?W>R?s%*<>FJSvw;vcri=jeRA&W7D46rHqu!w9#=h{uam9- zjC7WwwDXaoX6Ll3SqsGca_XDcWw>?mSVx;L3VtqUYqOWHpDlK6M|X@v;g9zW@i`3v2vi9FmaD1;TD+~Z?(FlSE&^@ z+P=D$u2t5Nq9f513oE8$Z(z^6rB~X8UE@-&gFJKGmtE_Q%&A1o?`1mI`&qEi9E1n2 zjL&4(iwDgiV|=cC-6DJmR2%W*qSPmd@)&m-|6(#q-` z%LWtZ=SeZUb;S2&XvewE#9na+trCv`?-1H)x*PAU%2}C{!q zwqvtiE+%3DALdZt1!oR*7x}C^0>RNVRVU7(a_Q|Ym-!dMmiM(6l29;{pWSg&yR=Yy zxuT@1tB>3=K0iNxizgQ4+Uipzq=|}Zmt8P_WIXgUx8D^jX#9<1^NXXT*%91=qg=d> zqjddg-998KWgl~kC;~J=n!oHLB;}t7Nts&v1%E<$6#C)r_Kq^#{Y0s>Djtrncfq)V zaJiEfXGJUyklg269vW!W^4UlT`)Hoe(*ikW1Jo>GHNf*d;+dWzl?I-1a)^Rj1%YZg z4_&WqzhNl~qcl^Qs^up0rTJaE=gNcUT|8)R+tv(1OUjQAl&9?S+^*g8rRAIawYhAh zXqtI5S<4lM3c1qQp2^vRqq;YdPlXB=6zHO5S2CIE)S=n)R>rY9VuoS`FLhS%BkLt= zw-2qL>|?U$ZPBMeD<%721&i=qk>r-+ldUZ8HP{_n+`GK)-U9q^07k^D$e(DiO1nr~ z$8qbDC>KtsWIRlM0fQT)imi|qLX_9XeL;&{wHmKa8sI-~C$@S&>CsCSQ?FKavvT$` z!tWHoCZH!ZX!ojI@lr663%`V84*ELJtd{fHjBO+%Vd0Z#@P>cGvngJ)4v3BxO*@0D zspds-{JZG&WD@dsP(0`L7gEcGfQ;+eL_GI!2fT-K@nmN8--T94kwryle5VAaw!(rR zbS%Ak=p*R(bz&vw;6ot(pY5!qW8XST5oe|zi-1hCJWDItQHZ3bZ3z3e>!wh7bJw%l zv~%aDCKu{=gnYp9MXhjpE!G$9H-AyA^Y^kNwW8!<5{E$$#Hb{2B8V@P2-RzB>SY<8@Cu| zkXByy0Y*v;J{jx_2?IqX<-HdBTM?DqJU;0{vX9MPw0?Z-5g#x+4a{a(xm}3Bpz68; zK(NAfk&Md-GZ}n9Y~4k)Nrs-8l#yog1?VmWv+|j7_0x)7PsCELH$LDoV+Z5Xsq0fXxXz%WRD|ArBPUcnDaPa{aSbjVGnoq(lU zPFn(=K|bhc-kag+gUbuBu$k&E0|^kObMzs~lYQcRUiRsu82PN;I7z;3{Ww_75M){zGG~z0+T}(z(ammv*F
B7Pt%wlVCSN?yrJAlUDm>Fj#A4nz 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 LzQwtEmZbj%c*ezn literal 0 HcmV?d00001 diff --git a/src/App/fonts/Dosis-ExtraLight.ttf b/src/App/fonts/Dosis-ExtraLight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b47296d67f00e06a6d5b5f0e548033ebf9186127 GIT binary patch literal 92788 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 literal 0 HcmV?d00001 diff --git a/src/App/fonts/Dosis-Medium.ttf b/src/App/fonts/Dosis-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9c59a5a92d8fce1d9b06da9800ce63a06fff3c93 GIT binary patch literal 93016 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%0A0UOF~MI+8VJHp)A`PwtW@&55WgHxd}>YfMY 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 S{W&FHXJJ^*e9q^SBK Date: Mon, 20 Apr 2020 19:11:52 +0700 Subject: [PATCH 10/88] [CHORES] Set global style --- src/App/style.css | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/App/style.css diff --git a/src/App/style.css b/src/App/style.css new file mode 100644 index 0000000..a4bd91a --- /dev/null +++ b/src/App/style.css @@ -0,0 +1,30 @@ +@font-face { + font-family: 'Dosis'; + src: url('./fonts/Dosis-Light.ttf') format('truetype'); + font-weight: 300; +} + +@font-face { + font-family: 'Dosis'; + src: url('./fonts/Dosis-Regular.ttf') format('truetype'); + font-weight: 400; +} + +@font-face { + font-family: 'Dosis'; + src: url('./fonts/Dosis-Medium.ttf') format('truetype'); + font-weight: 500; +} + +@font-face { + font-family: 'Dosis'; + src: url('./fonts/Dosis-Bold.ttf') format('truetype'); + font-weight: 700; +} + +html, +body { + position: relative; + max-width: 100%; + overflow-x: hidden; +} -- GitLab From f6c922d8269d936b78c68601154539d3dca86cf4 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:13:04 +0700 Subject: [PATCH 11/88] [CHORES] Formatting server files --- src/serviceWorker.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/serviceWorker.ts b/src/serviceWorker.ts index d5f0275..2b7972d 100644 --- a/src/serviceWorker.ts +++ b/src/serviceWorker.ts @@ -28,10 +28,7 @@ type Config = { export function register(config?: Config) { if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL( - process.env.PUBLIC_URL, - window.location.href - ); + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); if (publicUrl.origin !== window.location.origin) { // Our service worker won't work if PUBLIC_URL is on a different origin // from what our page is served on. This might happen if a CDN is used to @@ -65,7 +62,7 @@ export function register(config?: Config) { function registerValidSW(swUrl: string, config?: Config) { navigator.serviceWorker .register(swUrl) - .then(registration => { + .then((registration) => { registration.onupdatefound = () => { const installingWorker = registration.installing; if (installingWorker == null) { @@ -101,7 +98,7 @@ function registerValidSW(swUrl: string, config?: Config) { }; }; }) - .catch(error => { + .catch((error) => { console.error('Error during service worker registration:', error); }); } @@ -109,9 +106,9 @@ function registerValidSW(swUrl: string, config?: Config) { function checkValidServiceWorker(swUrl: string, config?: Config) { // Check if the service worker can be found. If it can't reload the page. fetch(swUrl, { - headers: { 'Service-Worker': 'script' } + headers: { 'Service-Worker': 'script' }, }) - .then(response => { + .then((response) => { // Ensure service worker exists, and that we really are getting a JS file. const contentType = response.headers.get('content-type'); if ( @@ -119,7 +116,7 @@ function checkValidServiceWorker(swUrl: string, config?: Config) { (contentType != null && contentType.indexOf('javascript') === -1) ) { // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { + navigator.serviceWorker.ready.then((registration) => { registration.unregister().then(() => { window.location.reload(); }); @@ -138,7 +135,7 @@ function checkValidServiceWorker(swUrl: string, config?: Config) { export function unregister() { if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready.then(registration => { + navigator.serviceWorker.ready.then((registration) => { registration.unregister(); }); } -- GitLab From 1dadd8a92c1520cb1a739db581f3456708bf8df0 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:14:14 +0700 Subject: [PATCH 12/88] [RED] Create unit test for Box component --- src/components/Box/index.test.tsx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/components/Box/index.test.tsx diff --git a/src/components/Box/index.test.tsx b/src/components/Box/index.test.tsx new file mode 100644 index 0000000..5e84963 --- /dev/null +++ b/src/components/Box/index.test.tsx @@ -0,0 +1,26 @@ +/** + * @format + */ + +import React from 'react'; +import Box from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + // Default axis + renderer.create(); + // For horizontal axis + renderer.create(); + // For vertical axis + renderer.create(); + + // Should wrap + renderer.create(); + + // Should exist + renderer.create(); + // Should not exist + renderer.create(); +}); -- GitLab From 686f334de7d627eb79820421cea1c5d055152dda Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:14:49 +0700 Subject: [PATCH 13/88] [GREEN] Create Box component --- src/components/Box/index.tsx | 104 +++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 src/components/Box/index.tsx diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx new file mode 100644 index 0000000..418d279 --- /dev/null +++ b/src/components/Box/index.tsx @@ -0,0 +1,104 @@ +import styled from 'styled-components'; +import React from 'react'; + +enum Axis { + Horizontal = 1, + Vertical = 2, +} + +interface BoxProps { + background?: string; + height?: string; + width?: string; + grow?: number; + shrink?: number; + axis?: Axis; + shouldWrap?: boolean; + mainAxis?: string; + crossAxis?: string; + shouldExist?: boolean; + border?: string; + borderTop?: string; + borderRight?: string; + borderBottom?: string; + borderLeft?: string; + borderRadius?: string; + margin?: string; + padding?: string; + clipPath?: string; +} + +function chooseDirection(axis: Axis): string { + switch (axis) { + case Axis.Horizontal: + return 'row'; + case Axis.Vertical: + return 'column'; + } +} + +function splitArgs(args: string): Array { + return args + .replace(/\s/g, ' ') + .replace(/^\s+/, '') + .replace(/\s+$/, '') + .split(' '); +} + +const StyledBox = styled.div` + position: relative; + box-sizing: border-box; + display: flex; + background: ${(props: BoxProps) => props.background || 'transparent'}; + height: ${(props: BoxProps) => { + if (props.shouldExist === undefined || props.shouldExist) { + return props.height || 'auto'; + } + return 0; + }}; + width: ${(props: BoxProps) => { + if (props.shouldExist === undefined || props.shouldExist) { + return props.width || 'auto'; + } + return 0; + }}; + flex-grow: ${(props: BoxProps) => props.grow || '0'}; + flex-shrink: ${(props: BoxProps) => props.shrink || '0'}; + flex-direction: ${(props: BoxProps) => + chooseDirection(props.axis || Axis.Horizontal)}; + justify-content: ${(props: BoxProps) => props.mainAxis || 'flex-start'}; + align-items: ${(props: BoxProps) => props.crossAxis || 'flex-start'}; + flex-wrap: ${(props: BoxProps) => (props.shouldWrap ? 'wrap' : 'nowrap')}; + + margin: ${(props: BoxProps) => props.margin || '0px'}; + padding: ${(props: BoxProps) => props.padding || '0px'}; + + border: ${(props: BoxProps) => props.border || '0px'}; + border-radius: ${(props: BoxProps) => props.borderRadius || '0px'}; + border-top-width: ${(props: BoxProps) => + splitArgs(props.border || props.borderTop || '0px solid black')[0]}; + border-top-color: ${(props: BoxProps) => + splitArgs(props.border || props.borderTop || '0px solid black')[2]}; + border-right-width: ${(props: BoxProps) => + splitArgs(props.border || props.borderRight || '0px solid black')[0]}; + border-right-color: ${(props: BoxProps) => + splitArgs(props.border || props.borderRight || '0px solid black')[2]}; + border-bottom-width: ${(props: BoxProps) => + splitArgs(props.border || props.borderBottom || '0px solid black')[0]}; + border-bottom-color: ${(props: BoxProps) => + splitArgs(props.border || props.borderBottom || '0px solid black')[2]}; + border-left-width: ${(props: BoxProps) => + splitArgs(props.border || props.borderLeft || '0px solid black')[0]}; + border-left-color: ${(props: BoxProps) => + splitArgs(props.border || props.borderLeft || '0px solid black')[2]}; +`; + +interface BoxType extends BoxProps { + children?: React.ReactNode; +} + +export default function Box({ children, ...props }: BoxType) { + return {children}; +} + +Box.Axis = Axis; -- GitLab From 790d9516d0278f061339d3facff2478c26f3cfe0 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:15:14 +0700 Subject: [PATCH 14/88] [RED] Create unit test for Button component --- src/components/Button/index.test.tsx | 75 ++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/components/Button/index.test.tsx diff --git a/src/components/Button/index.test.tsx b/src/components/Button/index.test.tsx new file mode 100644 index 0000000..a7b1081 --- /dev/null +++ b/src/components/Button/index.test.tsx @@ -0,0 +1,75 @@ +/** + * @format + */ + +import React from 'react'; +import Button from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; +describe('Button tests', () => { + describe('Filled button test', () => { + it('Filled button works properly', () => { + // Default button with a proper callback function + let number = 0; + const button = renderer.create( + + ); + expect(button).toBeTruthy(); + button.root + .find((elem) => elem.props['data-test-id'] === 'button') + .props.onClick(); + expect(number).toEqual(1); + }); + + it('Prevent action for unclickable filled button', () => { + let number = 0; + const button = renderer.create( + + ); + + expect(button).toBeTruthy(); + button.root + .find((elem) => elem.props['data-test-id'] === 'button') + .props.onClick(); + expect(number).toEqual(0); + }); + }); + + describe('Outline button test', () => { + it('Outline button works properly', () => { + let number = 0; + const button = renderer.create( + + ); + expect(button).toBeTruthy(); + button.root + .find((elem) => elem.props['data-test-id'] === 'button') + .props.onClick(); + expect(number).toEqual(1); + }); + + it('Prevent action for unclickable outline button', () => { + let number = 0; + const button = renderer.create( + + ); + + expect(button).toBeTruthy(); + button.root + .find((elem) => elem.props['data-test-id'] === 'button') + .props.onClick(); + expect(number).toEqual(0); + }); + }); +}); -- GitLab From 7c6c4187734295932b84a9018af36a51d1c2a9d3 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:15:31 +0700 Subject: [PATCH 15/88] [GREEN] Create Button component --- src/components/Button/index.tsx | 113 ++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 src/components/Button/index.tsx diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx new file mode 100644 index 0000000..43e5f78 --- /dev/null +++ b/src/components/Button/index.tsx @@ -0,0 +1,113 @@ +import React, { useContext } from 'react'; +import styled, { ThemeContext } from 'styled-components'; + +import { Text } from 'components'; + +interface ParentProps { + width?: string; +} + +interface StyledButtonProps extends ParentProps { + background: string; + borderWidth?: string; + borderColor?: string; + theme: ThemeProps; +} + +const StyledButton = styled.button` + cursor: pointer; + box-sizing: border-box; + justify-content: center; + align-items: center; + padding: 8px 36px; + height: auto; + width: auto; + flex: 1 0 auto; + width: ${(props: StyledButtonProps) => props.width || 'auto'}; + background: ${(props: StyledButtonProps) => props.background}; + border-width: ${(props: StyledButtonProps) => props.borderWidth || '0px'}; + border-color: ${(props: StyledButtonProps) => + props.borderColor || 'transparent'}; + border-radius: 3px; +`; + +enum ButtonType { + Filled = 1, + Outline = 2, +} + +interface ButtonProps extends ParentProps { + type?: ButtonType; + children: string; + clickable?: boolean; + scale?: number; + isBold?: boolean; + onClick?: () => void; +} + +const DEFAULT_MAIN_COLOR = '#42c41d'; +const DEFAULT_DISABLE_COLOR = '#646663'; +const DEFAULT_TEXT_COLOR = '#9d9e9d'; + +const DEFAULT_THEME = { + colors: { + green: DEFAULT_MAIN_COLOR, + lightGray: DEFAULT_DISABLE_COLOR, + almostWhite: DEFAULT_TEXT_COLOR, + black: DEFAULT_MAIN_COLOR, + mediumGray: DEFAULT_DISABLE_COLOR, + }, +}; + +function Button({ + type = ButtonType.Filled, + children, + clickable = true, + isBold = true, + width, + onClick = () => {}, +}: ButtonProps) { + const { colors } = useContext(ThemeContext) || DEFAULT_THEME; + + if (type === ButtonType.Filled) { + return ( + {}} + width={width} + background={clickable ? colors.green : colors.lightGray} + > + + {children} + + + ); + } else { + return ( + {}} + width={width} + background="transparent" + borderWidth="0.8px" + borderColor={clickable ? colors.black : colors.mediumGray} + > + + {children} + + + ); + } +} + +Button.Type = ButtonType; + +export default Button; -- GitLab From dfabe9306000da2bc95a482a3d6315d5de2c97f3 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:16:15 +0700 Subject: [PATCH 16/88] [RED] Create unit test for Field component --- src/components/Field/index.test.tsx | 122 ++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 src/components/Field/index.test.tsx diff --git a/src/components/Field/index.test.tsx b/src/components/Field/index.test.tsx new file mode 100644 index 0000000..af677ba --- /dev/null +++ b/src/components/Field/index.test.tsx @@ -0,0 +1,122 @@ +/** + * @format + */ + +import React from 'react'; +import Field from '.'; + +// Note: test renderer must be required after react-native. +import renderer, { act } from 'react-test-renderer'; + +describe('Field tests', () => { + it('Text field works perfectly', () => { + // For text type + let value = ''; + const field = renderer.create( + (value = newValue)} + /> + ); + expect(field).toBeTruthy(); + const input = field.root.find( + (elem) => elem.props['data-test-id'] === 'input' + ); + const VALUE = 'This is a test'; + + let numberIteration = 1; + const tolerance = 100; + while (value !== VALUE && numberIteration <= tolerance) { + act(() => { + input.props.onChange({ + target: { + value: VALUE, + }, + }); + }); + numberIteration++; + } + + expect(value).toEqual(VALUE); + }); + + it('Textarea field works perfectly', () => { + // For textarea + let value = ''; + const field = renderer.create( + { + value = newValue; + }} + /> + ); + expect(field).toBeTruthy(); + const input = field.root.find( + (elem) => elem.props['data-test-id'] === 'input' + ); + const VALUE = 'This is a test'; + + let numberIteration = 1; + const tolerance = 100; + while (value !== VALUE && numberIteration <= tolerance) { + act(() => { + input.props.onChange({ + target: { + value: VALUE, + }, + }); + }); + numberIteration++; + } + expect(value).toEqual(VALUE); + }); + + it('Dropdown field works perfectly', () => { + // For dropdown + const VALUES = [ + { label: 'Label 1', value: 'Value 1' }, + { label: 'Label 2', value: 'Value 2' }, + { label: 'Label 3', value: 'Value 3' }, + ]; + let value = ''; + const field = renderer.create( + (value = newValue)} + /> + ); + expect(field).toBeTruthy(); + const input = field.root.find( + (elem) => elem.props['data-test-id'] === 'input' + ); + let numberIteration = 1; + const tolerance = 100; + while (value !== VALUES[1].value && numberIteration <= tolerance) { + act(() => { + input.props.onChange({ + target: { + value: VALUES[1].value, + }, + }); + }); + numberIteration++; + } + expect(value).toEqual(VALUES[1].value); + }); + + it('Default Field renders properly', () => { + const field = renderer.create(); + expect(field).toBeTruthy(); + }); +}); -- GitLab From 6aab1a0c2d82186708278d8713ecb380a5daea38 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:16:50 +0700 Subject: [PATCH 17/88] [GREEN] Create Field component --- src/components/Field/index.tsx | 135 +++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 src/components/Field/index.tsx diff --git a/src/components/Field/index.tsx b/src/components/Field/index.tsx new file mode 100644 index 0000000..eee803d --- /dev/null +++ b/src/components/Field/index.tsx @@ -0,0 +1,135 @@ +import React, { useContext, useState, useEffect } from 'react'; +import styled, { ThemeContext } from 'styled-components'; +import { DropDownList } from '@progress/kendo-react-dropdowns'; + +import { Box, Text as TextComponent, Gap } from 'components'; + +interface StyledFieldProps { + height?: string; + theme: ThemeProps; +} + +const StyledField = styled.input` + border: none; + font-family: Dosis; + font-size: 16px; + width: 100%; + height: ${(props: StyledFieldProps) => props.height || 'auto'}; + background: transparent; +`; + +interface UnderlineProps { + theme: ThemeProps; +} + +enum Type { + Text = 1, + TextArea = 2, + Dropdown = 3, +} + +const DEFAULT_THEME = { + colors: { + black: 'black', + red: 'red', + }, +}; + +interface FieldProps { + type?: Type; + value?: string; + values?: Array<{ label: string; value: any }>; + name: string; + placeholder?: string; + information?: string; + isRequired?: boolean; + updateValue?: (value: string) => void; + shouldSecure?: boolean; + editable?: boolean; +} + +function Field({ + type = Type.Text, + name, + value = '', + shouldSecure = false, + editable = true, + values = [], + placeholder = 'Type something...', + information = '', + isRequired = false, + updateValue = () => {}, +}: FieldProps) { + const { colors } = useContext(ThemeContext) || DEFAULT_THEME; + const [innerValue, setInnerValue] = useState(value); + + useEffect(() => { + updateValue(innerValue); + }, [innerValue]); + + useEffect(() => { + setInnerValue(value); + }, [value]); + + useEffect(() => { + if (values && values.length > 0 && type === Type.Dropdown) { + setInnerValue(values[0].value); + } + }, []); + + return ( + + + {name} + {isRequired ? ( + + * + + ) : ( + <> + )} + + + {type === Type.Dropdown ? ( + setInnerValue(e.target.value)} + /> + ) : ( + setInnerValue(e.target.value)} + height="40px" + placeholder={placeholder} + /> + )} + + + + + + {information} + + + + ); +} + +Field.Type = Type; +export default Field; -- GitLab From 218d442edf6d8d55f3774f4d9a9a6143f1b39425 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:17:14 +0700 Subject: [PATCH 18/88] [RED] Create unit test for Gap component --- src/components/Gap/index.test.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/components/Gap/index.test.tsx diff --git a/src/components/Gap/index.test.tsx b/src/components/Gap/index.test.tsx new file mode 100644 index 0000000..1adfd4c --- /dev/null +++ b/src/components/Gap/index.test.tsx @@ -0,0 +1,17 @@ +/** + * @format + */ + +import React from 'react'; +import Gap from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + // For horizontal axis + renderer.create(); + + // For vertical axis + renderer.create(); +}); -- GitLab From 874b2dbc758cf67512c432f9b4344113a95b61ef Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:17:35 +0700 Subject: [PATCH 19/88] [GREEN] Create Gap component --- src/components/Gap/index.tsx | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/components/Gap/index.tsx diff --git a/src/components/Gap/index.tsx b/src/components/Gap/index.tsx new file mode 100644 index 0000000..d3d1a10 --- /dev/null +++ b/src/components/Gap/index.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import styled from 'styled-components'; + +enum Axis { + Horizontal = 1, + Vertical = 2, +} + +interface StyledGapProps { + paddingTop: number; + paddingBottom: number; + paddingLeft: number; + paddingRight: number; +} + +function isVertical(axis: Axis) { + switch (axis) { + case Axis.Horizontal: + return false; + case Axis.Vertical: + return true; + } +} + +const StyledGap = styled.div` + position: relatve; + display: flex; + flex: 0 0 auto; + padding-top: ${(props: StyledGapProps) => props.paddingTop}px; + padding-bottom: ${(props: StyledGapProps) => props.paddingBottom}px; + padding-left: ${(props: StyledGapProps) => props.paddingLeft}px; + padding-right: ${(props: StyledGapProps) => props.paddingRight}px; +`; + +interface GapProps { + axis: Axis; + gap: number; +} + +function Gap({ axis, gap }: GapProps) { + return ( + + ); +} + +Gap.Axis = Axis; +export default Gap; -- GitLab From 80f6a2bc1a8ea124c0892d4795c9c7dc4d1f6cf6 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:18:06 +0700 Subject: [PATCH 20/88] [RED] Create unit test for Text component --- src/components/Text/index.test.tsx | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/components/Text/index.test.tsx diff --git a/src/components/Text/index.test.tsx b/src/components/Text/index.test.tsx new file mode 100644 index 0000000..567e4e2 --- /dev/null +++ b/src/components/Text/index.test.tsx @@ -0,0 +1,35 @@ +/** + * @format + */ + +import React from 'react'; +import Text from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +describe('Text renders correctly', () => { + it('Create text by type', () => { + renderer.create(Test); + + renderer.create(Test); + + renderer.create(Test); + + renderer.create(Test); + + renderer.create(Test); + }); + + it('Create text by custom font-size', () => { + renderer.create(Test); + }); + + it('Create text by optional arguments', () => { + renderer.create( + + Test + + ); + }); +}); -- GitLab From db9b1e51195800f69190d564a134808c12912810 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:18:29 +0700 Subject: [PATCH 21/88] [GREEN] Create Text component and set all components globally --- src/components/Text/index.tsx | 85 +++++++++++++++++++++++++++++++++++ src/components/index.ts | 7 +++ 2 files changed, 92 insertions(+) create mode 100644 src/components/Text/index.tsx create mode 100644 src/components/index.ts diff --git a/src/components/Text/index.tsx b/src/components/Text/index.tsx new file mode 100644 index 0000000..7f49d52 --- /dev/null +++ b/src/components/Text/index.tsx @@ -0,0 +1,85 @@ +import React, { useContext } from 'react'; +import styled, { ThemeContext } from 'styled-components'; + +interface ParentProps { + width?: string; + align?: string; + color?: string; +} + +interface StyledTextProps extends ParentProps { + fontWeight: string | number; + fontSize: string; +} + +const StyledText = styled.span` + display: inline-block; + font-family: Dosis; + font-weight: ${(props: StyledTextProps) => props.fontWeight}; + color: ${(props: StyledTextProps) => props.color || 'black'}; + text-align: ${(props: StyledTextProps) => props.align || 'left'}; + width: ${(props: StyledTextProps) => props.width || 'auto'}; + font-size: ${(props: StyledTextProps) => props.fontSize}; +`; +enum StyleType { + Smallest = 1, + Small = 2, + Medium = 3, + Large = 4, + Larger = 5, +} + +function selectStyle(type: StyleType): string { + switch (type) { + case StyleType.Smallest: + return '12px'; + case StyleType.Small: + return '14px'; + case StyleType.Medium: + return '16px'; + case StyleType.Large: + return '20px'; + case StyleType.Larger: + return '24px'; + } +} + +interface TextProps extends ParentProps { + type?: StyleType; + fontSize?: string; + isBold?: boolean; + children: string; +} + +const DEFAULT_THEME = { + colors: { + black: 'black', + }, +}; + +function Text({ + type = StyleType.Medium, + fontSize, + color, + isBold = false, + children, + width, + align, +}: TextProps) { + const { colors } = useContext(ThemeContext) || DEFAULT_THEME; + return ( + + {children} + + ); +} + +Text.StyleType = StyleType; + +export default Text; diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 0000000..a4a6d47 --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,7 @@ +import Box from './Box'; +import Button from './Button'; +import Text from './Text'; +import Gap from './Gap'; +import Field from './Field'; + +export { Box, Button, Text, Gap, Field }; -- GitLab From ae104cc3e80d3cdf5eccfc7df646c8ab8d2735fa Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:19:48 +0700 Subject: [PATCH 22/88] [GREEN] Create AppContext and set it globally --- src/contexts/AppContext/index.ts | 5 +++++ src/contexts/index.ts | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 src/contexts/AppContext/index.ts create mode 100644 src/contexts/index.ts diff --git a/src/contexts/AppContext/index.ts b/src/contexts/AppContext/index.ts new file mode 100644 index 0000000..f0d5e65 --- /dev/null +++ b/src/contexts/AppContext/index.ts @@ -0,0 +1,5 @@ +import { createContext } from 'react'; + +const AppContext = createContext({}); + +export default AppContext; diff --git a/src/contexts/index.ts b/src/contexts/index.ts new file mode 100644 index 0000000..0c0168a --- /dev/null +++ b/src/contexts/index.ts @@ -0,0 +1,3 @@ +import AppContext from './AppContext'; + +export { AppContext }; -- GitLab From 6dec7a55c7eb7469527bde842ca8f2d301d42a9a Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:20:16 +0700 Subject: [PATCH 23/88] [RED] Change Home page test path --- src/routes/Home/index.test.tsx | 7 ------- src/scenes/Home/index.test.tsx | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 src/routes/Home/index.test.tsx create mode 100644 src/scenes/Home/index.test.tsx diff --git a/src/routes/Home/index.test.tsx b/src/routes/Home/index.test.tsx deleted file mode 100644 index 77e34cd..0000000 --- a/src/routes/Home/index.test.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react' -import { shallow } from 'enzyme' -import Home from '.' - -it("render Home component without crashing", () => { - shallow() -}) \ No newline at end of file diff --git a/src/scenes/Home/index.test.tsx b/src/scenes/Home/index.test.tsx new file mode 100644 index 0000000..86af4cf --- /dev/null +++ b/src/scenes/Home/index.test.tsx @@ -0,0 +1,7 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import Home from '.'; + +it('render Home component without crashing', () => { + shallow(); +}); -- GitLab From 0e3ef9ac1584e2bf987f7cffa1a706422da63e77 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:24:25 +0700 Subject: [PATCH 24/88] [GREEN] Change home page path and teuse Home page as debug page --- src/routes/Home/index.tsx | 9 ------- src/routes/index.tsx | 5 ---- src/scenes/Home/index.tsx | 55 +++++++++++++++++++++++++++++++++++++++ src/scenes/index.ts | 3 +++ 4 files changed, 58 insertions(+), 14 deletions(-) delete mode 100644 src/routes/Home/index.tsx delete mode 100644 src/routes/index.tsx create mode 100644 src/scenes/Home/index.tsx create mode 100644 src/scenes/index.ts diff --git a/src/routes/Home/index.tsx b/src/routes/Home/index.tsx deleted file mode 100644 index 3a647e8..0000000 --- a/src/routes/Home/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react' - -export default function Home() { - return ( -

- Hello -
- ) -} \ No newline at end of file diff --git a/src/routes/index.tsx b/src/routes/index.tsx deleted file mode 100644 index af4d40a..0000000 --- a/src/routes/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import Home from './Home' - -export { - Home, -} \ No newline at end of file diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx new file mode 100644 index 0000000..5f460f9 --- /dev/null +++ b/src/scenes/Home/index.tsx @@ -0,0 +1,55 @@ +import React from 'react'; + +import { Box, Gap, Field, Text, Button } from 'components'; + +export default function Home() { + return ( + + + + + + Hellooo + + + + + + + + + ); +} diff --git a/src/scenes/index.ts b/src/scenes/index.ts new file mode 100644 index 0000000..d213ecf --- /dev/null +++ b/src/scenes/index.ts @@ -0,0 +1,3 @@ +import Home from './Home'; + +export { Home }; -- GitLab From d643d3f208dc2409373207bbb93a479a23425f42 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:26:50 +0700 Subject: [PATCH 25/88] [CHORES] Make services and utilities visible to save --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitignore b/.gitignore index d9871e5..bcd9c9d 100644 --- a/.gitignore +++ b/.gitignore @@ -26,10 +26,6 @@ yarn-error.log* # Local Netlify folder .netlify -# Hide for a moments -src/services/* -src/helper/* - # Sonarqube .sonar/ .scannerwork/ -- GitLab From ad740242aee20a2e5566407db49b81f62e1089d6 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:27:24 +0700 Subject: [PATCH 26/88] [RED] Create unit test for useFormState --- src/helper/hooks/useFormState/index.test.tsx | 224 +++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 src/helper/hooks/useFormState/index.test.tsx diff --git a/src/helper/hooks/useFormState/index.test.tsx b/src/helper/hooks/useFormState/index.test.tsx new file mode 100644 index 0000000..d8a1f9d --- /dev/null +++ b/src/helper/hooks/useFormState/index.test.tsx @@ -0,0 +1,224 @@ +/** + * @format + */ + +import React from 'react'; +import useFormState from '.'; +import renderer, { act } from 'react-test-renderer'; + +interface HookProp { + hook: any; +} + +function HookWrapper(props: HookProp) { + const hook = props.hook ? props.hook() : undefined; + return
; +} + +describe('Basic form state tests', () => { + // Initialize the form state + const hookComponent = renderer.create( + { + return useFormState({ + normalText: { + type: 'text', + }, + textArea: { + type: 'textarea', + }, + email: { + type: 'email', + }, + customPattern: { + type: 'text', + pattern: /custom/, + }, + password: { + type: 'password', + }, + any: { + type: 'any', + }, + random: { + type: 'random', + }, + number: { + type: 'number', + }, + phone: { + type: 'phone', + }, + file: { + type: 'file', + }, + }); + }} + /> + ); + const { + 'data-hook': [form, setField], + } = hookComponent.root.findByType('div').props; + + it('Initialization value test', () => { + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + + // Ensure it must be invalid form at first phase + expect(form.isValid).toEqual(false); + expect(form.fields.normalText.isValid).toEqual(false); + expect(form.fields.email.isValid).toEqual(false); + expect(form.fields.customPattern.isValid).toEqual(false); + expect(form.fields.password.isValid).toEqual(false); + + // Ensure this form contains empty value for each field + expect(form.fields.normalText.value).toEqual(''); + expect(form.fields.email.value).toEqual(''); + expect(form.fields.customPattern.value).toEqual(''); + expect(form.fields.password.value).toEqual(''); + }); + + it('Validate text pattern', () => { + const VALUE: string = 'random'; + act(() => { + setField('normalText', VALUE); + }); + // Validate normalText field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.normalText.value).toEqual(VALUE); + expect(form.fields.normalText.isValid).toEqual(true); + }); + + it('Validate textarea pattern', () => { + const VALUE: string = 'random text.'; + act(() => { + setField('textArea', VALUE); + }); + // Validate normalText field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.textArea.value).toEqual(VALUE); + expect(form.fields.textArea.isValid).toEqual(true); + }); + + it('Validate email pattern', () => { + const VALUE: string = 'random@mail.com'; + act(() => { + setField('email', VALUE); + }); + // Validate email field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.email.value).toEqual(VALUE); + expect(form.fields.email.isValid).toEqual(true); + }); + + it('Validate custom pattern', () => { + const VALUE: string = 'custom'; + act(() => { + setField('customPattern', VALUE); + }); + // Validate customPattern field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.customPattern.value).toEqual(VALUE); + expect(form.fields.customPattern.isValid).toEqual(true); + }); + + it('Validate default password pattern', () => { + const VALUE: string = '2asdWeq1'; + act(() => { + setField('password', VALUE); + }); + // Validate password field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.password.value).toEqual(VALUE); + expect(form.fields.password.isValid).toEqual(true); + }); + + it('Validate any character pattern', () => { + const VALUE: string = 'anywhere, anytime, mylord'; + act(() => { + setField('any', VALUE); + }); + // Validate password field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.any.value).toEqual(VALUE); + expect(form.fields.any.isValid).toEqual(true); + }); + + it("Validate any character pattern when the type doesn't exist", () => { + const VALUE: string = 'anywhere, anytime, mylord'; + act(() => { + setField('random', VALUE); + }); + // Validate password field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.random.value).toEqual(VALUE); + expect(form.fields.random.isValid).toEqual(true); + }); + + it('Validate number pattern', () => { + const VALUE: string = '028182321'; + act(() => { + setField('number', VALUE); + }); + // Validate password field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.number.value).toEqual(VALUE); + expect(form.fields.number.isValid).toEqual(true); + }); + + it('Validate phone number pattern', () => { + const VALUE: string = '087292839231'; + act(() => { + setField('phone', VALUE); + }); + // Validate password field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.phone.value).toEqual(VALUE); + expect(form.fields.phone.isValid).toEqual(true); + }); + + it('Validate any characters when the type is file', () => { + const VALUE: string = '[BUFFER] 92 82 01 92'; + act(() => { + setField('file', VALUE); + }); + // Validate password field + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.fields.file.value).toEqual(VALUE); + expect(form.fields.file.isValid).toEqual(true); + }); + + it('Validate a single form after fill the form correctly', () => { + const { + 'data-hook': [form], + } = hookComponent.root.findByType('div').props; + expect(form.isValid).toEqual(true); + }); + + it("Prevent outsider breaks a system when they set new value with a wrong field name (doesn't exist)", () => { + expect(() => { + act(() => setField('noField', 'so unnecessary value')); + }).toThrow(); + }); +}); -- GitLab From e6778c492fb15229bdd5aea495ab0ca211fa63a6 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:27:45 +0700 Subject: [PATCH 27/88] [GREEN] Implement useFormState --- src/helper/hooks/useFormState/index.tsx | 151 ++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 src/helper/hooks/useFormState/index.tsx diff --git a/src/helper/hooks/useFormState/index.tsx b/src/helper/hooks/useFormState/index.tsx new file mode 100644 index 0000000..0399cd7 --- /dev/null +++ b/src/helper/hooks/useFormState/index.tsx @@ -0,0 +1,151 @@ +import { useReducer, useEffect } from 'react'; + +function selectFieldPattern(type: string, priorityPattern?: RegExp): RegExp { + if (priorityPattern) { + return priorityPattern; + } + switch (type.toUpperCase()) { + case 'ANY': + return /^.+$/; + case 'TEXT': + return /^[a-zA-Z ]+$/; + case 'TEXTAREA': + return /^[a-zA-Z\s\.]+$/; + case 'EMAIL': + return /^[\.0-9A-Za-z]+@[\.0-9A-Za-z]+$/; + case 'PASSWORD': + return /.{8,}/; + case 'NUMBER': + return /^[0-9]+$/; + case 'PHONE': + return /^[0-9]{12,14}$/; + case 'FILE': + return selectFieldPattern('ANY'); + default: + return selectFieldPattern('ANY'); + } +} + +interface BaseFieldType { + type: string; + pattern?: RegExp; +} + +interface RawFieldType extends BaseFieldType {} + +interface RealFieldType extends BaseFieldType { + isValid: boolean; + value: string; +} + +interface RealFieldsType { + [name: string]: RealFieldType; +} + +interface OutputFieldsType { + [name: string]: { + isValid: boolean; + value: string; + }; +} + +interface FormProps { + isValid: boolean; + fields: RealFieldsType; +} + +enum FormActionTypes { + Update = 1, + Validate = 2, +} + +type ActionType = + | { + type: FormActionTypes.Update; + field: { + name: string; + value: string; + }; + } + | { + type: FormActionTypes.Validate; + }; + +function validateForm(fields: RealFieldsType): boolean { + return Object.keys(fields).reduce((isValid: boolean, fieldName: string) => { + return isValid && fields[fieldName].isValid; + }, true); +} + +function formManipulator(form: FormProps, action: ActionType) { + const newForm = { ...form }; + switch (action.type) { + case FormActionTypes.Update: + if (!newForm.fields[action.field.name]) { + throw new Error("The field name doesn't exist"); + } + const type = newForm.fields[action.field.name].type; + const priorityPattern = newForm.fields[action.field.name].pattern; + + newForm.fields[action.field.name].value = action.field.value; + newForm.fields[action.field.name].isValid = selectFieldPattern( + type, + priorityPattern + ).test(action.field.value); + + newForm.isValid = validateForm(newForm.fields); + return newForm; + case FormActionTypes.Validate: + newForm.isValid = validateForm(newForm.fields); + return newForm; + } +} + +interface FieldsInObjectType { + [name: string]: RawFieldType; +} + +export default function useFormState(fields: FieldsInObjectType) { + const [form, dispatchForm] = useReducer(formManipulator, { + isValid: false, + fields: Object.keys(fields).reduce( + (oldFields: object, fieldName: string) => { + const newFields: RealFieldsType = { ...oldFields }; + const value = ''; + + newFields[fieldName] = { + ...fields[fieldName], + isValid: selectFieldPattern(fields[fieldName].type).test(value), + value, + }; + return newFields; + }, + {} + ), + }); + + // Validate a single form after validate each field + useEffect(() => { + dispatchForm({ type: FormActionTypes.Validate }); + }, []); + + // Filtering the form before showing to end-user + const returnedForm = { ...form }; + returnedForm.fields = Object.keys(returnedForm.fields).reduce( + (oldFields, fieldName) => { + const newFields: OutputFieldsType = { ...oldFields }; + newFields[fieldName] = { + value: returnedForm.fields[fieldName].value, + isValid: returnedForm.fields[fieldName].isValid, + }; + return newFields; + }, + {} + ); + + const setField = (name: string, value: string) => { + dispatchForm({ type: FormActionTypes.Update, field: { name, value } }); + }; + + return [returnedForm, setField]; +} -- GitLab From 8eac8691cd1dfdcf49cbf86af10b141813cef532 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:28:31 +0700 Subject: [PATCH 28/88] [RED] Create unit test for utilities --- src/helper/utilities/index.test.tsx | 91 +++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/helper/utilities/index.test.tsx diff --git a/src/helper/utilities/index.test.tsx b/src/helper/utilities/index.test.tsx new file mode 100644 index 0000000..a88fde4 --- /dev/null +++ b/src/helper/utilities/index.test.tsx @@ -0,0 +1,91 @@ +/** + * @format + */ + +import { createEndpoint } from '.'; + +describe('Utilities tests', () => { + describe('createEndpoint tests', () => { + const PART_1 = 'brands'; + const PART_2 = 'clothes'; + const PART_3 = 'types'; + + const endpointTemplate = createEndpoint([PART_1, PART_2, PART_3]); + it('createEndpoint works without null or undefined value', () => { + const PART_1_VALUE = 'ocean-pacific'; + const PART_2_VALUE = 'blue-shirt'; + const PART_3_VALUE = 'long-sleeve'; + const endpoint = endpointTemplate([ + PART_1_VALUE, + PART_2_VALUE, + PART_3_VALUE, + ]); + expect(endpoint).toEqual( + `/${PART_1}/${PART_1_VALUE}/${PART_2}/${PART_2_VALUE}/${PART_3}/${PART_3_VALUE}/` + ); + }); + + it('createEndpoint works with null or undefined value in the middle', () => { + const PART_1_VALUE = 'ocean-pacific'; + const PART_2_VALUE = undefined; + const PART_3_VALUE = 'long-sleeve'; + const endpoint = endpointTemplate([ + PART_1_VALUE, + PART_2_VALUE, + PART_3_VALUE, + ]); + expect(endpoint).toEqual( + `/${PART_1}/${PART_1_VALUE}/${PART_2}/${PART_3}/${PART_3_VALUE}/` + ); + }); + + it('createEndpoint works with null or undefined value at the beginning', () => { + const PART_1_VALUE = undefined; + const PART_2_VALUE = 'blue-shirt'; + const PART_3_VALUE = 'long-sleeve'; + const endpoint = endpointTemplate([ + PART_1_VALUE, + PART_2_VALUE, + PART_3_VALUE, + ]); + expect(endpoint).toEqual( + `/${PART_1}/${PART_2}/${PART_2_VALUE}/${PART_3}/${PART_3_VALUE}/` + ); + }); + + it('createEndpoint works with null or undefined value at the end', () => { + const PART_1_VALUE = 'ocean-pacific'; + const PART_2_VALUE = 'blue-shirt'; + const PART_3_VALUE = undefined; + const endpoint = endpointTemplate([ + PART_1_VALUE, + PART_2_VALUE, + PART_3_VALUE, + ]); + expect(endpoint).toEqual( + `/${PART_1}/${PART_1_VALUE}/${PART_2}/${PART_2_VALUE}/${PART_3}/` + ); + }); + + it('createEndpoint raise an error if the parts are not consistent (too less)', () => { + const PART_1_VALUE = 'ocean-pacific'; + const PART_2_VALUE = 'blue-shirt'; + expect(() => endpointTemplate([PART_1_VALUE, PART_2_VALUE])).toThrow(); + }); + + it('createEndpoint raise an error if the parts are not consistent (too many)', () => { + const PART_1_VALUE = 'ocean-pacific'; + const PART_2_VALUE = 'blue-shirt'; + const PART_3_VALUE = 'long-sleeve'; + const PART_4_VALUE = 'any'; + expect(() => + endpointTemplate([ + PART_1_VALUE, + PART_2_VALUE, + PART_3_VALUE, + PART_4_VALUE, + ]) + ).toThrow(); + }); + }); +}); -- GitLab From b47687bfca0f532ca3d7e078f79a53c772b86495 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:28:58 +0700 Subject: [PATCH 29/88] [GREEN] Add utilities --- src/helper/utilities/index.tsx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/helper/utilities/index.tsx diff --git a/src/helper/utilities/index.tsx b/src/helper/utilities/index.tsx new file mode 100644 index 0000000..e775f19 --- /dev/null +++ b/src/helper/utilities/index.tsx @@ -0,0 +1,25 @@ +function createEndpoint(parts: Array) { + // Return a function that able to create endpoint customizely + return (params: Array) => { + // Throw error if the number of parameters is not same as the number of parts + if (params.length < parts.length) { + throw new Error('Parameters are given too less'); + } else if (params.length > parts.length) { + throw new Error('Parameters are given too much'); + } + + // Create endpoint + return ( + parts.reduce((endpoint, part, index) => { + // If the current parameter is not null or undefined + if (params[index]) { + return `${endpoint}/${part}/${params[index]}`; + } + + return `${endpoint}/${part}`; + }, '') + '/' + ); + }; +} + +export { createEndpoint }; -- GitLab From a3cb6e2cb1c872ab75f2c648bfac9cbe720b7642 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:29:19 +0700 Subject: [PATCH 30/88] [CHORES] Set helper globally used --- src/helper/index.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/helper/index.ts diff --git a/src/helper/index.ts b/src/helper/index.ts new file mode 100644 index 0000000..88756f5 --- /dev/null +++ b/src/helper/index.ts @@ -0,0 +1,10 @@ +import useForm from './hooks/useFormState'; + +import { createEndpoint } from './utilities'; + +export { + // Utilities + createEndpoint, + // Hooks + useForm, +}; -- GitLab From 8f1343c4a31fb64663a959b77aaddbd2c724b5a4 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:30:56 +0700 Subject: [PATCH 31/88] [RED] Initialize unit test for useMainService --- .../hooks/useMainService/index.test.tsx | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/services/hooks/useMainService/index.test.tsx diff --git a/src/services/hooks/useMainService/index.test.tsx b/src/services/hooks/useMainService/index.test.tsx new file mode 100644 index 0000000..805128a --- /dev/null +++ b/src/services/hooks/useMainService/index.test.tsx @@ -0,0 +1,64 @@ +import axios from 'axios'; +import useMainServices from '.'; + +jest.mock('axios'); +const mockedAxios = axios as jest.Mocked; + +describe('Test API that needs token', () => { + const withAuth = useMainServices('my-secret-token'); + + describe('Authentication and User', () => { + test('Login', async () => { + const auth = { + username: 'admin', + password: 'password', + }; + + const token = 'random-token'; + + mockedAxios.request.mockImplementationOnce( + () => + new Promise((resolve) => { + resolve({ + status: 200, + data: { + token, + }, + }); + }) + ); + + const result = await withAuth.login(auth); + expect(result.status).toBe(200); + expect(result.data).toMatchObject({ token }); + }); + + test('Get current user profile', async () => { + const userProfile = { + id: 'd207657e-f0e6-4f9b-828e-af94fc654ca3', + username: 'admin', + name: 'admin', + email: 'admin@email.com', + phone_number: '14045', + area: 'Depok', + is_admin: true, + is_verified: false, + is_active: false, + }; + + mockedAxios.request.mockImplementationOnce( + () => + new Promise((resolve) => { + resolve({ + status: 200, + data: userProfile, + }); + }) + ); + + const result = await withAuth.me(); + expect(result.status).toBe(200); + expect(result.data).toMatchObject(userProfile); + }); + }); +}); -- GitLab From 97a4273377e34f4a79415bd106e79c049c89665f Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:31:17 +0700 Subject: [PATCH 32/88] [GREEN] Implement useMainService --- src/services/hooks/useMainService/index.tsx | 78 +++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/services/hooks/useMainService/index.tsx diff --git a/src/services/hooks/useMainService/index.tsx b/src/services/hooks/useMainService/index.tsx new file mode 100644 index 0000000..74451a4 --- /dev/null +++ b/src/services/hooks/useMainService/index.tsx @@ -0,0 +1,78 @@ +import { createEndpoint } from 'helper'; +import axios from 'axios'; + +const API_MAIN_URL = process.env.REACT_APP_API_MAIN_URL; + +const END_POINTS = { + ACCOUNTS: createEndpoint(['accounts']), + LOGIN: '/auth/token/', +}; + +enum Method { + GET = 'GET', + POST = 'POST', + PATCH = 'PATCH', + DELETE = 'DELETE', + PUT = 'PUT', +} + +export default function useMainService(token: string) { + // Private functions + async function fetchWithoutAuthentication( + endpoint: string, + method: Method, + body: object | undefined = undefined + ) { + return axios + .request({ + url: API_MAIN_URL + endpoint, + method, + data: body, + }) + .then((res) => { + return res; + }) + .catch((err) => err.response); + } + + async function fetchWithAuthentication( + endpoint: string, + method: Method, + body: object | undefined = undefined + ) { + return axios + .request({ + headers: { + Authorization: `Token ${token}`, + }, + url: API_MAIN_URL + endpoint, + method, + data: body, + }) + .then((res) => { + return res; + }) + .catch((err) => err.response); + } + + interface LoginFormType { + username: string; + password: string; + } + + // User + async function login(body: LoginFormType) { + return fetchWithoutAuthentication(END_POINTS.LOGIN, Method.POST, body); + } + + async function me() { + const endPoint = END_POINTS.ACCOUNTS(['me']); + return fetchWithAuthentication(endPoint, Method.GET); + } + + return { + // Authentication + login, + me, + }; +} -- GitLab From e2bfdac63a4c4ee87690e0508350de8232d1a74e Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:31:39 +0700 Subject: [PATCH 33/88] [CHORES] Set services globally used --- src/services/index.ts | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/services/index.ts diff --git a/src/services/index.ts b/src/services/index.ts new file mode 100644 index 0000000..2d597a3 --- /dev/null +++ b/src/services/index.ts @@ -0,0 +1,3 @@ +import useMainService from './hooks/useMainService'; + +export { useMainService }; -- GitLab From 2d94ff695999d05a80fae67a94820cc8fe3a0d55 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:32:53 +0700 Subject: [PATCH 34/88] [RED] Recreate unit test of App --- src/App/index.test.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/App/index.test.tsx b/src/App/index.test.tsx index 0049f92..ed32797 100644 --- a/src/App/index.test.tsx +++ b/src/App/index.test.tsx @@ -1,7 +1,7 @@ -import React from 'react' -import { shallow } from 'enzyme' -import App from '.' +import React from 'react'; +import { shallow } from 'enzyme'; +import App from '.'; -it("render App component without crashing", () => { - shallow() -}) \ No newline at end of file +it('render App component without crashing', () => { + shallow(); +}); -- GitLab From 911cf783508562a099fee3d8610cceabd7722a84 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:33:08 +0700 Subject: [PATCH 35/88] [GREEN] Redesign App component --- src/App/index.tsx | 112 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 101 insertions(+), 11 deletions(-) diff --git a/src/App/index.tsx b/src/App/index.tsx index 5cf4d21..e9e9068 100644 --- a/src/App/index.tsx +++ b/src/App/index.tsx @@ -1,16 +1,106 @@ -import React from 'react' -import { BrowserRouter as Router, Switch, Route } from 'react-router-dom' +import React, { useState, useEffect } from 'react'; +import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; +import '@progress/kendo-theme-default/dist/all.css'; +import styled, { ThemeProvider } from 'styled-components'; -import { - Home -} from 'routes' +import './style.css'; +import { AppContext } from 'contexts'; +import { Home } from 'scenes'; +import { useMainService } from 'services'; + +declare global { + interface ThemeProps { + colors: { + readonly totallyWhite: string; + readonly almostWhite: string; + readonly gray: string; + readonly mediumGray: string; + readonly lightGray: string; + readonly red: string; + readonly green: string; + readonly black: string; + }; + } + + type TokenType = string; + type SetTokenType = React.Dispatch>; + + type UserType = object; + + interface GlobalProps { + services: { + main: any; + }; + setToken: SetTokenType; + user: UserType; + isAuthenticated: boolean; + } +} + +const theme: ThemeProps = { + colors: { + totallyWhite: '#FFFFFF', + almostWhite: '#FAFAFA', + gray: '#5F5F5F', + mediumGray: '#C2C2C2', + lightGray: '#EFEFEF', + red: '#9A3838', + green: '#0DCE66', + black: '#454545', + }, +}; + +const StyledApp = styled.div` + height: 100vh; + width: 100vw; +`; export default function App() { - return ( - + const [token, setToken] = useState(''); + const [user, setUser] = useState({}); + + const mainService = useMainService(token); + const contextValue: GlobalProps = { + setToken, + user, + isAuthenticated: !!user, + services: { + main: mainService, + }, + }; + + useEffect(() => { + if (token) { + const getUser = async () => { + const response = await mainService.me(); + if (response.status === 200) { + // Token is valid + setUser(response.data); + // Todo: route to home page + } else { + // Token is not valid + setUser({}); + // Todo: Route to login page + } + }; + getUser(); + } else { + setUser({}); + // Todo: Route to login page + } + }, [token]); + + return ( + + + + - + - - ) -} \ No newline at end of file + + + + + ); +} -- GitLab From eb8f901ffa5d3df120be063eb0b4d020cf7c2aeb Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:57:56 +0700 Subject: [PATCH 36/88] [CHORES] Add crypto-js to encrypt/decrypt --- package-lock.json | 10 ++++++++++ package.json | 2 ++ 2 files changed, 12 insertions(+) diff --git a/package-lock.json b/package-lock.json index 0bf86a2..b6396d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1760,6 +1760,11 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/crypto-js": { + "version": "3.1.44", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-3.1.44.tgz", + "integrity": "sha512-WOoVHc3gv3zirPQ27BynaOUV9AvWrvPmSF/ZyAAABwb7KYn+iWrEpopW/M9gYMBfNdYHqzvu9AIggwWbt9mGYw==" + }, "@types/enzyme": { "version": "3.10.5", "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.5.tgz", @@ -4230,6 +4235,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", diff --git a/package.json b/package.json index e10ad40..abbd279 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.4.0", "@testing-library/user-event": "^7.2.1", + "@types/crypto-js": "^3.1.44", "@types/enzyme": "^3.10.5", "@types/enzyme-adapter-react-16": "^1.0.6", "@types/jest": "^24.9.1", @@ -24,6 +25,7 @@ "@types/react-router-dom": "^5.1.3", "@types/styled-components": "^5.1.0", "axios": "^0.19.2", + "crypto-js": "^4.0.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "react": "^16.12.0", -- GitLab From 0ff8dc764655a46c5a4f7939925f63495d1bd995 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:58:24 +0700 Subject: [PATCH 37/88] [RED] Create unit test of LocalStorage --- src/services/LocalStorage/index.test.tsx | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/services/LocalStorage/index.test.tsx diff --git a/src/services/LocalStorage/index.test.tsx b/src/services/LocalStorage/index.test.tsx new file mode 100644 index 0000000..490b5b9 --- /dev/null +++ b/src/services/LocalStorage/index.test.tsx @@ -0,0 +1,49 @@ +import LocalStorage from '.'; + +describe("Local storage tests", () => { + const SECRET_KEY: string = "My-super-secret-key"; + it("Should fail when there is not secret key", async () => { + await expect(LocalStorage.setItem("test", "value")).rejects.toThrow(); + await expect(LocalStorage.getItem("test")).rejects.toThrow(); + }) + + it("Should able to use after initialize the secret key", async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: string = "test"; + const value: string = "value"; + const foo = await LocalStorage.setItem(key, value); + const result = await LocalStorage.getItem(key); + expect(result).toEqual(value); + }) + + it("Should get null value if there is no value on local storage", async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: string = "key"; + const result = await LocalStorage.getItem(key); + expect(result).toEqual(null); + }) + + it("Should fail if use null key", async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: any = undefined; + const value: any = undefined; + await expect(LocalStorage.setItem(key, value)).rejects.toThrow(); + await expect(LocalStorage.getItem(key)).rejects.toThrow(); + }) + + + it("Should fail if key exist, but value is null", async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: any = "key"; + const value: any = undefined; + await expect(LocalStorage.setItem(key, value)).rejects.toThrow(); + }) +}) \ No newline at end of file -- GitLab From 95210d0095d8719f199355e291e9895c94cb9aa9 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:58:58 +0700 Subject: [PATCH 38/88] [GREEN] Implement LocalStorage --- src/services/LocalStorage/index.tsx | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/services/LocalStorage/index.tsx diff --git a/src/services/LocalStorage/index.tsx b/src/services/LocalStorage/index.tsx new file mode 100644 index 0000000..4e71057 --- /dev/null +++ b/src/services/LocalStorage/index.tsx @@ -0,0 +1,44 @@ +import CryptoJS from 'crypto-js'; + +export default class LocalStorage { + static secretKey: string; + + static async setItem(key: string | null = null, value: any = null) { + if (key === null) throw new Error('You need to set secret key first'); + if (value === null) throw new Error('Value can not be empty'); + if (!LocalStorage.secretKey) + throw new Error( + 'Need to initialize the local storage first with a private key', + ); + + const digest = CryptoJS.AES.encrypt( + JSON.stringify(value), + LocalStorage.secretKey, + ); + await localStorage.setItem(key, digest.toString()); + } + + static async getItem(key: string | null = null) { + if (key === null) throw new Error('You need to set secret key first'); + if (!LocalStorage.secretKey) + throw new Error( + 'Need to initialize the local storage first with a private key', + ); + + const cipherText: any = await localStorage.getItem(key); + if (cipherText === null || cipherText === undefined) { + return null; + } + + const JSONValue = CryptoJS.AES.decrypt( + cipherText, + LocalStorage.secretKey, + ).toString(CryptoJS.enc.Utf8); + const value = JSON.parse(JSONValue); + return value; + } + + static setSecretKey(secretKey: string) { + LocalStorage.secretKey = secretKey; + } +} -- GitLab From 3f2a17489f9f2b14eab4d7445d250a982b3a6554 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:59:16 +0700 Subject: [PATCH 39/88] [CHORES] Set LocalStorage globally --- src/services/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/index.ts b/src/services/index.ts index 2d597a3..3e9a5e7 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -1,3 +1,7 @@ import useMainService from './hooks/useMainService'; +import LocalStorage from './LocalStorage'; -export { useMainService }; +export { + useMainService, + LocalStorage, +}; -- GitLab From 53a3cd4f6bfcc2d4ad3638ee4256c9aae7cf8856 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 19:59:35 +0700 Subject: [PATCH 40/88] [GREEN] Integrate LocalStorage to the main system --- src/App/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/App/index.tsx b/src/App/index.tsx index e9e9068..bad070f 100644 --- a/src/App/index.tsx +++ b/src/App/index.tsx @@ -6,7 +6,7 @@ import styled, { ThemeProvider } from 'styled-components'; import './style.css'; import { AppContext } from 'contexts'; import { Home } from 'scenes'; -import { useMainService } from 'services'; +import { useMainService, LocalStorage } from 'services'; declare global { interface ThemeProps { @@ -90,6 +90,10 @@ export default function App() { } }, [token]); + useEffect(() => { + LocalStorage.setSecretKey("sssttt") + }, []) + return ( -- GitLab From 22d9cd7b74d2a37ea9c749a910b65adc89076cd5 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:38:16 +0700 Subject: [PATCH 41/88] [RED] Create unit test of CategoryButton --- src/components/CategoryButton/index.test.tsx | 81 ++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/components/CategoryButton/index.test.tsx diff --git a/src/components/CategoryButton/index.test.tsx b/src/components/CategoryButton/index.test.tsx new file mode 100644 index 0000000..38867f2 --- /dev/null +++ b/src/components/CategoryButton/index.test.tsx @@ -0,0 +1,81 @@ +/** + * @format + */ + +import React from 'react'; +import CategoryButton from '.'; +import renderer, {act} from 'react-test-renderer'; + +// Note: test renderer must be required after react-native. + +describe("CategoryButton tests", () => { + it('renders correctly', () => { + const options = [ + {label: 'Laki-laki', value: 1}, + {label: 'Perempuan', value: 0}, + ]; + + let value; + const inst = renderer.create( + value = val} + />, + ); + + expect(inst).toBeTruthy(); + + const buttons = inst.root.findAll(elem => elem.props["data-test-id"] === "button"); + act(() => { + buttons[0].props.onClick(); + }); + + expect(value).toBe(1); + }); + + it('should be okay if there is no onClick function', () => { + const options = [ + {label: 'Laki-laki', value: 1}, + {label: 'Perempuan', value: 0}, + ]; + const inst = renderer.create( + , + ); + + expect(inst).toBeTruthy(); + }); + + it("Should change value after set value from outside", () => { + const options = [ + {label: 'Laki-laki', value: 1}, + {label: 'Perempuan', value: 0}, + ]; + + let val; + + const inst = renderer.create( + val = newValue} + />, + ); + + expect(inst).toBeTruthy(); + + const buttons = inst.root.findAll(elem => elem.props["data-test-id"] === "button"); + + let numberIteration = 1 + const tolerance = 100 + + while(val !== 0 && numberIteration < tolerance) { + act(() => { + buttons[1].props.onClick(); + }); + numberIteration++ + } + expect(val).toBe(0); + }) +}) -- GitLab From 76485cae35152bc3756a3fe5dc8aaa254457a340 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:38:54 +0700 Subject: [PATCH 42/88] [GREEN] Create CategoryButton component --- src/components/CategoryButton/index.tsx | 93 +++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/components/CategoryButton/index.tsx diff --git a/src/components/CategoryButton/index.tsx b/src/components/CategoryButton/index.tsx new file mode 100644 index 0000000..2bbbc11 --- /dev/null +++ b/src/components/CategoryButton/index.tsx @@ -0,0 +1,93 @@ +import React, { useState, useEffect, useContext } from 'react'; +import { Box, Text } from 'components'; +import styled, { ThemeContext } from 'styled-components'; + +const Click = styled.div` + display: flex; + flex-grow: 1; + position: relative; + cursor: pointer; +` + +type LabelType = string +type ValueType = any +interface ItemType { + label: LabelType; + value: ValueType; +} + +interface CategoryButtonProps { + value?: ValueType, + values: Array, + onClick?: (value: ValueType) => void, + width?: string, +} + +const DEFAULT_THEME = { + colors: { + green: "green", + black: "black", + totallyWhite: "white", + mediumGray: "gray", + } +} + +export default function CategoryButton({ + value = "", + values = [], + onClick = () => {}, + width = "100%", +}: CategoryButtonProps) { + const { colors } = useContext(ThemeContext) || DEFAULT_THEME + const [innerValues, setInnerValues] = useState(values) + const [currentValue, setCurrentValue] = useState(value) + + useEffect(() => { + setInnerValues(values) + }, [values]) + + useEffect(() => { + setCurrentValue(value) + }, [value]) + + useEffect(() => { + onClick(currentValue) + }, [currentValue]) + + useEffect(() => { + console.log(value || innerValues[0]) + setCurrentValue(value || innerValues[0].value) + }, []) + + return ( + + {innerValues.map((item: ItemType, index: number) => { + return ( + setCurrentValue(item.value)} + > + + + {item.label} + + + + ) + })} + + ) +} \ No newline at end of file -- GitLab From d90ab8704a6ff0666372028522c71d2f56f813c7 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:39:26 +0700 Subject: [PATCH 43/88] [RED] Create unit test of Cloud component --- src/components/Cloud/index.test.tsx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/components/Cloud/index.test.tsx diff --git a/src/components/Cloud/index.test.tsx b/src/components/Cloud/index.test.tsx new file mode 100644 index 0000000..6c83c51 --- /dev/null +++ b/src/components/Cloud/index.test.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import Cloud from '.'; +import renderer from 'react-test-renderer'; + +it('should render properly', () => { + const inst = renderer.create( + , + ); + + expect(inst).toBeTruthy(); +}); -- GitLab From cd82af86cc5c6fa106cce2b3b2a01752e1369fce Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:39:46 +0700 Subject: [PATCH 44/88] [GREEN] Create Cloud component --- src/components/Cloud/index.tsx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/components/Cloud/index.tsx diff --git a/src/components/Cloud/index.tsx b/src/components/Cloud/index.tsx new file mode 100644 index 0000000..81726b8 --- /dev/null +++ b/src/components/Cloud/index.tsx @@ -0,0 +1,21 @@ +import { StyledBox } from "components"; +import styled from 'styled-components'; + +interface CloudProps { + index?: string; + top?: string; + left?: string; + bottom?: string; + right?: string; +} + +const Cloud = styled(StyledBox)` + position: absolute; + z-index: ${(props: CloudProps) => props.index}; + top: ${(props: CloudProps) => props.top}; + left: ${(props: CloudProps) => props.left}; + right: ${(props: CloudProps) => props.right}; + bottom: ${(props: CloudProps) => props.bottom}; +` + +export default Cloud; -- GitLab From ece4f60946328af851e632fa1e90e4c9967820fb Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:40:26 +0700 Subject: [PATCH 45/88] [GREEN] Add more style on Box component --- src/components/Box/index.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx index 418d279..a785448 100644 --- a/src/components/Box/index.tsx +++ b/src/components/Box/index.tsx @@ -26,6 +26,7 @@ interface BoxProps { margin?: string; padding?: string; clipPath?: string; + transform?: string; } function chooseDirection(axis: Axis): string { @@ -70,9 +71,11 @@ const StyledBox = styled.div` align-items: ${(props: BoxProps) => props.crossAxis || 'flex-start'}; flex-wrap: ${(props: BoxProps) => (props.shouldWrap ? 'wrap' : 'nowrap')}; + transform: ${(props: BoxProps) => props.transform || 'none'}; + clip-path: ${(props: BoxProps) => props.clipPath || 'none'}; margin: ${(props: BoxProps) => props.margin || '0px'}; padding: ${(props: BoxProps) => props.padding || '0px'}; - + border: ${(props: BoxProps) => props.border || '0px'}; border-radius: ${(props: BoxProps) => props.borderRadius || '0px'}; border-top-width: ${(props: BoxProps) => @@ -102,3 +105,7 @@ export default function Box({ children, ...props }: BoxType) { } Box.Axis = Axis; + +export { + StyledBox, +} \ No newline at end of file -- GitLab From e2e02a5d8b02cb8a7b3c91efce849cce32936843 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:41:02 +0700 Subject: [PATCH 46/88] [CHORES] Set CategoryButton and Cloud globally use --- src/components/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/index.ts b/src/components/index.ts index a4a6d47..f9e1eb8 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1,7 +1,9 @@ -import Box from './Box'; +import Box, { StyledBox } from './Box'; import Button from './Button'; import Text from './Text'; import Gap from './Gap'; import Field from './Field'; +import CategoryButton from './CategoryButton'; +import Cloud from './Cloud'; -export { Box, Button, Text, Gap, Field }; +export { StyledBox, Box, Button, Text, Gap, Field, CategoryButton, Cloud }; -- GitLab From 7eaff4ce8dea072e24bdce086a4c5f9c3f56a478 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:43:12 +0700 Subject: [PATCH 47/88] [GREEN] Add modal and set it globally use --- src/App/index.tsx | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/App/index.tsx b/src/App/index.tsx index bad070f..1eccaf9 100644 --- a/src/App/index.tsx +++ b/src/App/index.tsx @@ -24,7 +24,7 @@ declare global { type TokenType = string; type SetTokenType = React.Dispatch>; - + type SetModalType = React.Dispatch>; type UserType = object; interface GlobalProps { @@ -32,6 +32,7 @@ declare global { main: any; }; setToken: SetTokenType; + setModal: SetModalType; user: UserType; isAuthenticated: boolean; } @@ -55,14 +56,33 @@ const StyledApp = styled.div` width: 100vw; `; +interface SkyProps { + shouldExist?: boolean; +} + +const Sky = styled.div` + position: fixed; + opacity: ${({shouldExist = true}: SkyProps) => shouldExist? 1: 0}; + pointer-events: ${({shouldExist = true}: SkyProps) => shouldExist? "visible": "none"}; + z-index: 1; + top: 0px; + left: 0px; + height: 100vh; + width: 100vw; + background: rgba(0, 0, 0, 0.6); +` + export default function App() { const [token, setToken] = useState(''); const [user, setUser] = useState({}); + const [modal, setModal] = useState(null); + const [shouldShowModal, setShouldShowModal] = useState(false); const mainService = useMainService(token); const contextValue: GlobalProps = { setToken, user, + setModal, isAuthenticated: !!user, services: { main: mainService, @@ -90,6 +110,18 @@ export default function App() { } }, [token]); + useEffect(() => { + if (modal) { + setShouldShowModal(true) + } + }, [modal]) + + useEffect(() => { + if (!shouldShowModal) { + setModal(null) + } + }, [shouldShowModal]) + useEffect(() => { LocalStorage.setSecretKey("sssttt") }, []) @@ -98,6 +130,12 @@ export default function App() { + setShouldShowModal(false)} + > + {modal} + -- GitLab From 6d3bd26738e791416bc6331a5cf38e39ac11fd07 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Mon, 20 Apr 2020 22:43:25 +0700 Subject: [PATCH 48/88] [GREEN] Put some components to try --- src/scenes/Home/index.tsx | 43 +++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index 5f460f9..14fc831 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -1,8 +1,10 @@ -import React from 'react'; +import React, { useContext } from 'react'; -import { Box, Gap, Field, Text, Button } from 'components'; +import { Box, Gap, Field, Text, Button, CategoryButton, Cloud } from 'components'; +import { AppContext } from 'contexts'; export default function Home() { + const { setModal } = useContext(AppContext) return ( - + + ); } -- GitLab From ec183f5408b30c49c808650fe133a60a3bc093df Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 13:18:29 +0700 Subject: [PATCH 49/88] [CHORES] Explicitly define the output type of useFormState and fix the global name of it --- src/helper/hooks/useFormState/index.tsx | 13 ++++++++++--- src/helper/index.ts | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/helper/hooks/useFormState/index.tsx b/src/helper/hooks/useFormState/index.tsx index 0399cd7..641d23a 100644 --- a/src/helper/hooks/useFormState/index.tsx +++ b/src/helper/hooks/useFormState/index.tsx @@ -105,11 +105,18 @@ interface FieldsInObjectType { [name: string]: RawFieldType; } -export default function useFormState(fields: FieldsInObjectType) { +interface OutputFormType { + isValid: boolean; + fields: OutputFieldsType; +} + +type OutputSetterType = (name: string, value: string) => void + +export default function useFormState(fields: FieldsInObjectType): [OutputFormType, OutputSetterType] { const [form, dispatchForm] = useReducer(formManipulator, { isValid: false, fields: Object.keys(fields).reduce( - (oldFields: object, fieldName: string) => { + (oldFields: RealFieldsType, fieldName: string) => { const newFields: RealFieldsType = { ...oldFields }; const value = ''; @@ -146,6 +153,6 @@ export default function useFormState(fields: FieldsInObjectType) { const setField = (name: string, value: string) => { dispatchForm({ type: FormActionTypes.Update, field: { name, value } }); }; - + return [returnedForm, setField]; } diff --git a/src/helper/index.ts b/src/helper/index.ts index 88756f5..49eb6d6 100644 --- a/src/helper/index.ts +++ b/src/helper/index.ts @@ -1,4 +1,4 @@ -import useForm from './hooks/useFormState'; +import useFormState from './hooks/useFormState'; import { createEndpoint } from './utilities'; @@ -6,5 +6,5 @@ export { // Utilities createEndpoint, // Hooks - useForm, + useFormState, }; -- GitLab From d88e8bc91b00eb99e83a7604c56a5bf12442d052 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 13:18:56 +0700 Subject: [PATCH 50/88] [CHORES] Remove debug command --- src/components/CategoryButton/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/CategoryButton/index.tsx b/src/components/CategoryButton/index.tsx index 2bbbc11..34ce8f5 100644 --- a/src/components/CategoryButton/index.tsx +++ b/src/components/CategoryButton/index.tsx @@ -55,7 +55,6 @@ export default function CategoryButton({ }, [currentValue]) useEffect(() => { - console.log(value || innerValues[0]) setCurrentValue(value || innerValues[0].value) }, []) -- GitLab From bcbcf15ca10b9aa656bf4a5c01a9e437c1307513 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 13:19:28 +0700 Subject: [PATCH 51/88] [GREEN] Test useFormState on Home page --- src/scenes/Home/index.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index 14fc831..0df73ee 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -2,9 +2,18 @@ import React, { useContext } from 'react'; import { Box, Gap, Field, Text, Button, CategoryButton, Cloud } from 'components'; import { AppContext } from 'contexts'; +import { useFormState } from 'helper'; + +const formData = { + title: { + type: "text", + } +} export default function Home() { const { setModal } = useContext(AppContext) + const [form, setField] = useFormState(formData) + return ( setField("title", value)} /> Date: Tue, 21 Apr 2020 18:33:31 +0700 Subject: [PATCH 52/88] [CHORES] Add icons for Table component --- public/assets/icons/right-paging.svg | 3 +++ public/assets/icons/search.svg | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 public/assets/icons/right-paging.svg create mode 100644 public/assets/icons/search.svg diff --git a/public/assets/icons/right-paging.svg b/public/assets/icons/right-paging.svg new file mode 100644 index 0000000..3c107bb --- /dev/null +++ b/public/assets/icons/right-paging.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/icons/search.svg b/public/assets/icons/search.svg new file mode 100644 index 0000000..e638e30 --- /dev/null +++ b/public/assets/icons/search.svg @@ -0,0 +1,3 @@ + + + -- GitLab From bfc67a59ae49bb89f7fd26bf115ac40938f74f68 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:34:32 +0700 Subject: [PATCH 53/88] [GREEN] Add more style on Box component --- src/components/Box/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx index a785448..3d25a87 100644 --- a/src/components/Box/index.tsx +++ b/src/components/Box/index.tsx @@ -16,6 +16,7 @@ interface BoxProps { shouldWrap?: boolean; mainAxis?: string; crossAxis?: string; + align?: string; shouldExist?: boolean; border?: string; borderTop?: string; @@ -69,13 +70,14 @@ const StyledBox = styled.div` chooseDirection(props.axis || Axis.Horizontal)}; justify-content: ${(props: BoxProps) => props.mainAxis || 'flex-start'}; align-items: ${(props: BoxProps) => props.crossAxis || 'flex-start'}; + align-self: ${(props: BoxProps) => props.align || 'flex-start'}; flex-wrap: ${(props: BoxProps) => (props.shouldWrap ? 'wrap' : 'nowrap')}; transform: ${(props: BoxProps) => props.transform || 'none'}; clip-path: ${(props: BoxProps) => props.clipPath || 'none'}; margin: ${(props: BoxProps) => props.margin || '0px'}; padding: ${(props: BoxProps) => props.padding || '0px'}; - + border: ${(props: BoxProps) => props.border || '0px'}; border-radius: ${(props: BoxProps) => props.borderRadius || '0px'}; border-top-width: ${(props: BoxProps) => @@ -106,6 +108,4 @@ export default function Box({ children, ...props }: BoxType) { Box.Axis = Axis; -export { - StyledBox, -} \ No newline at end of file +export { StyledBox }; -- GitLab From bb47ef4e831d42ea6b0cec5eda0ac764a1352b2c Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:36:59 +0700 Subject: [PATCH 54/88] [REFACTOR] Formatting codes --- src/components/CategoryButton/index.test.tsx | 77 +++++----- src/components/CategoryButton/index.tsx | 147 ++++++++++--------- src/components/Cloud/index.test.tsx | 12 +- src/components/Cloud/index.tsx | 26 ++-- src/components/index.ts | 13 +- src/services/LocalStorage/index.test.tsx | 93 ++++++------ src/services/LocalStorage/index.tsx | 8 +- src/services/index.ts | 5 +- 8 files changed, 191 insertions(+), 190 deletions(-) diff --git a/src/components/CategoryButton/index.test.tsx b/src/components/CategoryButton/index.test.tsx index 38867f2..1541986 100644 --- a/src/components/CategoryButton/index.test.tsx +++ b/src/components/CategoryButton/index.test.tsx @@ -4,78 +4,75 @@ import React from 'react'; import CategoryButton from '.'; -import renderer, {act} from 'react-test-renderer'; +import renderer, { act } from 'react-test-renderer'; // Note: test renderer must be required after react-native. -describe("CategoryButton tests", () => { +describe('CategoryButton tests', () => { it('renders correctly', () => { const options = [ - {label: 'Laki-laki', value: 1}, - {label: 'Perempuan', value: 0}, + { label: 'Laki-laki', value: 1 }, + { label: 'Perempuan', value: 0 }, ]; - - let value; + + let value; const inst = renderer.create( - value = val} - />, + (value = val)} /> ); - + expect(inst).toBeTruthy(); - - const buttons = inst.root.findAll(elem => elem.props["data-test-id"] === "button"); + + const buttons = inst.root.findAll( + (elem) => elem.props['data-test-id'] === 'button' + ); act(() => { buttons[0].props.onClick(); }); - + expect(value).toBe(1); }); it('should be okay if there is no onClick function', () => { const options = [ - {label: 'Laki-laki', value: 1}, - {label: 'Perempuan', value: 0}, + { label: 'Laki-laki', value: 1 }, + { label: 'Perempuan', value: 0 }, ]; - const inst = renderer.create( - , - ); - + const inst = renderer.create(); + expect(inst).toBeTruthy(); }); - it("Should change value after set value from outside", () => { + it('Should change value after set value from outside', () => { const options = [ - {label: 'Laki-laki', value: 1}, - {label: 'Perempuan', value: 0}, + { label: 'Laki-laki', value: 1 }, + { label: 'Perempuan', value: 0 }, ]; - + let val; - + const inst = renderer.create( val = newValue} - />, + onClick={(newValue) => (val = newValue)} + /> ); - + expect(inst).toBeTruthy(); - - const buttons = inst.root.findAll(elem => elem.props["data-test-id"] === "button"); - - let numberIteration = 1 - const tolerance = 100 - - while(val !== 0 && numberIteration < tolerance) { + + const buttons = inst.root.findAll( + (elem) => elem.props['data-test-id'] === 'button' + ); + + let numberIteration = 1; + const tolerance = 100; + + while (val !== 0 && numberIteration < tolerance) { act(() => { buttons[1].props.onClick(); }); - numberIteration++ + numberIteration++; } expect(val).toBe(0); - }) -}) + }); +}); diff --git a/src/components/CategoryButton/index.tsx b/src/components/CategoryButton/index.tsx index 34ce8f5..f6998a9 100644 --- a/src/components/CategoryButton/index.tsx +++ b/src/components/CategoryButton/index.tsx @@ -3,90 +3,93 @@ import { Box, Text } from 'components'; import styled, { ThemeContext } from 'styled-components'; const Click = styled.div` - display: flex; - flex-grow: 1; - position: relative; - cursor: pointer; -` + display: flex; + flex-grow: 1; + position: relative; + cursor: pointer; +`; -type LabelType = string -type ValueType = any +type LabelType = string; +type ValueType = any; interface ItemType { - label: LabelType; - value: ValueType; + label: LabelType; + value: ValueType; } interface CategoryButtonProps { - value?: ValueType, - values: Array, - onClick?: (value: ValueType) => void, - width?: string, + value?: ValueType; + values: Array; + onClick?: (value: ValueType) => void; + width?: string; } const DEFAULT_THEME = { - colors: { - green: "green", - black: "black", - totallyWhite: "white", - mediumGray: "gray", - } -} + colors: { + green: 'green', + black: 'black', + totallyWhite: 'white', + mediumGray: 'gray', + }, +}; export default function CategoryButton({ - value = "", - values = [], - onClick = () => {}, - width = "100%", + value = '', + values = [], + onClick = () => {}, + width = '100%', }: CategoryButtonProps) { - const { colors } = useContext(ThemeContext) || DEFAULT_THEME - const [innerValues, setInnerValues] = useState(values) - const [currentValue, setCurrentValue] = useState(value) + const { colors } = useContext(ThemeContext) || DEFAULT_THEME; + const [innerValues, setInnerValues] = useState(values); + const [currentValue, setCurrentValue] = useState(value); + + useEffect(() => { + setInnerValues(values); + }, [values]); - useEffect(() => { - setInnerValues(values) - }, [values]) - - useEffect(() => { - setCurrentValue(value) - }, [value]) + useEffect(() => { + setCurrentValue(value); + }, [value]); - useEffect(() => { - onClick(currentValue) - }, [currentValue]) + useEffect(() => { + onClick(currentValue); + }, [currentValue]); - useEffect(() => { - setCurrentValue(value || innerValues[0].value) - }, []) + useEffect(() => { + setCurrentValue(value || innerValues[0].value); + }, []); - return ( - - {innerValues.map((item: ItemType, index: number) => { - return ( - setCurrentValue(item.value)} - > - - - {item.label} - - - - ) - })} - - ) -} \ No newline at end of file + return ( + + {innerValues.map((item: ItemType, index: number) => { + return ( + setCurrentValue(item.value)} + > + + + {item.label} + + + + ); + })} + + ); +} diff --git a/src/components/Cloud/index.test.tsx b/src/components/Cloud/index.test.tsx index 6c83c51..d8fbbf7 100644 --- a/src/components/Cloud/index.test.tsx +++ b/src/components/Cloud/index.test.tsx @@ -3,13 +3,7 @@ import Cloud from '.'; import renderer from 'react-test-renderer'; it('should render properly', () => { - const inst = renderer.create( - , - ); - - expect(inst).toBeTruthy(); + const inst = renderer.create(); + + expect(inst).toBeTruthy(); }); diff --git a/src/components/Cloud/index.tsx b/src/components/Cloud/index.tsx index 81726b8..f7147fb 100644 --- a/src/components/Cloud/index.tsx +++ b/src/components/Cloud/index.tsx @@ -1,21 +1,21 @@ -import { StyledBox } from "components"; +import { StyledBox } from 'components'; import styled from 'styled-components'; interface CloudProps { - index?: string; - top?: string; - left?: string; - bottom?: string; - right?: string; + index?: string; + top?: string; + left?: string; + bottom?: string; + right?: string; } const Cloud = styled(StyledBox)` - position: absolute; - z-index: ${(props: CloudProps) => props.index}; - top: ${(props: CloudProps) => props.top}; - left: ${(props: CloudProps) => props.left}; - right: ${(props: CloudProps) => props.right}; - bottom: ${(props: CloudProps) => props.bottom}; -` + position: absolute; + z-index: ${(props: CloudProps) => props.index}; + top: ${(props: CloudProps) => props.top}; + left: ${(props: CloudProps) => props.left}; + right: ${(props: CloudProps) => props.right}; + bottom: ${(props: CloudProps) => props.bottom}; +`; export default Cloud; diff --git a/src/components/index.ts b/src/components/index.ts index f9e1eb8..04e2c7d 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -5,5 +5,16 @@ import Gap from './Gap'; import Field from './Field'; import CategoryButton from './CategoryButton'; import Cloud from './Cloud'; +import Table from './Table'; -export { StyledBox, Box, Button, Text, Gap, Field, CategoryButton, Cloud }; +export { + StyledBox, + Box, + Button, + Text, + Gap, + Field, + CategoryButton, + Cloud, + Table, +}; diff --git a/src/services/LocalStorage/index.test.tsx b/src/services/LocalStorage/index.test.tsx index 490b5b9..8f64ce7 100644 --- a/src/services/LocalStorage/index.test.tsx +++ b/src/services/LocalStorage/index.test.tsx @@ -1,49 +1,48 @@ import LocalStorage from '.'; -describe("Local storage tests", () => { - const SECRET_KEY: string = "My-super-secret-key"; - it("Should fail when there is not secret key", async () => { - await expect(LocalStorage.setItem("test", "value")).rejects.toThrow(); - await expect(LocalStorage.getItem("test")).rejects.toThrow(); - }) - - it("Should able to use after initialize the secret key", async () => { - // Initialization - LocalStorage.setSecretKey(SECRET_KEY); - - const key: string = "test"; - const value: string = "value"; - const foo = await LocalStorage.setItem(key, value); - const result = await LocalStorage.getItem(key); - expect(result).toEqual(value); - }) - - it("Should get null value if there is no value on local storage", async () => { - // Initialization - LocalStorage.setSecretKey(SECRET_KEY); - - const key: string = "key"; - const result = await LocalStorage.getItem(key); - expect(result).toEqual(null); - }) - - it("Should fail if use null key", async () => { - // Initialization - LocalStorage.setSecretKey(SECRET_KEY); - - const key: any = undefined; - const value: any = undefined; - await expect(LocalStorage.setItem(key, value)).rejects.toThrow(); - await expect(LocalStorage.getItem(key)).rejects.toThrow(); - }) - - - it("Should fail if key exist, but value is null", async () => { - // Initialization - LocalStorage.setSecretKey(SECRET_KEY); - - const key: any = "key"; - const value: any = undefined; - await expect(LocalStorage.setItem(key, value)).rejects.toThrow(); - }) -}) \ No newline at end of file +describe('Local storage tests', () => { + const SECRET_KEY: string = 'My-super-secret-key'; + it('Should fail when there is not secret key', async () => { + await expect(LocalStorage.setItem('test', 'value')).rejects.toThrow(); + await expect(LocalStorage.getItem('test')).rejects.toThrow(); + }); + + it('Should able to use after initialize the secret key', async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: string = 'test'; + const value: string = 'value'; + const foo = await LocalStorage.setItem(key, value); + const result = await LocalStorage.getItem(key); + expect(result).toEqual(value); + }); + + it('Should get null value if there is no value on local storage', async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: string = 'key'; + const result = await LocalStorage.getItem(key); + expect(result).toEqual(null); + }); + + it('Should fail if use null key', async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: any = undefined; + const value: any = undefined; + await expect(LocalStorage.setItem(key, value)).rejects.toThrow(); + await expect(LocalStorage.getItem(key)).rejects.toThrow(); + }); + + it('Should fail if key exist, but value is null', async () => { + // Initialization + LocalStorage.setSecretKey(SECRET_KEY); + + const key: any = 'key'; + const value: any = undefined; + await expect(LocalStorage.setItem(key, value)).rejects.toThrow(); + }); +}); diff --git a/src/services/LocalStorage/index.tsx b/src/services/LocalStorage/index.tsx index 4e71057..6f7ecd4 100644 --- a/src/services/LocalStorage/index.tsx +++ b/src/services/LocalStorage/index.tsx @@ -8,12 +8,12 @@ export default class LocalStorage { if (value === null) throw new Error('Value can not be empty'); if (!LocalStorage.secretKey) throw new Error( - 'Need to initialize the local storage first with a private key', + 'Need to initialize the local storage first with a private key' ); const digest = CryptoJS.AES.encrypt( JSON.stringify(value), - LocalStorage.secretKey, + LocalStorage.secretKey ); await localStorage.setItem(key, digest.toString()); } @@ -22,7 +22,7 @@ export default class LocalStorage { if (key === null) throw new Error('You need to set secret key first'); if (!LocalStorage.secretKey) throw new Error( - 'Need to initialize the local storage first with a private key', + 'Need to initialize the local storage first with a private key' ); const cipherText: any = await localStorage.getItem(key); @@ -32,7 +32,7 @@ export default class LocalStorage { const JSONValue = CryptoJS.AES.decrypt( cipherText, - LocalStorage.secretKey, + LocalStorage.secretKey ).toString(CryptoJS.enc.Utf8); const value = JSON.parse(JSONValue); return value; diff --git a/src/services/index.ts b/src/services/index.ts index 3e9a5e7..131ac3a 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -1,7 +1,4 @@ import useMainService from './hooks/useMainService'; import LocalStorage from './LocalStorage'; -export { - useMainService, - LocalStorage, -}; +export { useMainService, LocalStorage }; -- GitLab From 508f06a15b444745da97818dff999daa726847e0 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:37:42 +0700 Subject: [PATCH 55/88] [GREEN] Change pattern for type 'any' on useFormState --- src/helper/hooks/useFormState/index.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/helper/hooks/useFormState/index.tsx b/src/helper/hooks/useFormState/index.tsx index 641d23a..b06662e 100644 --- a/src/helper/hooks/useFormState/index.tsx +++ b/src/helper/hooks/useFormState/index.tsx @@ -6,7 +6,7 @@ function selectFieldPattern(type: string, priorityPattern?: RegExp): RegExp { } switch (type.toUpperCase()) { case 'ANY': - return /^.+$/; + return /^.*$/; case 'TEXT': return /^[a-zA-Z ]+$/; case 'TEXTAREA': @@ -110,9 +110,11 @@ interface OutputFormType { fields: OutputFieldsType; } -type OutputSetterType = (name: string, value: string) => void +type OutputSetterType = (name: string, value: string) => void; -export default function useFormState(fields: FieldsInObjectType): [OutputFormType, OutputSetterType] { +export default function useFormState( + fields: FieldsInObjectType +): [OutputFormType, OutputSetterType] { const [form, dispatchForm] = useReducer(formManipulator, { isValid: false, fields: Object.keys(fields).reduce( @@ -153,6 +155,6 @@ export default function useFormState(fields: FieldsInObjectType): [OutputFormTyp const setField = (name: string, value: string) => { dispatchForm({ type: FormActionTypes.Update, field: { name, value } }); }; - + return [returnedForm, setField]; } -- GitLab From 7ee129a4fdebf945c8634719381707ed858a2914 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:39:03 +0700 Subject: [PATCH 56/88] [GREEN] Reset flex-grow and flex-shrink, and set default width to 'auto' on Button --- src/components/Button/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx index 43e5f78..ecdf4bb 100644 --- a/src/components/Button/index.tsx +++ b/src/components/Button/index.tsx @@ -22,7 +22,6 @@ const StyledButton = styled.button` padding: 8px 36px; height: auto; width: auto; - flex: 1 0 auto; width: ${(props: StyledButtonProps) => props.width || 'auto'}; background: ${(props: StyledButtonProps) => props.background}; border-width: ${(props: StyledButtonProps) => props.borderWidth || '0px'}; @@ -64,7 +63,7 @@ function Button({ children, clickable = true, isBold = true, - width, + width = 'auto', onClick = () => {}, }: ButtonProps) { const { colors } = useContext(ThemeContext) || DEFAULT_THEME; -- GitLab From 48fed2f17828fa896e79541bc4296c4ff5ed02a3 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:39:38 +0700 Subject: [PATCH 57/88] [RED] Create unit test of Table component --- src/components/Table/index.test.tsx | 272 ++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 src/components/Table/index.test.tsx diff --git a/src/components/Table/index.test.tsx b/src/components/Table/index.test.tsx new file mode 100644 index 0000000..49f22c0 --- /dev/null +++ b/src/components/Table/index.test.tsx @@ -0,0 +1,272 @@ +/** + * @format + */ + +import React from 'react'; +import Table from '.'; + +// Note: test renderer must be required after react-native. +import renderer, { act } from 'react-test-renderer'; + +describe('Table tests', () => { + const createTable = (values) => { + let table + act(() => { + table = renderer.create( + { + values.searchValue = searchValue + values.pageNumber = pageNumber + + return [ + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + ]; + }} + /> + ); + }) + return table + } + + it('should works perfectly with fine properties', () => { + const values = { + searchValue: "", + pageNumber: 0, + } + const table = createTable(values) + expect(table).toBeTruthy(); + }); + + it('should not works with inconsistent properties', () => { + expect(() => { + const table = renderer.create( +
+ ) + }).toThrow() + }) + + it('should not be able to go previous page when already on first page', () => { + const values = { + searchValue: "", + pageNumber: 1, + } + const table = createTable(values) + + act(() => { + table.root.find(elem => elem.props["data-test-id"] === "prev-button").props.onClick() + }) + + expect(values.searchValue).toEqual("") + expect(values.pageNumber).toEqual(1) + }); + + it('should be able to go next page', () => { + const values = { + searchValue: "", + pageNumber: 1, + } + const table = createTable(values) + act(() => { + table.root.find(elem => elem.props["data-test-id"] === "next-button").props.onClick() + }) + + expect(values.searchValue).toEqual("") + expect(values.pageNumber).toEqual(2) + }); + + it('should be able to search and expect on the first page', () => { + const values = { + searchValue: "", + pageNumber: 1, + } + const table = createTable(values) + const SEARCH_VALUE = "adabakadaba" + act(() => { + table.root.find(elem => elem.props["data-test-id"] === "search-input").props.onChange({ + target: { + value: SEARCH_VALUE, + } + }) + }) + + act(() => { + table.root.find(elem => elem.props["data-test-id"] === "search-button").props.onClick() + }) + + expect(values.searchValue).toEqual(SEARCH_VALUE) + expect(values.pageNumber).toEqual(1) + }); +}); -- GitLab From fa0bb06e7bd176a1a1dc1763ed5e3525659cd224 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:39:55 +0700 Subject: [PATCH 58/88] [GREEN] Create Table component --- src/components/Table/index.tsx | 257 +++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 src/components/Table/index.tsx diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx new file mode 100644 index 0000000..4b96dc9 --- /dev/null +++ b/src/components/Table/index.tsx @@ -0,0 +1,257 @@ +import React, { useState, useEffect, useContext } from 'react'; +import styled, { ThemeContext } from 'styled-components'; + +import { Button, Box, Cloud, Text, Gap } from 'components'; + +type ValueType = string | number; + +interface TableProps { + header: Array; + data: Array>; + onChange?: (value: string, pageNumber: number) => Array>; + searchPlaceholder?: string; + maximumData?: number; +} + +interface IconProps { + height?: string; + width?: string; + cursor?: string; + origin?: string; + transform?: string; + opacity?: number; +} + +const Icon = styled.img` + cursor: ${(props: IconProps) => props.cursor || 'auto'}; + height: ${(props: IconProps) => props.height || 'auto'}; + width: ${(props: IconProps) => props.width || 'auto'}; + origin: ${(props: IconProps) => props.origin || '50% 50%'}; + transform: ${(props: IconProps) => props.transform || 'none'}; + opacity: ${(props: IconProps) => props.opacity || 1}; +`; + +interface SearchBarProps { + theme: ThemeProps; +} + +const SearchBar = styled.input` + display: flex; + flex-grow: 1; + border: none; + height: 100%; + background: ${({ theme }: SearchBarProps) => + theme?.colors?.almostWhite || 'transparent'}; + + padding: 0 0 0 44px; + font-family: Dosis; + font-weight: 400; + border-radius: 100px 3px 3px 100px; +`; + +const StyledTable = styled.table` + width: 100%; +`; + +interface RowProps { + background?: string; + theme: ThemeProps; +} + +const Row = styled.tr` + box-sizing: border-box; + height: 34px; + background: ${({ background }: RowProps) => background || 'transparent'}; + clip-path: inset(0 round 100px); +`; + +const DEFAULT_THEME = { + colors: { + mediumGray: 'gray', + black: 'black', + almostWhite: 'gray', + }, +}; + +enum PageAction { + Next = 1, + Prev = -1, +} + +export default function Table({ + header, + data, + searchPlaceholder = 'Search something...', + onChange = () => [[]], + maximumData = -1, +}: TableProps) { + const { colors } = useContext(ThemeContext) || DEFAULT_THEME; + const [innerData, setInnerData] = useState(data); + const [previousDataTotal, setPreviousDataTotal] = useState(0); + const [pageNumber, setPageNumber] = useState(1); + const [searchValue, setSearchValue] = useState(''); + + const changePage = async (action: PageAction) => { + let sign: number = 0; + switch (action) { + case PageAction.Next: + sign = 1; + break; + case PageAction.Prev: + sign = -1; + break; + } + const newPageNumber = pageNumber + sign; + if ( + maximumData > 0 && + previousDataTotal + ((1 + sign) / 2) * innerData.length >= maximumData + ) + return; + + const newData: Array> = await onChange( + searchValue, + newPageNumber + ); + + if (newData.length === 0 || newData[0].length === 0) return; + setPageNumber(newPageNumber); + setPreviousDataTotal(previousDataTotal + sign * innerData.length); + setInnerData([...newData]); + }; + + const [couldGoBack, couldGoNext] = [ + pageNumber > 1, + maximumData <= 0 || previousDataTotal + innerData.length < maximumData, + ]; + + useEffect(() => { + setInnerData(data); + }, [JSON.stringify(data)]); + + if (header.length !== innerData[0].length) { + throw new Error('The shape of Header and data are not consistent'); + } + + return ( + + + + + + + setSearchValue(e.target.value.toString())} + /> + + + + + + + + + {header.map((head: string, index: number) => { + return ( + + ); + })} + + + + {innerData.map((row: Array, index: number) => { + return ( + + {row.map((value: ValueType, index: number) => { + return ( + + ); + })} + + ); + })} + + + + + + + {`${previousDataTotal + innerData.length}${ + maximumData > 0 ? ` dari ${maximumData}` : '' + }`} + + + changePage(PageAction.Prev) : () => {}} + src="/assets/icons/right-paging.svg" + origin="50% 50%" + height="16px" + opacity={couldGoBack ? 1 : 0.5} + transform="rotateZ(180deg)" + /> + + {`${pageNumber}`} + + changePage(PageAction.Next) : () => {}} + src="/assets/icons/right-paging.svg" + height="16px" + opacity={couldGoNext ? 1 : 0.5} + /> + + + + ); +} -- GitLab From 61d3871a75b2e53bed7ccf04e8c0d5b1f628671c Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:40:35 +0700 Subject: [PATCH 59/88] [REFACTOR] Format codes on App component --- src/App/index.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/App/index.tsx b/src/App/index.tsx index 1eccaf9..bcc4b73 100644 --- a/src/App/index.tsx +++ b/src/App/index.tsx @@ -62,15 +62,16 @@ interface SkyProps { const Sky = styled.div` position: fixed; - opacity: ${({shouldExist = true}: SkyProps) => shouldExist? 1: 0}; - pointer-events: ${({shouldExist = true}: SkyProps) => shouldExist? "visible": "none"}; + opacity: ${({ shouldExist = true }: SkyProps) => (shouldExist ? 1 : 0)}; + pointer-events: ${({ shouldExist = true }: SkyProps) => + shouldExist ? 'visible' : 'none'}; z-index: 1; top: 0px; left: 0px; height: 100vh; width: 100vw; background: rgba(0, 0, 0, 0.6); -` +`; export default function App() { const [token, setToken] = useState(''); @@ -112,19 +113,19 @@ export default function App() { useEffect(() => { if (modal) { - setShouldShowModal(true) + setShouldShowModal(true); } - }, [modal]) + }, [modal]); useEffect(() => { if (!shouldShowModal) { - setModal(null) + setModal(null); } - }, [shouldShowModal]) + }, [shouldShowModal]); useEffect(() => { - LocalStorage.setSecretKey("sssttt") - }, []) + LocalStorage.setSecretKey('sssttt'); + }, []); return ( -- GitLab From a958f6c0de1bf1d7ff3abc27d05a54b7d570a3ef Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 18:40:53 +0700 Subject: [PATCH 60/88] [GREEN] Put Table component on Home page --- src/scenes/Home/index.tsx | 211 +++++++++++++++++++++++++++++++++++--- 1 file changed, 199 insertions(+), 12 deletions(-) diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index 0df73ee..d9b6ec7 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -1,19 +1,28 @@ import React, { useContext } from 'react'; -import { Box, Gap, Field, Text, Button, CategoryButton, Cloud } from 'components'; +import { + Box, + Gap, + Field, + Text, + Button, + CategoryButton, + Cloud, + Table, +} from 'components'; import { AppContext } from 'contexts'; import { useFormState } from 'helper'; const formData = { title: { - type: "text", - } -} + type: 'any', + }, +}; export default function Home() { - const { setModal } = useContext(AppContext) - const [form, setField] = useFormState(formData) - + const { setModal } = useContext(AppContext); + const [form, setField] = useFormState(formData); + return ( setField("title", value)} + updateValue={(value) => setField('title', value)} /> WHATSUPPP - ) + ); }} > Show Modal +
+ + + + + {head} + + + +
+ + {value.toString()} + +
{ + console.log(searchValue, pageNumber); + return [ + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + ]; + }} + /> -- GitLab From 7ac948911501016574e3832655caca9a9b47c40a Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 21:54:17 +0700 Subject: [PATCH 61/88] [GREEN] Able to set onClick on Box component --- src/components/Box/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx index 3d25a87..4c0f8fd 100644 --- a/src/components/Box/index.tsx +++ b/src/components/Box/index.tsx @@ -100,6 +100,7 @@ const StyledBox = styled.div` interface BoxType extends BoxProps { children?: React.ReactNode; + onClick?: () => void; } export default function Box({ children, ...props }: BoxType) { -- GitLab From db32c659432360fdf158fa22df9ec303a57cf656 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 21:56:10 +0700 Subject: [PATCH 62/88] [CHORES] Add view icon --- public/assets/icons/zoom.svg | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 public/assets/icons/zoom.svg diff --git a/public/assets/icons/zoom.svg b/public/assets/icons/zoom.svg new file mode 100644 index 0000000..c9d4a59 --- /dev/null +++ b/public/assets/icons/zoom.svg @@ -0,0 +1,3 @@ + + + -- GitLab From bfb92bf5a47ef86c0accd1f788e18e69a01fa77d Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 21:56:50 +0700 Subject: [PATCH 63/88] [GREEN] Able to view row or do action to row on Table component --- src/components/Table/index.tsx | 45 +++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx index 4b96dc9..223c1ba 100644 --- a/src/components/Table/index.tsx +++ b/src/components/Table/index.tsx @@ -11,8 +11,13 @@ interface TableProps { onChange?: (value: string, pageNumber: number) => Array>; searchPlaceholder?: string; maximumData?: number; + rowOnClick?: (row: Array) => void } +const Click = styled.div` + cursor: pointer; +` + interface IconProps { height?: string; width?: string; @@ -50,6 +55,7 @@ const SearchBar = styled.input` `; const StyledTable = styled.table` + border-collapse: collapse; width: 100%; `; @@ -65,6 +71,10 @@ const Row = styled.tr` clip-path: inset(0 round 100px); `; +const TableHeader = styled.th` + padding: 0 2px; +` + const DEFAULT_THEME = { colors: { mediumGray: 'gray', @@ -84,6 +94,7 @@ export default function Table({ searchPlaceholder = 'Search something...', onChange = () => [[]], maximumData = -1, + rowOnClick, }: TableProps) { const { colors } = useContext(ThemeContext) || DEFAULT_THEME; const [innerData, setInnerData] = useState(data); @@ -128,7 +139,7 @@ export default function Table({ setInnerData(data); }, [JSON.stringify(data)]); - if (header.length !== innerData[0].length) { + if (header.length > innerData[0].length) { throw new Error('The shape of Header and data are not consistent'); } @@ -167,7 +178,7 @@ export default function Table({ {header.map((head: string, index: number) => { return ( - + ); })} @@ -202,7 +213,7 @@ export default function Table({ index % 2 === 0 ? 'transparent' : colors.almostWhite } > - {row.map((value: ValueType, index: number) => { + {row.filter((_, index) => index < header.length).map((value: ValueType, index: number) => { return ( + ) : <>} ); })} -- GitLab From 6d2f745d0a5b4d16e15f4cf0c181dcf99f70bb1f Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 21:57:28 +0700 Subject: [PATCH 64/88] [GREEN] Test table with row action on Home page --- src/scenes/Home/index.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index d9b6ec7..2b9617e 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -101,6 +101,9 @@ export default function Home() { 'Lokasi Cabang', 'Jumlah Aktivitas', ]} + rowOnClick={(data) => { + console.log(data) + }} maximumData={30} data={[ [ @@ -110,6 +113,7 @@ export default function Home() { '08128237232', 'Jl. Bunga 3 Lestari', 14, + "asjd89asjdas9" ], [ 'Muhammad Rasyid', @@ -185,7 +189,6 @@ export default function Home() { ], ]} onChange={(searchValue, pageNumber) => { - console.log(searchValue, pageNumber); return [ [ 'Muhammad Rasyid', -- GitLab From 84f7d6c7a71020ddded27de3121f5b44f5265250 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 22:27:19 +0700 Subject: [PATCH 65/88] [RED] Create unit test of Image component --- src/components/Image/index.test.tsx | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/components/Image/index.test.tsx diff --git a/src/components/Image/index.test.tsx b/src/components/Image/index.test.tsx new file mode 100644 index 0000000..dac720a --- /dev/null +++ b/src/components/Image/index.test.tsx @@ -0,0 +1,44 @@ +/** + * @format + */ + +import React from 'react'; +import Image from '.'; +import { AppContext } from 'contexts'; + +// Note: test renderer must be required after react-native. +import renderer, { act } from 'react-test-renderer'; + +describe('Image tests', () => { + it('renders correctly', () => { + const image = renderer.create( + + ); + expect(image).toBeTruthy() + }); + + it('should be able to zoom in the image', () => { + let someNumber = 1 + const image = renderer.create( + someNumber += 1}}> + + + ); + expect(image).toBeTruthy() + act(() => { + image.root.find(elem => elem.props['data-test-id'] === "image").props.onClick() + }) + expect(someNumber).toEqual(2) + }); +}) + -- GitLab From 67ab7362816ee02885437b678f254dcc274b9fd3 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 22:27:42 +0700 Subject: [PATCH 66/88] [GREEN] Create Image component --- src/components/Image/index.tsx | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/components/Image/index.tsx diff --git a/src/components/Image/index.tsx b/src/components/Image/index.tsx new file mode 100644 index 0000000..7bdaf88 --- /dev/null +++ b/src/components/Image/index.tsx @@ -0,0 +1,60 @@ +import React, { useContext } from 'react' +import styled from 'styled-components'; +import { Cloud } from 'components'; +import { AppContext } from 'contexts'; + +interface StyledImageProps { + height?: string; + width?: string; + radius?: string; + fit?: string; +} + +const StyledImage = styled.img` + height: ${(props: StyledImageProps) => props.height || "auto"}; + width: ${(props: StyledImageProps) => props.width || "auto"}; + border-radius: ${(props: StyledImageProps) => props.radius || "0"}; + object-fit: ${(props: StyledImageProps) => props.fit || "cover"}; +` +interface ImageProps { + src: string; + height?: string; + width?: string; + radius?: string; + showable?: boolean; +} + +export default function Image({ + src, + height, + width, + radius, + showable = true, +}: ImageProps) { + const { setModal } = useContext(AppContext); + + return ( + { + if (setModal) { + setModal( + + ) + } + } : () => {} + } + /> + ) +} \ No newline at end of file -- GitLab From 2792d15f22182b8a50fd5c659e37a1cd174e7c0c Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 22:28:23 +0700 Subject: [PATCH 67/88] [CHORES] Make Image component be able to use globally --- src/components/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/index.ts b/src/components/index.ts index 04e2c7d..29d5013 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -6,6 +6,7 @@ import Field from './Field'; import CategoryButton from './CategoryButton'; import Cloud from './Cloud'; import Table from './Table'; +import Image from './Image'; export { StyledBox, @@ -17,4 +18,5 @@ export { CategoryButton, Cloud, Table, + Image, }; -- GitLab From 9600a6377c60369e79ed40e43ec47ef234105698 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Tue, 21 Apr 2020 22:28:37 +0700 Subject: [PATCH 68/88] [GREEN] Try Image component on Home page --- src/scenes/Home/index.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index 2b9617e..af2f680 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -9,6 +9,7 @@ import { CategoryButton, Cloud, Table, + Image, } from 'components'; import { AppContext } from 'contexts'; import { useFormState } from 'helper'; @@ -32,6 +33,13 @@ export default function Home() { margin="0 0 50px 0" padding="100px" > + -- GitLab From 5308d5c6ccadd98778ec9658efe683e9aacf197b Mon Sep 17 00:00:00 2001 From: Irwanto Date: Wed, 22 Apr 2020 16:32:52 +0700 Subject: [PATCH 69/88] [RED] Add Layout component test --- src/components/Layout/index.test.tsx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/components/Layout/index.test.tsx diff --git a/src/components/Layout/index.test.tsx b/src/components/Layout/index.test.tsx new file mode 100644 index 0000000..cea7c98 --- /dev/null +++ b/src/components/Layout/index.test.tsx @@ -0,0 +1,20 @@ +/** + * @format + */ + +import React from 'react'; +import Layout from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; +import { BrowserRouter } from 'react-router-dom'; + +it('renders correctly', () => { + // Default render + renderer.create( + + + + + ); +}); -- GitLab From f571d0df41b670e9d3b4e464cfb2363837826610 Mon Sep 17 00:00:00 2001 From: Irwanto Date: Wed, 22 Apr 2020 16:34:41 +0700 Subject: [PATCH 70/88] [GREEN] Implement Layout component --- src/components/Box/index.tsx | 8 + src/components/Layout/index.tsx | 80 ++++++ src/components/index.ts | 2 + src/scenes/Home/index.tsx | 422 ++++++++++++++++---------------- 4 files changed, 303 insertions(+), 209 deletions(-) create mode 100644 src/components/Layout/index.tsx diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx index 4c0f8fd..ee8fa15 100644 --- a/src/components/Box/index.tsx +++ b/src/components/Box/index.tsx @@ -24,6 +24,10 @@ interface BoxProps { borderBottom?: string; borderLeft?: string; borderRadius?: string; + borderBottomLeftRadius?: string; + borderBottomRightRadius?: string; + borderTopLeftRadius?: string; + borderTopRightRadius?: string; margin?: string; padding?: string; clipPath?: string; @@ -80,6 +84,10 @@ const StyledBox = styled.div` border: ${(props: BoxProps) => props.border || '0px'}; border-radius: ${(props: BoxProps) => props.borderRadius || '0px'}; + border-bottom-left-radius: ${(props: BoxProps) => props.borderBottomLeftRadius || '0px'}; + border-bottom-right-radius: ${(props: BoxProps) => props.borderBottomRightRadius || '0px'}; + border-top-left-radius: ${(props: BoxProps) => props.borderTopLeftRadius || '0px'}; + border-top-right-radius: ${(props: BoxProps) => props.borderTopRightRadius || '0px'}; border-top-width: ${(props: BoxProps) => splitArgs(props.border || props.borderTop || '0px solid black')[0]}; border-top-color: ${(props: BoxProps) => diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx new file mode 100644 index 0000000..f306f9a --- /dev/null +++ b/src/components/Layout/index.tsx @@ -0,0 +1,80 @@ +import React from 'react'; +import { Text, Box, Image, Gap } from 'components'; +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; + +interface LayoutProps { + currentPage: string; + user?: object; + children?: any; +} + +const Layout = ((props: LayoutProps) => { + return ( + + + + + + + + Admin + + + + + + + Beranda + + Rekapitulasi Kasus + + Masukan Data Kasus + + Manajemen Akun + + + + + + + Makarov Jaguar +  - Keluar + + + + + {props.children} + + + + ); +}) + +export default Layout; + +const Container = styled.div` + display: flex; + width: 100%; + min-height: 100%; +` + +const Sidebar = styled.div` + display: flex; + flex-direction: column; + width: 20vw; +` + +const Content = styled.div` + background: #FAFAFA; + width: 80vw; + max-width: 80vw; + padding: 2vw; +` + diff --git a/src/components/index.ts b/src/components/index.ts index 29d5013..d1e7cce 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -7,6 +7,7 @@ import CategoryButton from './CategoryButton'; import Cloud from './Cloud'; import Table from './Table'; import Image from './Image'; +import Layout from './Layout'; export { StyledBox, @@ -19,4 +20,5 @@ export { Cloud, Table, Image, + Layout, }; diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index af2f680..a5d3ecf 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -10,6 +10,7 @@ import { Cloud, Table, Image, + Layout, } from 'components'; import { AppContext } from 'contexts'; import { useFormState } from 'helper'; @@ -22,278 +23,281 @@ const formData = { export default function Home() { const { setModal } = useContext(AppContext); + const { user } = useContext(AppContext) const [form, setField] = useFormState(formData); return ( - - - - - - - Hellooo - - - setField('title', value)} - /> - - - - - -
+ -
); })} + {rowOnClick? ( + + + + { + rowOnClick([...row]) + }} + mainAxis="center" + crossAxis="center" + background={colors.green} + > + + + + +
{ - console.log(data) - }} - maximumData={30} - data={[ - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 14, - "asjd89asjdas9" - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 25, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 99, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 11, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 14, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 25, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 99, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 11, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 99, - ], - [ - 'Muhammad Rasyid', - 'rasyid22', - 'irsyad77@gmail.com', - '08128237232', - 'Jl. Bunga 3 Lestari', - 11, - ], - ]} - onChange={(searchValue, pageNumber) => { - return [ + + + + + + Hellooo + + + setField('title', value)} + /> + + + + + +
{ + console.log(data) + }} + maximumData={30} + data={[ [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 14, + "asjd89asjdas9" ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 25, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 99, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 11, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 14, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 25, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 99, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 11, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 99, ], [ 'Muhammad Rasyid', - 'page', + 'rasyid22', 'irsyad77@gmail.com', '08128237232', 'Jl. Bunga 3 Lestari', - Math.random() * 100, + 11, ], - ]; - }} - /> - - + ]} + onChange={(searchValue, pageNumber) => { + return [ + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + ]; + }} + /> + + + ); } -- GitLab From c794050a5077f3b99f3fd567d26b32bcb75e8f59 Mon Sep 17 00:00:00 2001 From: Irwanto Date: Wed, 22 Apr 2020 17:01:18 +0700 Subject: [PATCH 71/88] [RED] Add Content component render test --- src/components/Content/index.test.tsx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/components/Content/index.test.tsx diff --git a/src/components/Content/index.test.tsx b/src/components/Content/index.test.tsx new file mode 100644 index 0000000..0a9a6e1 --- /dev/null +++ b/src/components/Content/index.test.tsx @@ -0,0 +1,20 @@ +/** + * @format + */ + +import React from 'react'; +import Content from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; +import { BrowserRouter } from 'react-router-dom'; + +it('renders correctly', () => { + // Default render + renderer.create( + + + + + ); +}); -- GitLab From 6c4e811fba7e95ead36eb195438e9fabb4cdd9d2 Mon Sep 17 00:00:00 2001 From: Irwanto Date: Wed, 22 Apr 2020 17:08:09 +0700 Subject: [PATCH 72/88] [GREEN] Implement Content component --- src/components/Content/index.tsx | 40 ++++++++++++++++++++++++++++++++ src/components/index.ts | 2 ++ src/scenes/Home/index.tsx | 4 ++++ 3 files changed, 46 insertions(+) create mode 100644 src/components/Content/index.tsx diff --git a/src/components/Content/index.tsx b/src/components/Content/index.tsx new file mode 100644 index 0000000..4d70f4a --- /dev/null +++ b/src/components/Content/index.tsx @@ -0,0 +1,40 @@ +import React, { useContext } from 'react'; +import { Text, Box, Cloud } from 'components'; +import { ThemeContext } from 'styled-components'; + +interface ContentProps { + title: string; + children?: any; +} + +const Content = ((props: ContentProps) => { + return ( + + + + + + {props.title} + + + + + {props.children} + + + + ); +}); + +export default Content; \ No newline at end of file diff --git a/src/components/index.ts b/src/components/index.ts index d1e7cce..dcd4564 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -8,6 +8,7 @@ import Cloud from './Cloud'; import Table from './Table'; import Image from './Image'; import Layout from './Layout'; +import Content from './Content/index'; export { StyledBox, @@ -21,4 +22,5 @@ export { Table, Image, Layout, + Content, }; diff --git a/src/scenes/Home/index.tsx b/src/scenes/Home/index.tsx index a5d3ecf..70bfd61 100644 --- a/src/scenes/Home/index.tsx +++ b/src/scenes/Home/index.tsx @@ -11,6 +11,7 @@ import { Table, Image, Layout, + Content, } from 'components'; import { AppContext } from 'contexts'; import { useFormState } from 'helper'; @@ -28,6 +29,7 @@ export default function Home() { return ( + + + ); } -- GitLab From 83cd6d1e45a1db7496f19a3de0cdc595eff75771 Mon Sep 17 00:00:00 2001 From: Irwanto Date: Wed, 22 Apr 2020 17:23:50 +0700 Subject: [PATCH 73/88] [RED] Add account management scene render test --- src/scenes/AccountManagement/index.test.tsx | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/scenes/AccountManagement/index.test.tsx diff --git a/src/scenes/AccountManagement/index.test.tsx b/src/scenes/AccountManagement/index.test.tsx new file mode 100644 index 0000000..5be7cd4 --- /dev/null +++ b/src/scenes/AccountManagement/index.test.tsx @@ -0,0 +1,7 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import AccountManagement from '.'; + +it('render AccountManagement component without crashing', () => { + shallow(); +}); -- GitLab From 301dd8bfe7a124865517404c06e15ff47513098b Mon Sep 17 00:00:00 2001 From: Irwanto Date: Wed, 22 Apr 2020 18:03:47 +0700 Subject: [PATCH 74/88] [GREEN] Add account management page with dummy data --- src/App/index.tsx | 3 +- src/components/Box/index.tsx | 2 +- src/scenes/AccountManagement/constant.ts | 161 +++++++++++++++++++++++ src/scenes/AccountManagement/index.tsx | 146 ++++++++++++++++++++ src/scenes/index.ts | 6 +- 5 files changed, 315 insertions(+), 3 deletions(-) create mode 100644 src/scenes/AccountManagement/constant.ts create mode 100644 src/scenes/AccountManagement/index.tsx diff --git a/src/App/index.tsx b/src/App/index.tsx index bcc4b73..269db64 100644 --- a/src/App/index.tsx +++ b/src/App/index.tsx @@ -5,7 +5,7 @@ import styled, { ThemeProvider } from 'styled-components'; import './style.css'; import { AppContext } from 'contexts'; -import { Home } from 'scenes'; +import { Home, AccountManagement } from 'scenes'; import { useMainService, LocalStorage } from 'services'; declare global { @@ -140,6 +140,7 @@ export default function App() { + diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx index ee8fa15..0e2bf31 100644 --- a/src/components/Box/index.tsx +++ b/src/components/Box/index.tsx @@ -83,11 +83,11 @@ const StyledBox = styled.div` padding: ${(props: BoxProps) => props.padding || '0px'}; border: ${(props: BoxProps) => props.border || '0px'}; - border-radius: ${(props: BoxProps) => props.borderRadius || '0px'}; border-bottom-left-radius: ${(props: BoxProps) => props.borderBottomLeftRadius || '0px'}; border-bottom-right-radius: ${(props: BoxProps) => props.borderBottomRightRadius || '0px'}; border-top-left-radius: ${(props: BoxProps) => props.borderTopLeftRadius || '0px'}; border-top-right-radius: ${(props: BoxProps) => props.borderTopRightRadius || '0px'}; + border-radius: ${(props: BoxProps) => props.borderRadius || '0px'}; border-top-width: ${(props: BoxProps) => splitArgs(props.border || props.borderTop || '0px solid black')[0]}; border-top-color: ${(props: BoxProps) => diff --git a/src/scenes/AccountManagement/constant.ts b/src/scenes/AccountManagement/constant.ts new file mode 100644 index 0000000..c3d674a --- /dev/null +++ b/src/scenes/AccountManagement/constant.ts @@ -0,0 +1,161 @@ +const KELURAHAN_VALUES: {label: string; value: string}[] = [ + {label: 'Beji', value: 'Beji'}, + {label: 'Beji Timur', value: 'Beji Timur'}, + {label: 'Kemirimuka', value: 'Kemirimuka'}, + {label: 'Kukusan', value: 'Kukusan'}, + {label: 'Pondok Cina', value: 'Pondok Cina'}, + {label: 'Tanah Baru', value: 'Tanah Baru'}, + {label: 'Bojongsari Baru', value: 'Bojongsari Baru'}, + {label: 'Bojongsari Lama', value: 'Bojongsari Lama'}, + {label: 'Curug', value: 'Curug'}, + {label: 'Duren Mekar', value: 'Duren Mekar'}, + {label: 'Duren Seribu', value: 'Duren Seribu'}, + {label: 'Pondok Petir', value: 'Pondok Petir'}, + {label: 'Serua', value: 'Serua'}, + {label: 'Cilodong', value: 'Cilodong'}, + {label: 'Jatimulya', value: 'Jatimulya'}, + {label: 'Kalibaru', value: 'Kalibaru'}, + {label: 'Kalimulya', value: 'Kalimulya'}, + {label: 'Sukamaju', value: 'Sukamaju'}, + {label: 'Cisalak Pasar', value: 'Cisalak Pasar'}, + {label: 'Curug', value: 'Curug'}, + {label: 'Harjamukti', value: 'Harjamukti'}, + {label: 'Mekarsari', value: 'Mekarsari'}, + {label: 'Pasir Gunung Selatan', value: 'Pasir Gunung Selatan'}, + {label: 'Tugu', value: 'Tugu'}, + {label: 'Cinere', value: 'Cinere'}, + {label: 'Gandul', value: 'Gandul'}, + {label: 'Pangkalan Jati', value: 'Pangkalan Jati'}, + {label: 'Pangkalan Jati Baru', value: 'Pangkalan Jati Baru'}, + {label: 'Bojong Pondok Terong', value: 'Bojong Pondok Terong'}, + {label: 'Cipayung', value: 'Cipayung'}, + {label: 'Cipayung Jaya', value: 'Cipayung Jaya'}, + {label: 'Pondok Jaya', value: 'Pondok Jaya'}, + {label: 'Ratujaya', value: 'Ratujaya'}, + {label: 'Grogol', value: 'Grogol'}, + {label: 'Krukut', value: 'Krukut'}, + {label: 'Limo', value: 'Limo'}, + {label: 'Meruyung', value: 'Meruyung'}, + {label: 'Depok', value: 'Depok'}, + {label: 'Depok Jaya', value: 'Depok Jaya'}, + {label: 'Mampang', value: 'Mampang'}, + {label: 'Pancoran Mas', value: 'Pancoran Mas'}, + {label: 'Rangkapan Jaya', value: 'Rangkapan Jaya'}, + {label: 'Rangkapan Jaya Baru', value: 'Rangkapan Jaya Baru'}, + {label: 'Bedahan', value: 'Bedahan'}, + {label: 'Cinangka', value: 'Cinangka'}, + {label: 'Kedaung', value: 'Kedaung'}, + {label: 'Pasir Putih', value: 'Pasir Putih'}, + {label: 'Pengasinan', value: 'Pengasinan'}, + {label: 'Sawangan Baru', value: 'Sawangan Baru'}, + {label: 'Sawangan Lama', value: 'Sawangan Lama'}, + {label: 'Abadijaya', value: 'Abadijaya'}, + {label: 'Bakti Jaya', value: 'Bakti Jaya'}, + {label: 'Cisalak', value: 'Cisalak'}, + {label: 'Mekar Jaya', value: 'Mekar Jaya'}, + {label: 'Sukmajaya', value: 'Sukmajaya'}, + {label: 'Tirtajaya', value: 'Tirtajaya'}, + {label: 'Cilangkap', value: 'Cilangkap'}, + {label: 'Cimpaeun', value: 'Cimpaeun'}, + {label: 'Jatijajar', value: 'Jatijajar'}, + {label: 'Leuwinanggung', value: 'Leuwinanggung'}, + {label: 'Sukamaju Baru', value: 'Sukamaju Baru'}, + {label: 'Sukatani', value: 'Sukatani'}, + {label: 'Tapos', value: 'Tapos'}, +]; + +const SIGNUP_CATEGORY = [ + { label: 'Kader', value: false}, + { label: 'Admin', value: true}, +]; + +const ACCOUNT_CATEGORY = [ + { label: 'Terverifikasi', value: true}, + { label: 'Permintaan', value: false}, +]; + +const DUMMY_TABLE = [ + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], + [ + 'Muhammad Rasyid', + 'page', + 'irsyad77@gmail.com', + '08128237232', + 'Jl. Bunga 3 Lestari', + Math.random() * 100, + ], +]; + +export {KELURAHAN_VALUES, SIGNUP_CATEGORY, ACCOUNT_CATEGORY, DUMMY_TABLE}; + \ No newline at end of file diff --git a/src/scenes/AccountManagement/index.tsx b/src/scenes/AccountManagement/index.tsx new file mode 100644 index 0000000..e18a3a8 --- /dev/null +++ b/src/scenes/AccountManagement/index.tsx @@ -0,0 +1,146 @@ +import React, { useContext } from 'react'; + +import { + Box, + Gap, + Field, + Button, + CategoryButton, + Cloud, + Table, + Layout, + Content, +} from 'components'; +import { AppContext } from 'contexts'; +import { useFormState } from 'helper'; +import { KELURAHAN_VALUES, ACCOUNT_CATEGORY, SIGNUP_CATEGORY, DUMMY_TABLE } from './constant'; + +export default function Home() { + const { setModal } = useContext(AppContext); + const { user } = useContext(AppContext) + const [signupForm, setField] = useFormState({ + name: {type: 'text'}, + username: {type: 'any'}, + password: {type: 'password'}, + email: {type: 'email'}, + phone_number: {type: 'phone'}, + area: {type: 'any'}, + }); + + return ( + + + + + + + + + + setField('name', value)} + /> + setField('username', value)} + /> + setField('password', value)} + /> + setField('email', value)} + /> + setField('phone_number', value)} + /> + setField('area', value)} + /> + + + + + + + + + + + + + + + + + + +
{ + setModal( + + Edit {data[0]} here + + ) + }} + maximumData={30} + data={DUMMY_TABLE} + onChange={(searchValue, pageNumber) => { + return DUMMY_TABLE; + }} + /> + + + + + + + ); +} diff --git a/src/scenes/index.ts b/src/scenes/index.ts index d213ecf..0b2133d 100644 --- a/src/scenes/index.ts +++ b/src/scenes/index.ts @@ -1,3 +1,7 @@ import Home from './Home'; +import AccountManagement from './AccountManagement'; -export { Home }; +export { + Home, + AccountManagement, +}; -- GitLab From 3085d7ece551178d9f038e64c268f29c6f46648b Mon Sep 17 00:00:00 2001 From: Josh Sudung Date: Wed, 22 Apr 2020 20:36:43 +0700 Subject: [PATCH 75/88] [CHORES] Added service to fetch all user accounts --- src/services/hooks/useMainService/index.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/services/hooks/useMainService/index.tsx b/src/services/hooks/useMainService/index.tsx index 74451a4..5663fd7 100644 --- a/src/services/hooks/useMainService/index.tsx +++ b/src/services/hooks/useMainService/index.tsx @@ -70,9 +70,15 @@ export default function useMainService(token: string) { return fetchWithAuthentication(endPoint, Method.GET); } + async function listAccounts() { + const endpoint = END_POINTS.ACCOUNTS([null]); + return fetchWithAuthentication(endpoint, Method.GET); + } + return { // Authentication login, me, + listAccounts, }; } -- GitLab From 600c6e84e6d184a9d95e5fc96eac51286f6cd49d Mon Sep 17 00:00:00 2001 From: Josh Sudung Date: Wed, 22 Apr 2020 20:39:29 +0700 Subject: [PATCH 76/88] [CHORES] Added type interface for Account --- src/contexts/AppContext/type.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/contexts/AppContext/type.ts diff --git a/src/contexts/AppContext/type.ts b/src/contexts/AppContext/type.ts new file mode 100644 index 0000000..bcb6a40 --- /dev/null +++ b/src/contexts/AppContext/type.ts @@ -0,0 +1,11 @@ +export interface Account { + id: string, + username: string, + name: string, + email: string, + phone_number: string, + area: string, + is_admin: boolean, + is_verified: boolean, + is_active: boolean +} \ No newline at end of file -- GitLab From 769215b3b0265967c4bc98667b09b759788fd20b Mon Sep 17 00:00:00 2001 From: Josh Sudung Date: Thu, 23 Apr 2020 00:57:52 +0700 Subject: [PATCH 77/88] [CHORES] Integrate account management table to endpoint with filter and pagination --- src/contexts/AppContext/{type.ts => types.ts} | 0 src/scenes/AccountManagement/index.tsx | 303 +++++++++++------- src/services/hooks/useMainService/index.tsx | 18 +- 3 files changed, 203 insertions(+), 118 deletions(-) rename src/contexts/AppContext/{type.ts => types.ts} (100%) diff --git a/src/contexts/AppContext/type.ts b/src/contexts/AppContext/types.ts similarity index 100% rename from src/contexts/AppContext/type.ts rename to src/contexts/AppContext/types.ts diff --git a/src/scenes/AccountManagement/index.tsx b/src/scenes/AccountManagement/index.tsx index e18a3a8..a640172 100644 --- a/src/scenes/AccountManagement/index.tsx +++ b/src/scenes/AccountManagement/index.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import React, { useContext, useState, useEffect } from 'react'; import { Box, @@ -13,133 +13,206 @@ import { } from 'components'; import { AppContext } from 'contexts'; import { useFormState } from 'helper'; +import { Account } from 'contexts/AppContext/types'; import { KELURAHAN_VALUES, ACCOUNT_CATEGORY, SIGNUP_CATEGORY, DUMMY_TABLE } from './constant'; export default function Home() { const { setModal } = useContext(AppContext); - const { user } = useContext(AppContext) + const { user } = useContext(AppContext); const [signupForm, setField] = useFormState({ - name: {type: 'text'}, - username: {type: 'any'}, - password: {type: 'password'}, - email: {type: 'email'}, - phone_number: {type: 'phone'}, - area: {type: 'any'}, + name: { type: 'text' }, + username: { type: 'any' }, + password: { type: 'password' }, + email: { type: 'email' }, + phone_number: { type: 'phone' }, + area: { type: 'any' }, }); + const [page, setPage] = useState(1); + const [accountCount, setAccountCount] = useState(0); + const [masterData, setMasterData] = useState([]); + const [cleanedData, setCleanedData] = useState([['', '', '', '', '', '']]); + // const [accountCategory, setAccountCategory] = useState(true); + const global = useContext(AppContext); + + const fetchAccounts = async ( + isFilter:boolean, pageNumber: number, query?: string) => { + const response = isFilter + ? await global.services.main.filterAccountByName(query) + : await global.services.main.listAccounts(pageNumber); + + if (response.status === 200) { + const { data } = response; + setAccountCount(data.count); + setMasterData(data.results); + + const cleanedAccounts: string[][] = []; + data.results.forEach((acc: Account) => { + const currentAccount = []; + + currentAccount.push(acc.name); + currentAccount.push(acc.username); + currentAccount.push(acc.email); + currentAccount.push(acc.phone_number); + currentAccount.push(acc.area); + currentAccount.push(String(0)); + cleanedAccounts.push(currentAccount); + }); + + // Workaround, TODO need to handle empty table + if (cleanedAccounts.length === 0) { + setCleanedData([['', '', '', '', '', '']]); + } else { + setCleanedData(cleanedAccounts); + } + } + }; + + + // const changeAccountCategory = () => { + // setAccountCategory(!accountCategory); + + // const cleanedAccounts: string[][] = []; + // masterData.forEach((acc: Account) => { + // const currentAccount = []; + + // if (acc.is_verified === accountCategory) { + // currentAccount.push(acc.name); + // currentAccount.push(acc.username); + // currentAccount.push(acc.email); + // currentAccount.push(acc.phone_number); + // currentAccount.push(acc.area); + // currentAccount.push(String(0)); + // cleanedAccounts.push(currentAccount); + // } + // }); + // setCleanedData(cleanedAccounts); + // }; + + useEffect(() => { + fetchAccounts(false, page); + }, [page]); + return ( - - - - - - - - - setField('name', value)} - /> - setField('username', value)} - /> - setField('password', value)} - /> - setField('email', value)} - /> - setField('phone_number', value)} - /> - setField('area', value)} - /> - - - - + + + + + + + + + setField('name', value)} + /> + setField('username', value)} + /> + setField('password', value)} + /> + setField('email', value)} + /> + setField('phone_number', value)} + /> + setField('area', value)} + /> + + + + - - - + + + - + - - - - - - - -
{ - setModal( - - Edit {data[0]} here - - ) - }} - maximumData={30} - data={DUMMY_TABLE} - onChange={(searchValue, pageNumber) => { - return DUMMY_TABLE; - }} - /> - + + + + + + + +
{ + setModal( + + Edit {data[0]} here + + ); + }} + maximumData={accountCount} + data={cleanedData} + onChange={(searchValue, pageNumber) => { + if (pageNumber !== page) { + setPage(pageNumber); + } else { + fetchAccounts(true, pageNumber, searchValue); + } + return cleanedData; + }} + /> - - + + + ); diff --git a/src/services/hooks/useMainService/index.tsx b/src/services/hooks/useMainService/index.tsx index 5663fd7..52e73d9 100644 --- a/src/services/hooks/useMainService/index.tsx +++ b/src/services/hooks/useMainService/index.tsx @@ -17,6 +17,7 @@ enum Method { } export default function useMainService(token: string) { + token = '7644ebb7a4009a42aebbc4e18c553afce5eee665'; // Private functions async function fetchWithoutAuthentication( endpoint: string, @@ -70,9 +71,19 @@ export default function useMainService(token: string) { return fetchWithAuthentication(endPoint, Method.GET); } - async function listAccounts() { - const endpoint = END_POINTS.ACCOUNTS([null]); - return fetchWithAuthentication(endpoint, Method.GET); + async function listAccounts(page: number) { + if (page === 1) { + const endpoint = END_POINTS.ACCOUNTS([null]); + return fetchWithAuthentication(endpoint, Method.GET); + } + const endpointWithPaging = END_POINTS.ACCOUNTS([`?page${page}`]); + return fetchWithAuthentication(endpointWithPaging.slice(0, -1), Method.GET); + } + + async function filterAccountByName(name: string) { + const endpoint = END_POINTS.ACCOUNTS([`?name=${name}`]); + return fetchWithAuthentication(endpoint.slice(0, -1), Method.GET); + } return { @@ -80,5 +91,6 @@ export default function useMainService(token: string) { login, me, listAccounts, + filterAccountByName, }; } -- GitLab From 23be8213a41c7253a243eccb5fe9fe72668bc81e Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:46:54 +0700 Subject: [PATCH 78/88] [GREEN] Improve styling on Content component --- src/components/Content/index.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/Content/index.tsx b/src/components/Content/index.tsx index 4d70f4a..e9b4271 100644 --- a/src/components/Content/index.tsx +++ b/src/components/Content/index.tsx @@ -1,5 +1,5 @@ import React, { useContext } from 'react'; -import { Text, Box, Cloud } from 'components'; +import { Text, Box, Cloud, Gap } from 'components'; import { ThemeContext } from 'styled-components'; interface ContentProps { @@ -7,7 +7,15 @@ interface ContentProps { children?: any; } +const DEFAULT_THEME = { + colors: { + mediumGray: 'gray', + } +} + const Content = ((props: ContentProps) => { + const { colors } = useContext(ThemeContext) || DEFAULT_THEME + return ( @@ -16,10 +24,10 @@ const Content = ((props: ContentProps) => { top="50%" width="100%" height="1px" - background="#C2C2C2" + background={colors.mediumGray} transform="translate(0, -50%)" /> - + { - + + {props.children} -- GitLab From 836090f93b249db086afa54f3bd987c9c97470f6 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:49:00 +0700 Subject: [PATCH 79/88] [REFACTOR] Remove Layout from global component and place it as App children --- .../components/Layout/index.test.tsx | 0 src/{ => App}/components/Layout/index.tsx | 50 ++++++++++++++----- 2 files changed, 38 insertions(+), 12 deletions(-) rename src/{ => App}/components/Layout/index.test.tsx (100%) rename src/{ => App}/components/Layout/index.tsx (62%) diff --git a/src/components/Layout/index.test.tsx b/src/App/components/Layout/index.test.tsx similarity index 100% rename from src/components/Layout/index.test.tsx rename to src/App/components/Layout/index.test.tsx diff --git a/src/components/Layout/index.tsx b/src/App/components/Layout/index.tsx similarity index 62% rename from src/components/Layout/index.tsx rename to src/App/components/Layout/index.tsx index f306f9a..17a4292 100644 --- a/src/components/Layout/index.tsx +++ b/src/App/components/Layout/index.tsx @@ -1,15 +1,28 @@ -import React from 'react'; +import React, { useContext } from 'react'; import { Text, Box, Image, Gap } from 'components'; import styled from 'styled-components'; -import { Link } from 'react-router-dom'; +import { Link, useLocation } from 'react-router-dom'; +import { AppContext } from 'contexts'; interface LayoutProps { - currentPage: string; - user?: object; children?: any; } +const navigators = [ + { + name: "Beranda", + to: "/", + }, + { + name: "Manajemen Akun", + to: "/account-management" + } +] + const Layout = ((props: LayoutProps) => { + const { user } = useContext(AppContext) + const location = useLocation() + return ( @@ -31,13 +44,26 @@ const Layout = ((props: LayoutProps) => { - Beranda - - Rekapitulasi Kasus - - Masukan Data Kasus - - Manajemen Akun + {navigators.map((navigator, index) => { + const component = ( + + + {navigator.name} + + + ) + + if (index + 1 < navigators.length) { + return [ + component, + + ] + } + return component + })} @@ -75,6 +101,6 @@ const Content = styled.div` background: #FAFAFA; width: 80vw; max-width: 80vw; - padding: 2vw; + padding: 45px 0 32px 32px; ` -- GitLab From be4ab6fb83397456306a9c158a162e14d1a88c88 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:49:40 +0700 Subject: [PATCH 80/88] [GREEN] Handle empty data of Table component --- src/components/Table/index.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx index 223c1ba..5b66117 100644 --- a/src/components/Table/index.tsx +++ b/src/components/Table/index.tsx @@ -139,7 +139,7 @@ export default function Table({ setInnerData(data); }, [JSON.stringify(data)]); - if (header.length > innerData[0].length) { + if (innerData[0] && (header.length > innerData[0].length)) { throw new Error('The shape of Header and data are not consistent'); } @@ -257,6 +257,23 @@ export default function Table({ })} + {innerData.length === 0 + ? ( + + + Tidak ada data + + + ) : <> + } -- GitLab From 5ed19071881530c073197d72bbaa13b226300199 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:53:40 +0700 Subject: [PATCH 81/88] [RED] Create unit test of UserProfile component --- .../components/UserProfile/index.test.tsx | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/scenes/AccountManagement/components/UserProfile/index.test.tsx diff --git a/src/scenes/AccountManagement/components/UserProfile/index.test.tsx b/src/scenes/AccountManagement/components/UserProfile/index.test.tsx new file mode 100644 index 0000000..1635ab9 --- /dev/null +++ b/src/scenes/AccountManagement/components/UserProfile/index.test.tsx @@ -0,0 +1,24 @@ +/** + * @format + */ + +import React from 'react'; +import UserProfile from '.'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + // For horizontal axis + renderer.create( + ); +}); -- GitLab From 603a0bf983bd0defdb145d81d4e59393e189c613 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:54:12 +0700 Subject: [PATCH 82/88] [GREEN] Create UserProfile component --- .../components/UserProfile/index.tsx | 186 ++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 src/scenes/AccountManagement/components/UserProfile/index.tsx diff --git a/src/scenes/AccountManagement/components/UserProfile/index.tsx b/src/scenes/AccountManagement/components/UserProfile/index.tsx new file mode 100644 index 0000000..796f85f --- /dev/null +++ b/src/scenes/AccountManagement/components/UserProfile/index.tsx @@ -0,0 +1,186 @@ +import React, { useState, useEffect } from 'react'; + +import { KELURAHAN_VALUES, ACCOUNT_CATEGORY, SIGNUP_CATEGORY, DUMMY_TABLE } from 'constant'; +import { Box, Image, Cloud, Button, Field, Gap } from 'components'; +import { useFormState } from 'helper'; + +interface UserProfileProps { + id: string; + name: string; + username: string; + email: string; + phoneNumber: string; + area: string; + numberOfActivities: number; +} + +const userFormFormat = { + name: { + type: "text" + }, + username: { + type: "text" + }, + email: { + type: "email" + }, + phoneNumber: { + type: "text" + }, + area: { + type: "text" + } +} + +export default function UserProfile({ + id, + name, + username, + email, + phoneNumber, + area, + numberOfActivities = -1, +}: UserProfileProps) { + const [shouldEdit, setShouldEdit] = useState(false); + const [userForm, setUserField] = useFormState(userFormFormat); + + useEffect(() => { + setUserField("name", name); + setUserField("username", username); + setUserField("email", email); + setUserField("phoneNumber", phoneNumber); + setUserField("area", area); + }, []) + + console.log("test") + return ( + + + + + + + + + {!shouldEdit + ? ( + + ) : <> + } + + + {/* User profile */} + + + setUserField('name', value)} + /> + + setUserField('username', value)} + /> + + setUserField('email', value)} + /> + + + + setUserField('phoneNumber', value)} + /> + {/* + setUserField('area', value)} + /> */} + + + + + + {!shouldEdit + ? ( + + ) : <> + } + + + ) +} \ No newline at end of file -- GitLab From ca5e312d6c7bfc05ef9b6a7dd14a6c3615e43447 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:54:40 +0700 Subject: [PATCH 83/88] [CHORES] Update global components path --- src/components/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/index.ts b/src/components/index.ts index dcd4564..8f369e8 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -7,7 +7,6 @@ import CategoryButton from './CategoryButton'; import Cloud from './Cloud'; import Table from './Table'; import Image from './Image'; -import Layout from './Layout'; import Content from './Content/index'; export { @@ -21,6 +20,5 @@ export { Cloud, Table, Image, - Layout, Content, }; -- GitLab From 9dff01bdfdc98c4a552d00f0d1670076e00f9177 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:55:27 +0700 Subject: [PATCH 84/88] [CHORES] Move constant file --- src/{scenes/AccountManagement/constant.ts => constant/index.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{scenes/AccountManagement/constant.ts => constant/index.ts} (100%) diff --git a/src/scenes/AccountManagement/constant.ts b/src/constant/index.ts similarity index 100% rename from src/scenes/AccountManagement/constant.ts rename to src/constant/index.ts -- GitLab From 0a8461ed6f3f1c3db14fe3cfc351dbcc0eb1e170 Mon Sep 17 00:00:00 2001 From: Nandhika Prayoga Date: Thu, 23 Apr 2020 08:55:54 +0700 Subject: [PATCH 85/88] [GREEN] Integrate UserProfile to AccountManagement page --- src/scenes/AccountManagement/index.tsx | 244 +++++++++++++------------ 1 file changed, 124 insertions(+), 120 deletions(-) diff --git a/src/scenes/AccountManagement/index.tsx b/src/scenes/AccountManagement/index.tsx index a640172..c2d479d 100644 --- a/src/scenes/AccountManagement/index.tsx +++ b/src/scenes/AccountManagement/index.tsx @@ -8,13 +8,13 @@ import { CategoryButton, Cloud, Table, - Layout, Content, } from 'components'; import { AppContext } from 'contexts'; import { useFormState } from 'helper'; import { Account } from 'contexts/AppContext/types'; -import { KELURAHAN_VALUES, ACCOUNT_CATEGORY, SIGNUP_CATEGORY, DUMMY_TABLE } from './constant'; +import { KELURAHAN_VALUES, ACCOUNT_CATEGORY, SIGNUP_CATEGORY, DUMMY_TABLE } from 'constant'; +import UserProfile from './components/UserProfile'; export default function Home() { const { setModal } = useContext(AppContext); @@ -31,7 +31,7 @@ export default function Home() { const [page, setPage] = useState(1); const [accountCount, setAccountCount] = useState(0); const [masterData, setMasterData] = useState([]); - const [cleanedData, setCleanedData] = useState([['', '', '', '', '', '']]); + const [cleanedData, setCleanedData] = useState([["namamu", "namamu", "namamu", "namamu", "namamu", "namamu"]]); // const [accountCategory, setAccountCategory] = useState(true); const global = useContext(AppContext); @@ -94,126 +94,130 @@ export default function Home() { }, [page]); return ( - - - - - - - - - - setField('name', value)} - /> - setField('username', value)} - /> - setField('password', value)} - /> - setField('email', value)} - /> - setField('phone_number', value)} - /> - setField('area', value)} - /> - - - - - + + + + +