@@ -1049,6 +1049,12 @@
10491049 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz",
10501050 "integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg=="
10511051 },
1052+ "@types/normalize-package-data": {
1053+ "version": "2.4.0",
1054+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
1055+ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
1056+ "dev": true
1057+ },
10521058 "@types/q": {
10531059 "version": "1.5.1",
10541060 "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.1.tgz",
@@ -5052,6 +5058,15 @@
50525058 "jsx-ast-utils": "^2.0.1"
50535059 }
50545060 },
5061+ "eslint-plugin-prettier": {
5062+ "version": "3.1.0",
5063+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz",
5064+ "integrity": "sha512-XWX2yVuwVNLOUhQijAkXz+rMPPoCr7WFiAl8ig6I7Xn+pPVhDhzg4DxHpmbeb0iqjO9UronEA3Tb09ChnFVHHA==",
5065+ "dev": true,
5066+ "requires": {
5067+ "prettier-linter-helpers": "^1.0.0"
5068+ }
5069+ },
50555070 "eslint-plugin-react": {
50565071 "version": "7.11.1",
50575072 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz",
@@ -5493,6 +5508,12 @@
54935508 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
54945509 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
54955510 },
5511+ "fast-diff": {
5512+ "version": "1.2.0",
5513+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
5514+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
5515+ "dev": true
5516+ },
54965517 "fast-glob": {
54975518 "version": "2.2.4",
54985519 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz",
@@ -7299,6 +7320,12 @@
72997320 "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz",
73007321 "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg=="
73017322 },
7323+ "get-stdin": {
7324+ "version": "7.0.0",
7325+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz",
7326+ "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==",
7327+ "dev": true
7328+ },
73027329 "get-stream": {
73037330 "version": "3.0.0",
73047331 "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
@@ -8187,6 +8214,233 @@
81878214 "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
81888215 "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
81898216 },
8217+ "husky": {
8218+ "version": "2.4.0",
8219+ "resolved": "https://registry.npmjs.org/husky/-/husky-2.4.0.tgz",
8220+ "integrity": "sha512-3k1wuZU20gFkphNWMjh2ISCFaqfbaLY7R9FST2Mj9HeRhUK9ydj9qQR8qfXlog3EctVGsyeilcZkIT7uBZDDVA==",
8221+ "dev": true,
8222+ "requires": {
8223+ "cosmiconfig": "^5.2.0",
8224+ "execa": "^1.0.0",
8225+ "find-up": "^3.0.0",
8226+ "get-stdin": "^7.0.0",
8227+ "is-ci": "^2.0.0",
8228+ "pkg-dir": "^4.1.0",
8229+ "please-upgrade-node": "^3.1.1",
8230+ "read-pkg": "^5.1.1",
8231+ "run-node": "^1.0.0",
8232+ "slash": "^3.0.0"
8233+ },
8234+ "dependencies": {
8235+ "ci-info": {
8236+ "version": "2.0.0",
8237+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
8238+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
8239+ "dev": true
8240+ },
8241+ "cosmiconfig": {
8242+ "version": "5.2.1",
8243+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
8244+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
8245+ "dev": true,
8246+ "requires": {
8247+ "import-fresh": "^2.0.0",
8248+ "is-directory": "^0.3.1",
8249+ "js-yaml": "^3.13.1",
8250+ "parse-json": "^4.0.0"
8251+ }
8252+ },
8253+ "execa": {
8254+ "version": "1.0.0",
8255+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
8256+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
8257+ "dev": true,
8258+ "requires": {
8259+ "cross-spawn": "^6.0.0",
8260+ "get-stream": "^4.0.0",
8261+ "is-stream": "^1.1.0",
8262+ "npm-run-path": "^2.0.0",
8263+ "p-finally": "^1.0.0",
8264+ "signal-exit": "^3.0.0",
8265+ "strip-eof": "^1.0.0"
8266+ }
8267+ },
8268+ "find-up": {
8269+ "version": "3.0.0",
8270+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
8271+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
8272+ "dev": true,
8273+ "requires": {
8274+ "locate-path": "^3.0.0"
8275+ }
8276+ },
8277+ "get-stream": {
8278+ "version": "4.1.0",
8279+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
8280+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
8281+ "dev": true,
8282+ "requires": {
8283+ "pump": "^3.0.0"
8284+ }
8285+ },
8286+ "is-ci": {
8287+ "version": "2.0.0",
8288+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
8289+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
8290+ "dev": true,
8291+ "requires": {
8292+ "ci-info": "^2.0.0"
8293+ }
8294+ },
8295+ "js-yaml": {
8296+ "version": "3.13.1",
8297+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
8298+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
8299+ "dev": true,
8300+ "requires": {
8301+ "argparse": "^1.0.7",
8302+ "esprima": "^4.0.0"
8303+ }
8304+ },
8305+ "locate-path": {
8306+ "version": "3.0.0",
8307+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
8308+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
8309+ "dev": true,
8310+ "requires": {
8311+ "p-locate": "^3.0.0",
8312+ "path-exists": "^3.0.0"
8313+ }
8314+ },
8315+ "normalize-package-data": {
8316+ "version": "2.5.0",
8317+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
8318+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
8319+ "dev": true,
8320+ "requires": {
8321+ "hosted-git-info": "^2.1.4",
8322+ "resolve": "^1.10.0",
8323+ "semver": "2 || 3 || 4 || 5",
8324+ "validate-npm-package-license": "^3.0.1"
8325+ }
8326+ },
8327+ "p-limit": {
8328+ "version": "2.2.0",
8329+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
8330+ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
8331+ "dev": true,
8332+ "requires": {
8333+ "p-try": "^2.0.0"
8334+ }
8335+ },
8336+ "p-locate": {
8337+ "version": "3.0.0",
8338+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
8339+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
8340+ "dev": true,
8341+ "requires": {
8342+ "p-limit": "^2.0.0"
8343+ }
8344+ },
8345+ "p-try": {
8346+ "version": "2.2.0",
8347+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
8348+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
8349+ "dev": true
8350+ },
8351+ "parse-json": {
8352+ "version": "4.0.0",
8353+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
8354+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
8355+ "dev": true,
8356+ "requires": {
8357+ "error-ex": "^1.3.1",
8358+ "json-parse-better-errors": "^1.0.1"
8359+ }
8360+ },
8361+ "path-exists": {
8362+ "version": "3.0.0",
8363+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
8364+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
8365+ "dev": true
8366+ },
8367+ "pkg-dir": {
8368+ "version": "4.2.0",
8369+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
8370+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
8371+ "dev": true,
8372+ "requires": {
8373+ "find-up": "^4.0.0"
8374+ },
8375+ "dependencies": {
8376+ "find-up": {
8377+ "version": "4.0.0",
8378+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.0.0.tgz",
8379+ "integrity": "sha512-zoH7ZWPkRdgwYCDVoQTzqjG8JSPANhtvLhh4KVUHyKnaUJJrNeFmWIkTcNuJmR3GLMEmGYEf2S2bjgx26JTF+Q==",
8380+ "dev": true,
8381+ "requires": {
8382+ "locate-path": "^5.0.0"
8383+ }
8384+ },
8385+ "locate-path": {
8386+ "version": "5.0.0",
8387+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
8388+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
8389+ "dev": true,
8390+ "requires": {
8391+ "p-locate": "^4.1.0"
8392+ }
8393+ },
8394+ "p-locate": {
8395+ "version": "4.1.0",
8396+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
8397+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
8398+ "dev": true,
8399+ "requires": {
8400+ "p-limit": "^2.2.0"
8401+ }
8402+ }
8403+ }
8404+ },
8405+ "pump": {
8406+ "version": "3.0.0",
8407+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
8408+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
8409+ "dev": true,
8410+ "requires": {
8411+ "end-of-stream": "^1.1.0",
8412+ "once": "^1.3.1"
8413+ }
8414+ },
8415+ "read-pkg": {
8416+ "version": "5.1.1",
8417+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz",
8418+ "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==",
8419+ "dev": true,
8420+ "requires": {
8421+ "@types/normalize-package-data": "^2.4.0",
8422+ "normalize-package-data": "^2.5.0",
8423+ "parse-json": "^4.0.0",
8424+ "type-fest": "^0.4.1"
8425+ }
8426+ },
8427+ "resolve": {
8428+ "version": "1.11.1",
8429+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
8430+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
8431+ "dev": true,
8432+ "requires": {
8433+ "path-parse": "^1.0.6"
8434+ }
8435+ },
8436+ "slash": {
8437+ "version": "3.0.0",
8438+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
8439+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
8440+ "dev": true
8441+ }
8442+ }
8443+ },
81908444 "iced-runtime": {
81918445 "version": "1.0.3",
81928446 "resolved": "https://registry.npmjs.org/iced-runtime/-/iced-runtime-1.0.3.tgz",
@@ -11719,6 +11973,15 @@
1171911973 }
1172011974 }
1172111975 },
11976+ "please-upgrade-node": {
11977+ "version": "3.1.1",
11978+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
11979+ "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
11980+ "dev": true,
11981+ "requires": {
11982+ "semver-compare": "^1.0.0"
11983+ }
11984+ },
1172211985 "pluralize": {
1172311986 "version": "7.0.0",
1172411987 "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
@@ -15424,9 +15687,18 @@
1542415687 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
1542515688 },
1542615689 "prettier": {
15427− "version": "1.15.3",
15428− "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.3.tgz",
15429− "integrity": "sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg=="
15690+ "version": "1.18.2",
15691+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
15692+ "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw=="
15693+ },
15694+ "prettier-linter-helpers": {
15695+ "version": "1.0.0",
15696+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
15697+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
15698+ "dev": true,
15699+ "requires": {
15700+ "fast-diff": "^1.1.2"
15701+ }
1543015702 },
1543115703 "pretty-bytes": {
1543215704 "version": "4.0.2",
@@ -16779,6 +17051,12 @@
1677917051 "is-promise": "^2.1.0"
1678017052 }
1678117053 },
17054+ "run-node": {
17055+ "version": "1.0.0",
17056+ "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
17057+ "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
17058+ "dev": true
17059+ },
1678217060 "run-queue": {
1678317061 "version": "1.0.3",
1678417062 "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
@@ -17253,6 +17531,12 @@
1725317531 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
1725417532 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
1725517533 },
17534+ "semver-compare": {
17535+ "version": "1.0.0",
17536+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
17537+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
17538+ "dev": true
17539+ },
1725617540 "send": {
1725717541 "version": "0.16.2",
1725817542 "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
@@ -18737,6 +19021,12 @@
1873719021 "prelude-ls": "~1.1.2"
1873819022 }
1873919023 },
19024+ "type-fest": {
19025+ "version": "0.4.1",
19026+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz",
19027+ "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==",
19028+ "dev": true
19029+ },
1874019030 "type-is": {
1874119031 "version": "1.6.16",
1874219032 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",