From 42403f35f3dea9cd0c9a2010c3810e6d2cc8743e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2019 16:59:52 +0000 Subject: [PATCH 1/2] chore(deps-dev): bump standard from 12.0.1 to 13.1.0 Bumps [standard](https://github.com/standard/standard) from 12.0.1 to 13.1.0. - [Release notes](https://github.com/standard/standard/releases) - [Changelog](https://github.com/standard/standard/blob/master/CHANGELOG.md) - [Commits](https://github.com/standard/standard/compare/v12.0.1...v13.1.0) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 870 ++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 538 insertions(+), 334 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c0afd2..525c639 100644 --- a/package-lock.json +++ b/package-lock.json @@ -833,9 +833,9 @@ } }, "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz", + "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==", "dev": true }, "acorn-jsx": { @@ -864,9 +864,9 @@ } }, "ajv": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", - "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -875,12 +875,6 @@ "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", @@ -900,10 +894,13 @@ "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 + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, "ansicolors": { "version": "0.3.2", @@ -987,53 +984,18 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "atob-lite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", "dev": true }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "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 - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -1118,19 +1080,10 @@ } } }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { @@ -1197,9 +1150,9 @@ } }, "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "check-error": { @@ -1208,12 +1161,6 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, "clean-stack": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.1.0.tgz", @@ -1599,23 +1546,23 @@ } }, "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-3.1.0.tgz", + "integrity": "sha512-al10l5QAYaM/PeuXkAr1Y9AQz0LCtWsnJG23pIgh44hDxHFOj36l6qvhfjnIWBYwZOqM1fXUFV9tkjL7JPdGvw==", "dev": true, "requires": { "find-root": "^1.0.0", "glob": "^7.0.5", - "ignore": "^3.0.9", + "ignore": "^5.0.0", "pkg-config": "^1.1.0", "run-parallel": "^1.1.2", "uniq": "^1.0.1" }, "dependencies": { "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", "dev": true } } @@ -1650,9 +1597,9 @@ } }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" @@ -1762,61 +1709,114 @@ "dev": true }, "eslint": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.4.0.tgz", - "integrity": "sha512-UIpL91XGex3qtL6qwyCQJar2j3osKxK9e3ano3OcGEIRM4oWIpCkDg9x95AXEC2wMs7PnxzOkPZ2gq+tsMS9yg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", + "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", "dev": true, "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", + "espree": "^6.0.0", "esquery": "^1.0.1", "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", + "glob-parent": "^5.0.0", "globals": "^11.7.0", - "ignore": "^4.0.2", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", + "inquirer": "^6.4.1", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.5", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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" + } + }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "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 + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "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" + } + }, + "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==", + "dev": true + } } }, "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-13.0.1.tgz", + "integrity": "sha512-zLKp4QOgq6JFgRm1dDCVv1Iu0P5uZ4v5Wa4DTOkg2RFMxdCX/9Qf7lz9ezRj2dBRa955cWQF/O/LWEiYWAHbTw==", "dev": true }, "eslint-config-standard-jsx": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz", - "integrity": "sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-7.0.0.tgz", + "integrity": "sha512-OiKOF3MFVmWOCVfsi8GHlVorOEiBsPzAnUhM3c6HML94O2krbdQ/eMABySHgHHOIBYRls9sR9I3lo6O0vXhVEg==", "dev": true }, "eslint-import-resolver-node": { @@ -1841,13 +1841,13 @@ } }, "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", + "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", "dev": true, "requires": { "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { @@ -1872,21 +1872,22 @@ } }, "eslint-plugin-import": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", - "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", "dev": true, "requires": { + "array-includes": "^3.0.3", "contains-path": "^0.1.0", - "debug": "^2.6.8", + "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.2.0", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", "read-pkg-up": "^2.0.0", - "resolve": "^1.6.0" + "resolve": "^1.11.0" }, "dependencies": { "debug": { @@ -1911,36 +1912,65 @@ } }, "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz", + "integrity": "sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", + "eslint-plugin-es": "^1.4.0", "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", + "ignore": "^5.1.1", "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "eslint-plugin-promise": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz", - "integrity": "sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", "dev": true }, "eslint-plugin-react": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", - "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", + "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", "dev": true, "requires": { "array-includes": "^3.0.3", "doctrine": "^2.1.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.2" + "jsx-ast-utils": "^2.1.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } } }, "eslint-plugin-standard": { @@ -1950,9 +1980,9 @@ "dev": true }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -1960,10 +1990,13 @@ } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz", + "integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.0.0" + } }, "eslint-visitor-keys": { "version": "1.0.0", @@ -1972,12 +2005,12 @@ "dev": true }, "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.0.0.tgz", + "integrity": "sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q==", "dev": true, "requires": { - "acorn": "^6.0.2", + "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" } @@ -2034,13 +2067,13 @@ } }, "external-editor": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "version": "3.1.0", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, @@ -2095,13 +2128,12 @@ } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "fill-range": { @@ -2191,13 +2223,12 @@ "dev": true }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" } }, "find-versions": { @@ -2236,17 +2267,47 @@ } }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, "foreground-child": { "version": "1.5.6", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", @@ -2329,9 +2390,9 @@ "dev": true }, "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", "dev": true }, "get-stream": { @@ -2476,15 +2537,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -2647,24 +2699,58 @@ "dev": true }, "inquirer": { - "version": "5.2.0", - "resolved": "http://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "version": "6.5.0", + "resolved": "http://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.1.0", + "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.3.0", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^5.5.2", + "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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" + } + } } }, "into-stream": { @@ -2779,12 +2865,6 @@ "has": "^1.0.1" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -2981,15 +3061,15 @@ "dev": true }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3042,12 +3122,13 @@ "dev": true }, "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", + "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", "dev": true, "requires": { - "array-includes": "^3.0.3" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" } }, "lcid": { @@ -7448,6 +7529,30 @@ "object-keys": "^1.0.11" } }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", + "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.11.0", + "function-bind": "^1.1.1", + "has": "^1.0.1" + } + }, "object.getownpropertydescriptors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", @@ -7458,6 +7563,18 @@ "es-abstract": "^1.5.1" } }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "octokit-pagination-methods": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", @@ -7632,6 +7749,15 @@ "release-zalgo": "^1.0.0" } }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-github-url": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", @@ -7648,13 +7774,10 @@ } }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -7662,12 +7785,6 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -7707,21 +7824,6 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", @@ -7783,20 +7885,14 @@ } }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "^2.1.0" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -7816,13 +7912,14 @@ "dev": true }, "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "pseudomap": { @@ -7879,6 +7976,12 @@ } } }, + "react-is": { + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", + "dev": true + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -7898,17 +8001,6 @@ "requires": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - } } }, "readable-stream": { @@ -7982,29 +8074,19 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "require-uncached": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "^1.0.6" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "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": { @@ -8054,12 +8136,12 @@ "dev": true }, "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -8355,11 +8437,13 @@ "dev": true }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" } }, @@ -8446,39 +8530,127 @@ "dev": true }, "standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/standard/-/standard-12.0.1.tgz", - "integrity": "sha512-UqdHjh87OG2gUrNCSM4QRLF5n9h3TFPwrCNyVlkqu31Hej0L/rc8hzKqVvkb2W3x0WMq7PzZdkLfEcBhVOR6lg==", - "dev": true, - "requires": { - "eslint": "~5.4.0", - "eslint-config-standard": "12.0.0", - "eslint-config-standard-jsx": "6.0.2", - "eslint-plugin-import": "~2.14.0", - "eslint-plugin-node": "~7.0.1", - "eslint-plugin-promise": "~4.0.0", - "eslint-plugin-react": "~7.11.1", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-13.1.0.tgz", + "integrity": "sha512-h3NaMzsa88+/xtjXCMvdn6EWWdlodsI/HvtsQF+EGwrF9kVNwNha9TkFABU6bSBoNfC79YDyIAq9ekxOMBFkuw==", + "dev": true, + "requires": { + "eslint": "~6.1.0", + "eslint-config-standard": "13.0.1", + "eslint-config-standard-jsx": "7.0.0", + "eslint-plugin-import": "~2.18.0", + "eslint-plugin-node": "~9.1.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.14.2", "eslint-plugin-standard": "~4.0.0", - "standard-engine": "~9.0.0" + "standard-engine": "~11.0.1" } }, "standard-engine": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-9.0.0.tgz", - "integrity": "sha512-ZfNfCWZ2Xq67VNvKMPiVMKHnMdvxYzvZkf1AH8/cw2NLDBm5LRsxMqvEJpsjLI/dUosZ3Z1d6JlHDp5rAvvk2w==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-11.0.1.tgz", + "integrity": "sha512-WZQ5PpEDfRzPFk+H9xvKVQPQIxKnAQB2cb2Au4NyTCtdw5R0pyMBUZLbPXyFjnlhe8Ae+zfNrWU4m6H5b7cEAg==", "dev": true, "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", + "deglob": "^3.0.0", + "get-stdin": "^7.0.0", "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "pkg-conf": "^3.1.0" }, "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-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 + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true } } }, @@ -8579,24 +8751,44 @@ } } }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - }, "table": { - "version": "4.0.3", - "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "5.4.4", + "resolved": "http://registry.npmjs.org/table/-/table-5.4.4.tgz", + "integrity": "sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "teeny-request": { @@ -8821,6 +9013,12 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -8929,6 +9127,12 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -9033,9 +9237,9 @@ "dev": true }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" diff --git a/package.json b/package.json index 7b86f6b..a14d69d 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,6 @@ "mocha": "^6.2.0", "nyc": "^14.1.1", "semantic-release": "^15.13.18", - "standard": "^12.0.1" + "standard": "^13.1.0" } } From d806d2c8749b4794b59de8e55e822de3583ac287 Mon Sep 17 00:00:00 2001 From: Anthony McLin Date: Thu, 25 Jul 2019 10:09:02 -0700 Subject: [PATCH 2/2] style(dev-deps): use const instead of let to match standard expectations --- 2018/day-01/part-1/chronalCalibrator.js | 2 +- 2018/day-01/part-1/chronalCalibrator.test.js | 8 +++---- 2018/day-01/part-1/solution.js | 2 +- 2018/day-01/part-2/chronalCalibrator.js | 4 ++-- 2018/day-01/part-2/chronalCalibrator.test.js | 8 +++---- 2018/day-01/part-2/solution.js | 2 +- 2018/day-02/boxes.js | 12 +++++------ 2018/day-02/solution.js | 8 +++---- 2018/day-03/claims.js | 2 +- 2018/day-03/claims.test.js | 8 +++---- 2018/day-04/guards.js | 20 +++++++++--------- 2018/day-04/helpers.js | 6 +++--- 2018/day-04/solution.js | 2 +- 2018/day-05/polymer.js | 2 +- 2018/day-05/solution.js | 2 +- 2018/day-06/coordinates.js | 10 ++++----- 2018/day-06/coordinates.test.js | 4 ++-- 2018/day-06/helpers.js | 4 ++-- 2018/day-07/steps.js | 16 +++++++------- 2018/day-07/steps.test.js | 8 +++---- 2018/day-08/license.js | 10 ++++----- 2018/day-09/marbles.js | 6 +++--- 2018/day-10/beacons.js | 8 +++---- 2018/day-10/beacons.test.js | 2 +- 2018/day-10/display.js | 2 +- 2018/day-10/display.test.js | 2 +- 2018/day-10/helpers.js | 2 +- 2018/day-10/helpers.test.js | 6 +++--- 2018/day-10/solution.js | 2 +- 2018/day-11/fuel-cells.js | 8 +++---- 2018/day-11/fuel-cells.test.js | 22 ++++++++++---------- 2018/day-11/solution.js | 6 +++--- 2018/day-12/plants.js | 10 ++++----- 2018/day-12/plants.test.js | 6 +++--- 2018/day-12/solution.js | 2 +- 2018/day-13/tracks.js | 6 ++++-- 2018/day-14/recipes.js | 4 ++-- 2018/day-14/recipes.test.js | 4 ++-- 38 files changed, 120 insertions(+), 118 deletions(-) diff --git a/2018/day-01/part-1/chronalCalibrator.js b/2018/day-01/part-1/chronalCalibrator.js index 99815d6..e629bd4 100644 --- a/2018/day-01/part-1/chronalCalibrator.js +++ b/2018/day-01/part-1/chronalCalibrator.js @@ -5,7 +5,7 @@ const parseData = require('../../inputParser').parseData * @param {String} input list of values */ const chronalCalibrator = (input) => { - let adjustments = parseData(input) + const adjustments = parseData(input) return adjustments.reduce( (total, current) => total + current ) diff --git a/2018/day-01/part-1/chronalCalibrator.test.js b/2018/day-01/part-1/chronalCalibrator.test.js index c0147b5..4fe9237 100644 --- a/2018/day-01/part-1/chronalCalibrator.test.js +++ b/2018/day-01/part-1/chronalCalibrator.test.js @@ -7,21 +7,21 @@ describe('--- Day 1: Chronal Calibration ---', () => { it('should add a list frequency values', () => { const sequence = '+1, +1, +1' const expected = 3 - let actual = chronalCalibrator(sequence) + const actual = chronalCalibrator(sequence) expect(actual).to.equal(expected) }) it('should subtract a list frequency values', () => { const sequence = '-1, -2, -3' const expected = -6 - let actual = chronalCalibrator(sequence) + const actual = chronalCalibrator(sequence) expect(actual).to.equal(expected) }) it('should add a add and subtract a mixed list of frequency values', () => { const sequence = '+1, +1, -2' const expected = 0 - let actual = chronalCalibrator(sequence) + const actual = chronalCalibrator(sequence) expect(actual).to.equal(expected) }) @@ -31,7 +31,7 @@ describe('--- Day 1: Chronal Calibration ---', () => { +1 -2` const expected = 0 - let actual = chronalCalibrator(sequence) + const actual = chronalCalibrator(sequence) expect(actual).to.equal(expected) }) }) diff --git a/2018/day-01/part-1/solution.js b/2018/day-01/part-1/solution.js index 725593c..3480ca6 100644 --- a/2018/day-01/part-1/solution.js +++ b/2018/day-01/part-1/solution.js @@ -5,6 +5,6 @@ const filePath = path.join(__dirname, '../input.txt') fs.readFile(filePath, { encoding: 'utf8' }, (err, data) => { if (err) throw err - let answer = chronalCalibrator(data) + const answer = chronalCalibrator(data) console.log(`Answer: ${answer}`) }) diff --git a/2018/day-01/part-2/chronalCalibrator.js b/2018/day-01/part-2/chronalCalibrator.js index 672c58c..568d371 100644 --- a/2018/day-01/part-2/chronalCalibrator.js +++ b/2018/day-01/part-2/chronalCalibrator.js @@ -5,7 +5,7 @@ const parseData = require('../../inputParser').parseData * @param {String} input list of values */ function getFrequency (input) { - let adjustments = parseData(input) + const adjustments = parseData(input) return adjustments.reduce( (total, current) => total + current ) @@ -19,7 +19,7 @@ function getFirstMatch (input) { const sequence = parseData(input) let freq = 0 let idx = 0 - let log = [freq] + const log = [freq] let matched = null do { // Adjust Frequence diff --git a/2018/day-01/part-2/chronalCalibrator.test.js b/2018/day-01/part-2/chronalCalibrator.test.js index e3b2056..e09cbc7 100644 --- a/2018/day-01/part-2/chronalCalibrator.test.js +++ b/2018/day-01/part-2/chronalCalibrator.test.js @@ -7,28 +7,28 @@ describe('--- Day 1: Chronal Calibration ---', () => { it('finds the first frequency that is reached twice in test set 1', () => { const sequence = '+1, -1' const expected = 0 - let actual = chronalCalibrator.getFirstMatch(sequence) + const actual = chronalCalibrator.getFirstMatch(sequence) expect(actual).to.equal(expected) }) it('finds the first frequency that is reached twice in test set 2', () => { const sequence = '+3, +3, +4, -2, -4' const expected = 10 - let actual = chronalCalibrator.getFirstMatch(sequence) + const actual = chronalCalibrator.getFirstMatch(sequence) expect(actual).to.equal(expected) }) it('finds the first frequency that is reached twice in test set 3', () => { const sequence = '-6, +3, +8, +5, -6' const expected = 5 - let actual = chronalCalibrator.getFirstMatch(sequence) + const actual = chronalCalibrator.getFirstMatch(sequence) expect(actual).to.equal(expected) }) it('finds the first frequency that is reached twice in test set 4', () => { const sequence = '+7, +7, -2, -7, -4' const expected = 14 - let actual = chronalCalibrator.getFirstMatch(sequence) + const actual = chronalCalibrator.getFirstMatch(sequence) expect(actual).to.equal(expected) }) }) diff --git a/2018/day-01/part-2/solution.js b/2018/day-01/part-2/solution.js index 29a5c2f..ad30806 100644 --- a/2018/day-01/part-2/solution.js +++ b/2018/day-01/part-2/solution.js @@ -5,6 +5,6 @@ const filePath = path.join(__dirname, '../input.txt') fs.readFile(filePath, { encoding: 'utf8' }, (err, data) => { if (err) throw err - let answer = chronalCalibrator.getFirstMatch(data) + const answer = chronalCalibrator.getFirstMatch(data) console.log(`Answer: ${answer}`) }) diff --git a/2018/day-02/boxes.js b/2018/day-02/boxes.js index 6c46ef3..8d627dd 100644 --- a/2018/day-02/boxes.js +++ b/2018/day-02/boxes.js @@ -4,8 +4,8 @@ const unique = require('../helpers').unique const hasNRepeatedChars = (haystack, n) => { let chars = unique(haystack.split('')) chars = chars.filter((char) => { - let needle = new RegExp(char, 'g') - let count = (haystack.match(needle) || []).length // find number of results in the ID + const needle = new RegExp(char, 'g') + const count = (haystack.match(needle) || []).length // find number of results in the ID return (count === n) }) return (chars.length > 0) @@ -30,7 +30,7 @@ function getChecksum (input) { * @returns {number} */ const scoreIDs = (str1, str2) => { - let common = getCommonLetters(str1, str2) + const common = getCommonLetters(str1, str2) return str1.length - common.length } @@ -56,14 +56,14 @@ const getCommonLetters = (str1, str2) => { * @returns {Array} list of similar IDs */ const findSimilarIDs = (ids, threshold) => { - let results = [] + const results = [] threshold = threshold || 1 let searchIdx = 0 do { - let needle = ids[searchIdx] + const needle = ids[searchIdx] // Find matches that differ by only one letter - let matches = ids.filter((id, idx) => { + const matches = ids.filter((id, idx) => { // Don't repeat comparisons and don't compare to self if (searchIdx <= idx) { return false diff --git a/2018/day-02/solution.js b/2018/day-02/solution.js index 43feafc..cb00914 100644 --- a/2018/day-02/solution.js +++ b/2018/day-02/solution.js @@ -5,13 +5,13 @@ const filePath = path.join(__dirname, 'input.txt') fs.readFile(filePath, { encoding: 'utf8' }, (err, data) => { if (err) throw err - let answer = boxes.getChecksum(data) + const answer = boxes.getChecksum(data) console.log(`-- Part 1 --`) console.log(`Answer: ${answer}`) - let ids = boxes.getListFromData(data) - let similar = boxes.findSimilarIDs(ids) - let answer2 = boxes.getCommonLetters(similar[0], similar[1]) + const ids = boxes.getListFromData(data) + const similar = boxes.findSimilarIDs(ids) + const answer2 = boxes.getCommonLetters(similar[0], similar[1]) console.log(`-- Part 2 --`) console.log(`Answer: ${answer2}`) }) diff --git a/2018/day-03/claims.js b/2018/day-03/claims.js index 65a7d58..5da4288 100644 --- a/2018/day-03/claims.js +++ b/2018/day-03/claims.js @@ -100,7 +100,7 @@ const makeClaim = (claim) => { * @returns {Object} Claim object with named properties */ const parseClaim = (str) => { - let claim = {} + const claim = {} let vals = str.split(' @ ') claim.id = vals[0].replace(/#/g, '') vals = vals[1].split(',') diff --git a/2018/day-03/claims.test.js b/2018/day-03/claims.test.js index b584c27..92a9e49 100644 --- a/2018/day-03/claims.test.js +++ b/2018/day-03/claims.test.js @@ -46,14 +46,14 @@ describe('--- Day 3: No Matter How You Slice It ---', () => { describe('makeClaim(claim)', () => { it('marks the points on the cloth with the claim ID', () => { const claim = parseClaim(claims[0]) - let result = makeClaim(claim) + const result = makeClaim(claim) expect(result[1][1]).to.equal(undefined) expect(result[3][2]).to.deep.equal([123]) expect(result[7][5]).to.deep.equal([123]) }) it('marks the points that are overlapped', () => { - let testClaims = claims.map(parseClaim) + const testClaims = claims.map(parseClaim) let result = _cloth for (let x = 1; x < claims.length; x++) { result = makeClaim(testClaims[x]) @@ -91,7 +91,7 @@ describe('--- Day 3: No Matter How You Slice It ---', () => { describe('countConflicts()', () => { it('counts the number of points with conflicting claims', () => { - let testClaims = claims.map(parseClaim) + const testClaims = claims.map(parseClaim) for (let x = 1; x < claims.length; x++) { makeClaim(testClaims[x]) } @@ -105,7 +105,7 @@ describe('--- Day 3: No Matter How You Slice It ---', () => { describe('Part 2', () => { describe('findNonOverlappingClaims()', () => { it('locates the first claim that doesn\'t have overlapping claims', () => { - let testClaims = claims.map(parseClaim) + const testClaims = claims.map(parseClaim) for (let x = 1; x < claims.length; x++) { makeClaim(testClaims[x]) } diff --git a/2018/day-04/guards.js b/2018/day-04/guards.js index 39e1494..4724550 100644 --- a/2018/day-04/guards.js +++ b/2018/day-04/guards.js @@ -1,6 +1,6 @@ const helpers = require('./helpers') -let _data = {} +const _data = {} const getData = (key) => _data[key] const setData = (key) => _data[key] @@ -12,7 +12,7 @@ const setData = (key) => _data[key] const findLaziestGuards = (days) => { // Get a list of guards with their sleeping times // returns { id: XX, asleep: YY } - let guards = days.filter((day, idx, arr) => { + const guards = days.filter((day, idx, arr) => { return (arr.indexOf(day) === idx) // filters a list of unique guard IDs }).map((day) => { return { id: day.guard } // Makes a list of guard objects @@ -49,10 +49,10 @@ const findSleepiestTimes = (guard, data) => { .map((minute) => minute.id) // convert into a list of times } - let times = data.filter((day) => day.guard === guard) // Find the days the guard is working + const times = data.filter((day) => day.guard === guard) // Find the days the guard is working .map((day) => getTimesAsleep(day.activity)) // Convert activity streams into lists of times where guard is asleep .reduce((acc, day) => { - let counter = acc || [] + const counter = acc || [] // Loop through the minutes of the day, and increment status in the acclumator if the guard is asleep day.forEach((minute) => { counter[minute] = (counter[minute]) ? counter[minute] + 1 : 1 @@ -75,7 +75,7 @@ const processActivities = (data) => { } // store variables iterated through the loop - let store = { + const store = { date: data[0].date, hour: data[0].hour, minute: data[0].minute, @@ -84,7 +84,7 @@ const processActivities = (data) => { } // Build up the results set - let results = [{ + const results = [{ date: store.date, guard: store.guard, activity: '' @@ -95,7 +95,7 @@ const processActivities = (data) => { // Crossed into new day if (event.date !== store.date) { // Finish out the open pattern - let prevAct = results[results.length - 1].activity + const prevAct = results[results.length - 1].activity if (prevAct.length < 60) { results[results.length - 1].activity += store.state.repeat(60 - prevAct.length) } @@ -103,7 +103,7 @@ const processActivities = (data) => { // Start a new activity pattern // The new activity pattern should fill up to the current minute, or completely fill // when the new event is in a later hour - let len = (event.hour === 0) ? event.minute : 60 + const len = (event.hour === 0) ? event.minute : 60 results.push({ date: event.date, guard: event.guard || store.guard, @@ -113,10 +113,10 @@ const processActivities = (data) => { // Event is the same day as the previous event if (event.date === store.date) { - let act = results[results.length - 1].activity + const act = results[results.length - 1].activity // Populate the previous state up to the current minute or up to the full hour // when it's no longer the 0 hour - let len = (event.hour === 0) ? event.minute - act.length : 60 - act.length + const len = (event.hour === 0) ? event.minute - act.length : 60 - act.length if (len > 0 && len < 60) { results[results.length - 1].activity += store.state.repeat(len) diff --git a/2018/day-04/helpers.js b/2018/day-04/helpers.js index 82d2c8c..974b59a 100644 --- a/2018/day-04/helpers.js +++ b/2018/day-04/helpers.js @@ -42,7 +42,7 @@ const dynamicSortMultiple = (...keys) => { return (a, b) => { let i = 0 let result = 0 - let numberOfProperties = keys.length + const numberOfProperties = keys.length while (result === 0 && i < numberOfProperties) { result = dynamicSort(keys[i])(a, b) @@ -67,8 +67,8 @@ const parseLog = (log) => { * @returns {Object} { activity, date, guard, minute } */ const parseLogEntry = (entry) => { - let data = {} - let res = entry.split(' ') + const data = {} + const res = entry.split(' ') data.date = res.shift() .replace('[', '') // strip brackets from date diff --git a/2018/day-04/solution.js b/2018/day-04/solution.js index b93f8c1..3de1d75 100644 --- a/2018/day-04/solution.js +++ b/2018/day-04/solution.js @@ -23,7 +23,7 @@ const init = (data) => { // Sort the guards most likely to fall asleep on a repeated minute guardsBySleepTime = guardsBySleepTime.map((guard) => { if (guard.asleep > 0) { - let sleepiestTimes = findSleepiestTimes(guard.id, data) + const sleepiestTimes = findSleepiestTimes(guard.id, data) guard.sleepiestMinute = sleepiestTimes[0].minute guard.sleepiestMinuteQty = sleepiestTimes[0].qty } else { diff --git a/2018/day-05/polymer.js b/2018/day-05/polymer.js index c20065f..983cc8a 100644 --- a/2018/day-05/polymer.js +++ b/2018/day-05/polymer.js @@ -14,7 +14,7 @@ const toggleCase = (input) => { * @param {String} input Polymer chain */ const reducePolymer = (input) => { - let polymer = input.trim().split('') + const polymer = input.trim().split('') polymer.forEach((char, idx) => { if (toggleCase(char) === polymer[idx - 1]) { diff --git a/2018/day-05/solution.js b/2018/day-05/solution.js index 09d521c..8ff6242 100644 --- a/2018/day-05/solution.js +++ b/2018/day-05/solution.js @@ -8,7 +8,7 @@ fs.readFile(filePath, { encoding: 'utf8' }, (err, data) => { data = data.trim() - let answer = reducePolymer(data).length + const answer = reducePolymer(data).length // Try removing each potential problem pair, and see which gets to the smallest polymer let answer2 = answer diff --git a/2018/day-06/coordinates.js b/2018/day-06/coordinates.js index 28b2147..af9a879 100644 --- a/2018/day-06/coordinates.js +++ b/2018/day-06/coordinates.js @@ -1,7 +1,7 @@ const { dynamicSort } = require('../day-04/helpers') -let minX = 0 -let minY = 0 +const minX = 0 +const minY = 0 let maxX = 10 let maxY = 10 @@ -30,7 +30,7 @@ const distance = (A, B) => { * @param {*} data List of points to measure to */ const findClosestPoint = (source, data) => { - let distances = data.map((target, idx) => { + const distances = data.map((target, idx) => { return { id: idx, distance: distance(source, target) @@ -38,7 +38,7 @@ const findClosestPoint = (source, data) => { }).sort(dynamicSort('distance')) // Point is invalid when equadistant, so mark with '.' instead of a value - let point = (distances[0].distance === distances[1].distance) ? '.' : distances[0].id + const point = (distances[0].distance === distances[1].distance) ? '.' : distances[0].id return String.fromCharCode(point) } @@ -71,7 +71,7 @@ const isUnbounded = (area, grid) => { * Creates an empty XY grid array */ const blankGrid = () => { - let grid = [] + const grid = [] for (let x = minX; x < maxX; x++) { grid[x] = grid[x] || [] for (let y = minY; y < maxY; y++) { diff --git a/2018/day-06/coordinates.test.js b/2018/day-06/coordinates.test.js index fa9b81d..3094fb1 100644 --- a/2018/day-06/coordinates.test.js +++ b/2018/day-06/coordinates.test.js @@ -5,8 +5,8 @@ const { distance } = require('./coordinates') describe('-- Day 6: Chronal Coordinates ---', () => { describe('distance()', () => { it('calculates the manhattan distance between two points', () => { - let expected = 9 - let actual = distance( + const expected = 9 + const actual = distance( { x: 1, y: 1 }, { x: 8, y: 3 } ) diff --git a/2018/day-06/helpers.js b/2018/day-06/helpers.js index 71f10e5..52e968e 100644 --- a/2018/day-06/helpers.js +++ b/2018/day-06/helpers.js @@ -7,8 +7,8 @@ const loadInput = (callback) => { fs.readFile(filePath, { encoding: 'utf8' }, (err, data) => { if (err) throw err - let list = linesToArray(data).sort().map((line) => { - let coords = line.split(', ') + const list = linesToArray(data).sort().map((line) => { + const coords = line.split(', ') return { x: parseInt(coords[0]), y: parseInt(coords[1]) diff --git a/2018/day-07/steps.js b/2018/day-07/steps.js index 18d2756..c5e9d01 100644 --- a/2018/day-07/steps.js +++ b/2018/day-07/steps.js @@ -57,8 +57,8 @@ const executeInstructions = (tree, workers, minDuration) => { const getAssignedTasks = () => workerStates.filter(isActive).map((w) => w.state) let elapsed = 0 // Timer - let pending = _instructionIds // Tasks not started or incomplete - let completed = [] // Tasks completed + const pending = _instructionIds // Tasks not started or incomplete + const completed = [] // Tasks completed let assigned = getAssignedTasks() // Tasks currently being processed while (pending.length > 0 || assigned.length > 0) { // Loop through until tree is exhausted and all workers done // Free up any workers from the last cycle @@ -92,7 +92,7 @@ const executeInstructions = (tree, workers, minDuration) => { return assigned } - let startable = findHasNoDependencies(tree, pending) + const startable = findHasNoDependencies(tree, pending) let activeWorkers = workerStates.filter(isActive).length let workersAreAvailable = (activeWorkers < workers) let tasksAreAssigned = areAssigned(startable, assigned) @@ -102,7 +102,7 @@ const executeInstructions = (tree, workers, minDuration) => { startable.shift() } else { // Assign the task to the first available worker - let id = workerStates.indexOf(workerStates.find(isFree)) + const id = workerStates.indexOf(workerStates.find(isFree)) workerStates[id].state = startable.shift() workerStates[id].availableIn = minDuration + workerStates[id].state.charCodeAt(0) - 64 // A is ASCII 65 } @@ -153,7 +153,7 @@ const findHasNoDependencies = (dependencies, pending) => { }) // Filter to IDs with no dependencies - let startable = pending.filter((id) => ids.indexOf(id) < 0) + const startable = pending.filter((id) => ids.indexOf(id) < 0) // console.log(`${startable} have no dependencies so are safe to start`) @@ -187,7 +187,7 @@ const getInstructionIds = () => { * @returns {Object} structured data */ const parseEntry = (line, idx, arr) => { - let data = line.split(' ') + const data = line.split(' ') return { id: data[7], dep: data[1] @@ -214,11 +214,11 @@ const sortInstructions = (entries) => { let sorted = [] storeData(entries) - let tree = JSON.parse(JSON.stringify(_dependencies)) + const tree = JSON.parse(JSON.stringify(_dependencies)) while (Object.keys(tree).length > 0) { // find next step - let next = findHasNoDependencies(tree)[0] + const next = findHasNoDependencies(tree)[0] sorted.push(next) _instructionIds.splice(_instructionIds.indexOf(next), 1) // Go through dependency tree and remove the step that's been cleared diff --git a/2018/day-07/steps.test.js b/2018/day-07/steps.test.js index c4c389e..1bc4558 100644 --- a/2018/day-07/steps.test.js +++ b/2018/day-07/steps.test.js @@ -34,7 +34,7 @@ describe('--- Day 7: The Sum of Its Parts ---', () => { describe('findHasNoDependencies()', () => { it('Gets a list of IDs that can be executed since they have no dependencies', () => { const expected = ['C'] - let test = testData.map(parseEntry) + const test = testData.map(parseEntry) storeData(test) const dependencies = getDependencies() const actual = findHasNoDependencies(dependencies) @@ -44,7 +44,7 @@ describe('--- Day 7: The Sum of Its Parts ---', () => { describe('sortInstructions()', () => { it('Puts the instructions in the necessary order', () => { const expected = 'CABDFE' - let test = testData.map(parseEntry) + const test = testData.map(parseEntry) const actual = sortInstructions(test).join('') expect(actual).to.equal(expected) }) @@ -52,7 +52,7 @@ describe('--- Day 7: The Sum of Its Parts ---', () => { describe('storeData()', () => { it('Builds and stores a list of identified IDs', () => { const expected = ['A', 'B', 'C', 'D', 'E', 'F'] - let test = testData.map(parseEntry) + const test = testData.map(parseEntry) storeData(test) const actual = getInstructionIds() expect(actual).to.deep.equal(expected) @@ -75,7 +75,7 @@ describe('--- Day 7: The Sum of Its Parts ---', () => { ids: ['E'] } } - let test = testData.map(parseEntry) + const test = testData.map(parseEntry) storeData(test) const actual = getDependencies() expect(actual).to.deep.equal(expected) diff --git a/2018/day-08/license.js b/2018/day-08/license.js index 1a70b79..69d1518 100644 --- a/2018/day-08/license.js +++ b/2018/day-08/license.js @@ -5,16 +5,16 @@ * @returns {Object} { children: [node], remainder: [data values]} */ const findChildren = (input, expected) => { - let results = [] + const results = [] while (results.length < expected) { - let result = { + const result = { children: [], metadata: [] } - let childCount = input.shift() - let metaCount = input.shift() - let childSearchResults = findChildren(input, childCount) + const childCount = input.shift() + const metaCount = input.shift() + const childSearchResults = findChildren(input, childCount) result.children = childSearchResults.children input = childSearchResults.remainder diff --git a/2018/day-09/marbles.js b/2018/day-09/marbles.js index ca1b3bf..e069569 100644 --- a/2018/day-09/marbles.js +++ b/2018/day-09/marbles.js @@ -136,7 +136,7 @@ const nextPlayer = () => { */ const playGame = (playerCount, highMarble, showBoard) => { resetGame(playerCount) - let game = new Circle(0) + const game = new Circle(0) // Go through the game for (let marble = 1; marble <= highMarble; marble++) { @@ -146,7 +146,7 @@ const playGame = (playerCount, highMarble, showBoard) => { // Player keeps marble divisble by 23 players[player] += marble // Player picks up marble from circle - let score = game.moveHead(-7).removeHeadMarble() + const score = game.moveHead(-7).removeHeadMarble() players[player] += score // console.log(`player ${player} scored ${marble} + ${score}`) } else { @@ -159,7 +159,7 @@ const playGame = (playerCount, highMarble, showBoard) => { } // tally the results - let results = { + const results = { players: players, highScore: players.sort((a, b) => b - a)[0] } diff --git a/2018/day-10/beacons.js b/2018/day-10/beacons.js index dd94415..67370ea 100644 --- a/2018/day-10/beacons.js +++ b/2018/day-10/beacons.js @@ -27,7 +27,7 @@ class Beacon { * @returns {Object} frame contents */ getFrame (frame) { - let data = {} + const data = {} // Calculate the position of all the beacons data.contents = this.start.map((beacon) => { var point = {} @@ -42,7 +42,7 @@ class Beacon { data.meta = this.frameMeta[frame] } else { // cache metadata for this frame if we haven't already - let meta = { + const meta = { focus: this._getFocus(data.contents), dims: this._getContentDimensions(data.contents) } @@ -63,7 +63,7 @@ class Beacon { */ _getFocus (points) { // Find min/max values - let ranges = points.reduce(_aggMinMaxCoords, { maxX: points[0].x, maxY: points[0].y, minX: points[0].x, minY: points[0].y }) + const ranges = points.reduce(_aggMinMaxCoords, { maxX: points[0].x, maxY: points[0].y, minX: points[0].x, minY: points[0].y }) // Focus is the area return (ranges.maxX - ranges.minX) * (ranges.maxY - ranges.minY) } @@ -76,7 +76,7 @@ class Beacon { */ _getContentDimensions (points) { // Find min/max values - let ranges = points.reduce(_aggMinMaxCoords, { maxX: points[0].x, maxY: points[0].y, minX: points[0].x, minY: points[0].y }) + const ranges = points.reduce(_aggMinMaxCoords, { maxX: points[0].x, maxY: points[0].y, minX: points[0].x, minY: points[0].y }) return { origin: [ranges.minX, ranges.minY], diff --git a/2018/day-10/beacons.test.js b/2018/day-10/beacons.test.js index 5fef5aa..44a2678 100644 --- a/2018/day-10/beacons.test.js +++ b/2018/day-10/beacons.test.js @@ -127,7 +127,7 @@ describe('--- Day 10: The Stars Align ---', () => { expect(actual).to.equal(expected) }) it('Calculates the dimensions of the region containing content in the specified frame', () => { - const expected = { origin: [ -10, -9 ], dim: [ 28, 26 ] } + const expected = { origin: [-10, -9], dim: [28, 26] } const beaconTracker = new Beacon(testData) const actual = beaconTracker.getFrame(8).meta.dims expect(actual).to.deep.equal(expected) diff --git a/2018/day-10/display.js b/2018/day-10/display.js index eb7689b..24d6784 100644 --- a/2018/day-10/display.js +++ b/2018/day-10/display.js @@ -8,7 +8,7 @@ const show = (frame, dim, origin) => { let buffer = '' for (let row = origin[1]; row <= origin[1] + dim[1]; row++) { for (let col = origin[0]; col <= origin[0] + dim[0]; col++) { - let point = frame.contents.find((pt) => (col === pt.x && row === pt.y)) + const point = frame.contents.find((pt) => (col === pt.x && row === pt.y)) buffer += (typeof point !== 'undefined') ? '#' : '.' } buffer += '\n' diff --git a/2018/day-10/display.test.js b/2018/day-10/display.test.js index 47dc3c5..5a22df6 100644 --- a/2018/day-10/display.test.js +++ b/2018/day-10/display.test.js @@ -30,7 +30,7 @@ describe('--- Day 10: The Stars Align ---', () => { ...................... ...................... ......................` - let testData = `position=< 9, 1> velocity=< 0, 2> + const testData = `position=< 9, 1> velocity=< 0, 2> position=< 7, 0> velocity=<-1, 0> position=< 3, -2> velocity=<-1, 1> position=< 6, 10> velocity=<-2, -1> diff --git a/2018/day-10/helpers.js b/2018/day-10/helpers.js index 1850458..0cbf7e6 100644 --- a/2018/day-10/helpers.js +++ b/2018/day-10/helpers.js @@ -34,7 +34,7 @@ const _listToProps = (obj, val, idx, keys) => { * @returns Structured object with velocity and position x/y pairs */ const parseLine = (input) => { - let pattern = /-*\d+,\s*-*\d+/g + const pattern = /-*\d+,\s*-*\d+/g return input.match(pattern) .map((res) => res.split(',') diff --git a/2018/day-10/helpers.test.js b/2018/day-10/helpers.test.js index efa8cb1..a8c66c0 100644 --- a/2018/day-10/helpers.test.js +++ b/2018/day-10/helpers.test.js @@ -8,8 +8,8 @@ describe('--- Day 10: The Stars Align ---', () => { describe('Helpers:', () => { describe('parseLine(input)', () => { it('converts a line of the input into structured object', () => { - let test = 'position=<-3, 11> velocity=< 1, -2>' - let expected = { + const test = 'position=<-3, 11> velocity=< 1, -2>' + const expected = { position: { x: -3, y: 11 @@ -19,7 +19,7 @@ describe('--- Day 10: The Stars Align ---', () => { y: -2 } } - let actual = parseLine(test) + const actual = parseLine(test) expect(actual).to.deep.equal(expected) }) }) diff --git a/2018/day-10/solution.js b/2018/day-10/solution.js index b9f99ff..433af3a 100644 --- a/2018/day-10/solution.js +++ b/2018/day-10/solution.js @@ -13,7 +13,7 @@ const init = (data) => { // Play the animation and interpret the frames for (let x = start; x < end; x++) { - let frame = beaconTracker.getFrame(x) + const frame = beaconTracker.getFrame(x) console.log(`Analyzing frame ${x}. Focus: ${frame.meta.focus}`) } diff --git a/2018/day-11/fuel-cells.js b/2018/day-11/fuel-cells.js index e14e22c..7ca63b8 100644 --- a/2018/day-11/fuel-cells.js +++ b/2018/day-11/fuel-cells.js @@ -65,20 +65,20 @@ class Rack { _tallySquare (idx, size) { let power = 0 // Check if square will be off the panel by calculating the max index - let maxIdx = idx + (size[0] - 1) + ((size[1] - 1) * this.size[0]) + const maxIdx = idx + (size[0] - 1) + ((size[1] - 1) * this.size[0]) if (maxIdx > this.cells.length) { return null } for (let x = 0; x < size[0]; x++) { for (let y = 0; y < size[1]; y++) { - let pointer = idx + x + (y * this.size[0]) + const pointer = idx + x + (y * this.size[0]) if (pointer > this.cells.length) { x = size[0] y = size[1] return null // break for speed on invalid squares } - let dest = this.cells[pointer] + const dest = this.cells[pointer] if (!dest) { } @@ -97,7 +97,7 @@ class Rack { findMaxSquare (size) { return this.cells.reduce((acc, cell, idx) => { - let squarePower = this._tallySquare(idx, size) + const squarePower = this._tallySquare(idx, size) return (squarePower !== null && squarePower > acc.power) ? { power: squarePower, idx: idx } : acc }, { power: -99999, idx: -1 }) } diff --git a/2018/day-11/fuel-cells.test.js b/2018/day-11/fuel-cells.test.js index 81b0777..bccaad7 100644 --- a/2018/day-11/fuel-cells.test.js +++ b/2018/day-11/fuel-cells.test.js @@ -16,40 +16,40 @@ describe('--- Day 11: Chronal Charge ---', () => { }) describe('getRackID(coordinates)', () => { it('caclulcates the rack ID of the cell at specified x,y coordinate', () => { - let test = [3, 5] - let testSerial = 8 + const test = [3, 5] + const testSerial = 8 const expected = 13 - let actual = new Rack(testSerial).getRackId(test, testSerial) + const actual = new Rack(testSerial).getRackId(test, testSerial) expect(actual).to.equal(expected) }) }) describe('getPowerLevel(coordinates)', () => { it('caclulcates the power level of the cell at specified x,y coordinate', () => { - let test = [3, 5] + const test = [3, 5] const testSerial = 8 const expected = 4 - let actual = new Rack(testSerial).getPowerLevel(test, testSerial) + const actual = new Rack(testSerial).getPowerLevel(test, testSerial) expect(actual).to.equal(expected) }) it('can generate a negative power level', () => { - let test = [122, 79] + const test = [122, 79] const testSerial = 57 const expected = -5 - let actual = new Rack(testSerial).getPowerLevel(test, testSerial) + const actual = new Rack(testSerial).getPowerLevel(test, testSerial) expect(actual).to.equal(expected) }) it('can generate a power level of 0', () => { - let test = [217, 196] + const test = [217, 196] const testSerial = 39 const expected = 0 - let actual = new Rack(testSerial).getPowerLevel(test, testSerial) + const actual = new Rack(testSerial).getPowerLevel(test, testSerial) expect(actual).to.equal(expected) }) it('can generate a positive power level', () => { - let test = [101, 153] + const test = [101, 153] const testSerial = 71 const expected = 4 - let actual = new Rack(testSerial).getPowerLevel(test, testSerial) + const actual = new Rack(testSerial).getPowerLevel(test, testSerial) expect(actual).to.equal(expected) }) }) diff --git a/2018/day-11/solution.js b/2018/day-11/solution.js index d82dbd7..fd37e2f 100644 --- a/2018/day-11/solution.js +++ b/2018/day-11/solution.js @@ -4,10 +4,10 @@ const serial = 1133 // From puzzle input const size = [300, 300] const squareSize = [3, 3] -let powerBank = new Rack(serial, size) +const powerBank = new Rack(serial, size) // powerBank.tallySquares(squareSize) // const answer = powerBank.getCellsByPower(squareSize)[0].coords -let max = powerBank.findMaxSquare(squareSize).idx +const max = powerBank.findMaxSquare(squareSize).idx const answer = powerBank.cells[max].coords console.log(`-- Part 1 --`) @@ -42,7 +42,7 @@ for (let dial = 1; dial <= 300; dial++) { } const bestOfAnySize = anySizeSquares.sort(dynamicSort('-power'))[0] -let answer2 = bestOfAnySize.coords +const answer2 = bestOfAnySize.coords answer2.push(bestOfAnySize.size) console.log(`-- Part 2 --`) diff --git a/2018/day-12/plants.js b/2018/day-12/plants.js index 199a76b..c90ea9e 100644 --- a/2018/day-12/plants.js +++ b/2018/day-12/plants.js @@ -56,7 +56,7 @@ class Plants { // Assemble pattern for the given pot let pattern = '' for (let x = pot.position - 2; x <= pot.position + 2; x++) { - let pp = prevGen.find((p) => p.position === x) + const pp = prevGen.find((p) => p.position === x) pattern += (pp) ? pp.state : '.' } const state = this.predictPlant(pattern) @@ -90,7 +90,7 @@ class Plants { */ findPotBoundaries () { return this.generations.reduce((acc, gen) => { - let pots = gen.filter((p) => p.state === '#') + const pots = gen.filter((p) => p.state === '#') return [ acc[0] < pots[0].position ? acc[0] : pots[0].position, acc[1] < pots[pots.length - 1].postion ? acc[1] : pots[pots.length - 1].position @@ -104,12 +104,12 @@ class Plants { * @returns {Array} [left, right] necessary buffer size of first and last pots */ getBoundaryBuffers () { - let buffers = [0, 0] + const buffers = [0, 0] Object.keys(this.rules).filter((rule) => this.rules[rule] === '#').forEach((rule) => { // For left edge for (let x = 0; x < rule.length; x++) { if (rule.substr(x, 1) === '.') { - let y = x + 1 + const y = x + 1 buffers[0] = Math.max(buffers[0], y) } else { // break the loop when we encounter a # @@ -120,7 +120,7 @@ class Plants { for (let x = rule.length - 1; x >= 0; x--) { if (rule.substr(x, 1) === '.') { - let y = rule.length - x + const y = rule.length - x buffers[1] = Math.max(buffers[1], y) } else { // break the loop when we encounter a # diff --git a/2018/day-12/plants.test.js b/2018/day-12/plants.test.js index ad875d3..47f0336 100644 --- a/2018/day-12/plants.test.js +++ b/2018/day-12/plants.test.js @@ -54,7 +54,7 @@ describe('--- Day 12: Subterranean Sustainability ---', () => { { position: 23, state: '#' }, { position: 24, state: '#' } ] - let plantTracker = new Plants(initialState) + const plantTracker = new Plants(initialState) const actual = plantTracker.generations[0] expect(actual).to.deep.equal(expected) }) @@ -100,7 +100,7 @@ describe('--- Day 12: Subterranean Sustainability ---', () => { { position: 29, state: '.' }, { position: 30, state: '.' } ] - let plantTracker = new Plants(initialState, rules) + const plantTracker = new Plants(initialState, rules) plantTracker.advance() const actual = plantTracker.generations[1] expect(actual).to.deep.equal(expected) @@ -110,7 +110,7 @@ describe('--- Day 12: Subterranean Sustainability ---', () => { it('retrieves the expected state based on the specified pattern', () => { const pattern = '#.#.#' const expected = '#' - let plantTracker = new Plants(initialState, rules) + const plantTracker = new Plants(initialState, rules) const actual = plantTracker.predictPlant(pattern) expect(actual).to.equal(expected) }) diff --git a/2018/day-12/solution.js b/2018/day-12/solution.js index 67051df..4a288b9 100644 --- a/2018/day-12/solution.js +++ b/2018/day-12/solution.js @@ -10,7 +10,7 @@ const initialState = '#...#...##..####..##.####.#...#...#.#.#.#......##....#.... const init = (data) => { const rules = data - let plantTracker = new Plants(initialState, rules) + const plantTracker = new Plants(initialState, rules) const generations = 20 for (let gen = 1; gen <= generations; gen++) { plantTracker.advance() diff --git a/2018/day-13/tracks.js b/2018/day-13/tracks.js index ea16d98..5b30464 100644 --- a/2018/day-13/tracks.js +++ b/2018/day-13/tracks.js @@ -17,7 +17,9 @@ class Track { } _isCollision (x, y) { return (this.carts.filter((c) => c.x === x && c.y === y).length > 1) } + _isIntersection (s) { return s === '+' } + _isTurn (s) { return this.trackTurns.indexOf(s) >= 0 } /** @@ -29,7 +31,7 @@ class Track { */ _intersect (cart) { const i = this.interSectionOrder - let l = cart.lastIntersections + const l = cart.lastIntersections // Figure out the new rotation let r = i.indexOf(l[0]) @@ -52,7 +54,7 @@ class Track { */ _rotate (s, a, d) { // Determine which way we're rotating - let r = ( + const r = ( (this.trackTurns.indexOf(s) === 1 && a === 'y') || // vertical turns clockwise (this.trackTurns.indexOf(s) === 0 && a === 'x') // horizontal turns clockwise // (this.trackTurns.indexOf(s) === 0 && a === 'x') // horizontal turns counter-clockwise diff --git a/2018/day-14/recipes.js b/2018/day-14/recipes.js index 8412f90..a2e1daf 100644 --- a/2018/day-14/recipes.js +++ b/2018/day-14/recipes.js @@ -145,9 +145,9 @@ const findPattern = (pattern, recipes, bufferSize) => { while (matched !== true) { // console.log(`Checking for ${pattern} in segement starting at ${position}`) - let haystack = loopRecipesForElves(recipes, bufferSize) + const haystack = loopRecipesForElves(recipes, bufferSize) - let offset = haystack.indexOf(pattern) + const offset = haystack.indexOf(pattern) position = (offset >= 0) ? position + offset : recipes.length if (offset > -1) { diff --git a/2018/day-14/recipes.test.js b/2018/day-14/recipes.test.js index ab380cd..82fe1eb 100644 --- a/2018/day-14/recipes.test.js +++ b/2018/day-14/recipes.test.js @@ -79,7 +79,7 @@ describe('--- Day 14: Chocolate Charts ---', () => { }) describe('calculateXAfterY(x, y, recipe)', () => { it('predicts the next X results after the elves have executed Y', () => { - let actual = calculateXAfterY(10, 9, recipes) + const actual = calculateXAfterY(10, 9, recipes) expect(actual).to.equal('5158916779') }) it('predicts the next X results after the elves have executed Y', () => { @@ -95,7 +95,7 @@ describe('--- Day 14: Chocolate Charts ---', () => { expect(actual).to.equal('5941429882') }) it('positions results correctly if X triggers 2 recipes being added', () => { - let actual = calculateXAfterY(3, 15, recipes) + const actual = calculateXAfterY(3, 15, recipes) expect(actual).to.equal('677') }) })