From 57a9eacc606a5534af4f06e05af6f30d9eb16b97 Mon Sep 17 00:00:00 2001 From: Amphiluke Date: Sat, 3 Nov 2018 22:15:40 +0700 Subject: [PATCH 1/2] Update dependencies --- package-lock.json | 3618 +++++++++++++++++++++++++-------------------- package.json | 14 +- 2 files changed, 2049 insertions(+), 1583 deletions(-) diff --git a/package-lock.json b/package-lock.json index 86d86b8..0336af8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,34 +5,34 @@ "requires": true, "dependencies": { "@ava/babel-plugin-throws-helper": { - "version": "3.0.0-beta.7", - "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-3.0.0-beta.7.tgz", - "integrity": "sha512-1nCjzg5iRbxwuI1F31bh6k4JxlgJnhKxhKpdZCC28v8Hl0STonIudeNcqgTvGMA2uTiWTvmyFYU3ZqTJHoJuCA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-3.0.0.tgz", + "integrity": "sha512-mN9UolOs4WX09QkheU1ELkVy2WPnwonlO3XMdN8JF8fQqRVgVTR21xDbvEOUsbwz6Zwjq7ji9yzyjuXqDPalxg==", "dev": true }, "@ava/babel-preset-stage-4": { - "version": "2.0.0-beta.8", - "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-2.0.0-beta.8.tgz", - "integrity": "sha512-5z0YY5DXT0Cjaq1Wa7bt5OIGwMhq+M1Dhk1kG7c2d1AJyzoFCxvLWrAjzEnN660Ur5LKgNZUcNXqVMR9mzFdyQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-2.0.0.tgz", + "integrity": "sha512-OWqMYeTSZ16AfLx0Vn0Uj7tcu+uMRlbKmks+DVCFlln7vomVsOtst+Oz+HCussDSFGpE+30VtHAUHLy6pLDpHQ==", "dev": true, "requires": { - "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.51", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.51", - "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.51", - "@babel/plugin-transform-async-to-generator": "7.0.0-beta.51", - "@babel/plugin-transform-dotall-regex": "7.0.0-beta.51", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.51", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.51" + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-dotall-regex": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0" } }, "@ava/babel-preset-transform-test-files": { - "version": "4.0.0-beta.7", - "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-4.0.0-beta.7.tgz", - "integrity": "sha512-c9OjmbSueJlqY6hvb6TnZkaIdo1bvyKltKzElBW+RxP7SxmFUK8wOENMJ7TZD8RyOhifu0Ql70TfPR06THqDQw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-4.0.0.tgz", + "integrity": "sha512-V9hYHA/ZLb4I8imrrG8PT0mzgThjWWmahPV+mrQUZobVnsekBUDrf0JsfXVm4guS3binWxWn+MmQt+V81hTizA==", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "3.0.0-beta.7", - "babel-plugin-espower": "3.0.0-beta.1" + "@ava/babel-plugin-throws-helper": "^3.0.0", + "babel-plugin-espower": "^3.0.0" } }, "@ava/write-file-atomic": { @@ -41,432 +41,397 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "@babel/code-frame": { - "version": "7.0.0-beta.52", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.52.tgz", - "integrity": "sha1-GSSDv6DR5GfBAVccIQKcy3SvKAE=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "7.0.0-beta.52" + "@babel/highlight": "^7.0.0" } }, "@babel/core": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.51.tgz", - "integrity": "sha1-DlS9a2OHNrKuWTwxpH8JaeKyuW0=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helpers": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "convert-source-map": "1.5.1", - "debug": "3.1.0", - "json5": "0.5.1", - "lodash": "4.17.10", - "micromatch": "3.1.10", - "resolve": "1.8.1", - "semver": "5.5.0", - "source-map": "0.5.7" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.2.tgz", + "integrity": "sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.2", + "@babel/helpers": "^7.1.2", + "@babel/parser": "^7.1.2", + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.1.2", + "convert-source-map": "^1.1.0", + "debug": "^3.1.0", + "json5": "^0.5.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "@babel/highlight": "7.0.0-beta.51" + "ms": "^2.1.1" } }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true } } }, "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.3.tgz", + "integrity": "sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "@babel/types": "^7.1.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.51.tgz", - "integrity": "sha1-OM95IL9fM4oif3VOKGtvut7gS1g=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.51" + "@babel/types": "^7.0.0" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.51.tgz", - "integrity": "sha1-ITP//j4vcVkeQhR7lHKRyirTkjc=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.51.tgz", - "integrity": "sha1-mHUzKti11cmC+kgcuCtzFwPyzS0=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", "dev": true, "requires": { - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.51" + "@babel/types": "^7.0.0" } }, "@babel/helper-module-imports": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.51.tgz", - "integrity": "sha1-zgBCgEX7t9XrwOp7+DV4nxU2arI=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" + "@babel/types": "^7.0.0" } }, "@babel/helper-module-transforms": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.51.tgz", - "integrity": "sha1-E68MjuQfJ3dDyPxD1EQxXbIyb3M=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", + "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0-beta.51", - "@babel/helper-simple-access": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.51.tgz", - "integrity": "sha1-D2pfK20cZERBP4+rYJQNebY8IDE=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", "dev": true }, "@babel/helper-regex": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.51.tgz", - "integrity": "sha1-mXIqPAxwRZavsSMoSwqIihoAPYI=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.51.tgz", - "integrity": "sha1-DtxX4F3LXd4qC27m+NAmGYLe8l8=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.51", - "@babel/helper-wrap-function": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-simple-access": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.51.tgz", - "integrity": "sha1-ydf+zYShgdUKOvzEIvyUqWi+MFA=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", "dev": true, "requires": { - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.51" + "@babel/types": "^7.0.0" } }, "@babel/helper-wrap-function": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.51.tgz", - "integrity": "sha1-bFFvsEQQmWTuAxwiUAqDAxOGL7E=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz", + "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==", "dev": true, "requires": { - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helpers": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.51.tgz", - "integrity": "sha1-lScr4qtGNNaCBCX4klAxqSiRg5c=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.2.tgz", + "integrity": "sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA==", "dev": true, "requires": { - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.1.2" } }, "@babel/highlight": { - "version": "7.0.0-beta.52", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.52.tgz", - "integrity": "sha1-7ySTFDLwYVXnvDnNuKaze0oos9A=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.3.tgz", + "integrity": "sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.51.tgz", - "integrity": "sha1-99aS+Uakp/ynjkM2QHoAvq+KTeo=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz", + "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.51", - "@babel/plugin-syntax-async-generators": "7.0.0-beta.51" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.0.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.51.tgz", - "integrity": "sha1-W8Rp5ebRuEpdYEa1npDKAWwghtY=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz", + "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.51" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.51.tgz", - "integrity": "sha1-PsxtKRnVLJTL+uhiXaM1ghAvs9Y=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", + "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.51" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.51.tgz", - "integrity": "sha1-aSGvHcPaD87d4KYQc+7Hl7jKpwc=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz", + "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.51.tgz", - "integrity": "sha1-bVehGcHwZMRY5FutRb7wqD7RDAA=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz", + "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.51.tgz", - "integrity": "sha1-ziZ1cgy0EkjCZDNRXJDJS50Bpv0=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", + "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.51.tgz", - "integrity": "sha1-lFOFBVoubTVmv1WvEnyNclzToXM=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", + "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0-beta.51", - "@babel/helper-plugin-utils": "7.0.0-beta.51", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.51" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.51.tgz", - "integrity": "sha1-mAVYoeX34ohQ9f/eIEBCkeKqM/s=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz", + "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.51", - "@babel/helper-regex": "7.0.0-beta.51", - "regexpu-core": "4.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.51.tgz", - "integrity": "sha1-BLTj5As3AREt1u2jliUTJ1eIH9Q=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz", + "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-beta.51", - "@babel/helper-plugin-utils": "7.0.0-beta.51" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.51.tgz", - "integrity": "sha1-QDj54VJE4QkAy4n1t5bQUPHrGVs=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz", + "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "7.0.0-beta.51", - "@babel/helper-plugin-utils": "7.0.0-beta.51", - "@babel/helper-simple-access": "7.0.0-beta.51" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" } }, "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", + "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - } + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.2", + "@babel/types": "^7.1.2" } }, "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.4.tgz", + "integrity": "sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.3", + "@babel/types": "^7.1.3", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" }, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "ms": "^2.1.1" } } } }, "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.3.tgz", + "integrity": "sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" } }, "@concordance/react": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", - "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@concordance/react/-/react-2.0.0.tgz", + "integrity": "sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==", "dev": true, "requires": { - "arrify": "1.0.1" + "arrify": "^1.0.1" } }, "@types/estree": { @@ -476,51 +441,42 @@ "dev": true }, "@types/node": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", - "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", + "version": "10.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.2.tgz", + "integrity": "sha512-53ElVDSnZeFUUFIYzI8WLQ25IhWzb6vbddNp8UHlXQyU0ET2RhV5zg0NfubzU7iNMh5bBXb0htCzfvrSVNgzaQ==", "dev": true }, "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz", + "integrity": "sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg==", "dev": true }, "acorn-jsx": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", - "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", - "dev": true, - "requires": { - "acorn": "5.7.1" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.0.tgz", + "integrity": "sha512-XkB50fn0MURDyww9+UYL3c1yLbOBz0ZFvrdYlGB8l+Ije1oSC75qAqrzSPjYQbdnQUzhlUGNKuesryAv0gxZOg==", + "dev": true }, "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", + "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "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-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -530,9 +486,9 @@ "dev": true }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -541,7 +497,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -550,8 +506,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "argparse": { @@ -560,7 +516,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -599,7 +555,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -633,106 +589,106 @@ "dev": true }, "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true - }, - "auto-bind": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.1.tgz", - "integrity": "sha512-/W9yj1yKmBLwpexwAujeD9YHwYmRuWFGV8HWE7smQab797VeHa4/cnE2NFeDhA+E+5e/OGBI8763EhLjfZ/MXA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "ava": { - "version": "1.0.0-beta.6", - "resolved": "https://registry.npmjs.org/ava/-/ava-1.0.0-beta.6.tgz", - "integrity": "sha512-QHP8MSrmJYmxW8n0LTNDWLHuW4ck2+0BJZeScxZtC/0c6w39Uq7s+YNpOh8qOE53XQZUUxDqvwWwYP9TGK4rag==", - "dev": true, - "requires": { - "@ava/babel-preset-stage-4": "2.0.0-beta.8", - "@ava/babel-preset-transform-test-files": "4.0.0-beta.7", - "@ava/write-file-atomic": "2.2.0", - "@babel/core": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/plugin-syntax-async-generators": "7.0.0-beta.51", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.51", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.51", - "@concordance/react": "1.0.0", - "ansi-escapes": "3.1.0", - "ansi-styles": "3.2.1", - "arr-flatten": "1.1.0", - "array-union": "1.0.2", - "array-uniq": "2.0.0", - "arrify": "1.0.1", - "auto-bind": "1.2.1", - "bluebird": "3.5.1", - "chalk": "2.4.1", - "chokidar": "2.0.4", - "clean-stack": "1.3.0", - "clean-yaml-object": "0.1.0", - "cli-cursor": "2.1.0", - "cli-truncate": "1.1.0", - "co-with-promise": "4.6.0", - "code-excerpt": "2.1.1", - "common-path-prefix": "1.0.0", - "concordance": "3.0.0", - "convert-source-map": "1.5.1", - "currently-unhandled": "0.4.1", - "debug": "3.1.0", - "del": "3.0.0", - "dot-prop": "4.2.0", - "emittery": "0.3.0", - "empower-core": "0.6.2", - "equal-length": "1.0.1", - "escape-string-regexp": "1.0.5", - "esm": "3.0.71", - "figures": "2.0.0", - "get-port": "3.2.0", - "globby": "7.1.1", - "ignore-by-default": "1.0.1", - "import-local": "1.0.0", - "indent-string": "3.2.0", - "is-ci": "1.1.0", - "is-error": "2.2.1", - "is-generator-fn": "1.0.0", - "is-observable": "1.1.0", - "is-plain-object": "2.0.4", - "is-promise": "2.1.0", - "lodash.clone": "4.5.0", - "lodash.clonedeep": "4.5.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.debounce": "4.0.8", - "lodash.difference": "4.5.0", - "lodash.flatten": "4.4.0", - "loud-rejection": "1.6.0", - "make-dir": "1.3.0", - "matcher": "1.1.1", - "md5-hex": "2.0.0", - "meow": "5.0.0", - "ms": "2.1.1", - "multimatch": "2.1.0", - "observable-to-promise": "0.5.0", - "ora": "2.1.0", - "package-hash": "2.0.0", - "pkg-conf": "2.1.0", - "plur": "3.0.1", - "pretty-ms": "3.2.0", - "require-precompiled": "0.1.0", - "resolve-cwd": "2.0.0", - "slash": "2.0.0", - "source-map-support": "0.5.6", - "stack-utils": "1.0.1", - "strip-ansi": "4.0.0", - "strip-bom-buf": "1.0.0", - "supertap": "1.0.0", - "supports-color": "5.4.0", - "trim-off-newlines": "1.0.1", - "trim-right": "1.0.1", - "unique-temp-dir": "1.0.0", - "update-notifier": "2.5.0" + "version": "1.0.0-rc.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-1.0.0-rc.1.tgz", + "integrity": "sha512-tyHTMP7frwiewEvRUON4ikDneTg56981bnXzJe882sgL0BVxvUPH8jdiKKOtzZPZncGaTA/YXyDzYhjV71YRCg==", + "dev": true, + "requires": { + "@ava/babel-preset-stage-4": "^2.0.0", + "@ava/babel-preset-transform-test-files": "^4.0.0", + "@ava/write-file-atomic": "^2.2.0", + "@babel/core": "^7.1.2", + "@babel/generator": "^7.1.3", + "@babel/plugin-syntax-async-generators": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0", + "@concordance/react": "^2.0.0", + "ansi-escapes": "^3.1.0", + "ansi-styles": "^3.2.1", + "arr-flatten": "^1.1.0", + "array-union": "^1.0.1", + "array-uniq": "^2.0.0", + "arrify": "^1.0.0", + "bluebird": "^3.5.2", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "chunkd": "^1.0.0", + "ci-parallel-vars": "^1.0.0", + "clean-stack": "^1.1.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^2.1.0", + "cli-truncate": "^1.1.0", + "code-excerpt": "^2.1.1", + "common-path-prefix": "^1.0.0", + "concordance": "^4.0.0", + "convert-source-map": "^1.6.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.1.0", + "del": "^3.0.0", + "dot-prop": "^4.2.0", + "emittery": "^0.4.1", + "empower-core": "^1.2.0", + "equal-length": "^1.0.0", + "escape-string-regexp": "^1.0.5", + "esm": "^3.0.84", + "figures": "^2.0.0", + "find-up": "^3.0.0", + "get-port": "^4.0.0", + "globby": "^7.1.1", + "ignore-by-default": "^1.0.0", + "import-local": "^2.0.0", + "indent-string": "^3.2.0", + "is-ci": "^1.2.1", + "is-error": "^2.2.1", + "is-observable": "^1.1.0", + "is-plain-object": "^2.0.4", + "is-promise": "^2.1.0", + "lodash.clone": "^4.5.0", + "lodash.clonedeep": "^4.5.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.debounce": "^4.0.3", + "lodash.difference": "^4.3.0", + "lodash.flatten": "^4.2.0", + "loud-rejection": "^1.2.0", + "make-dir": "^1.3.0", + "matcher": "^1.1.1", + "md5-hex": "^2.0.0", + "meow": "^5.0.0", + "ms": "^2.1.1", + "multimatch": "^2.1.0", + "observable-to-promise": "^0.5.0", + "ora": "^3.0.0", + "package-hash": "^2.0.0", + "pkg-conf": "^2.1.0", + "plur": "^3.0.1", + "pretty-ms": "^4.0.0", + "require-precompiled": "^0.1.0", + "resolve-cwd": "^2.0.0", + "slash": "^2.0.0", + "source-map-support": "^0.5.9", + "stack-utils": "^1.0.1", + "strip-ansi": "^5.0.0", + "strip-bom-buf": "^1.0.0", + "supertap": "^1.0.0", + "supports-color": "^5.5.0", + "trim-off-newlines": "^1.0.1", + "trim-right": "^1.0.1", + "unique-temp-dir": "^1.0.0", + "update-notifier": "^2.5.0" }, "dependencies": { + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "dev": true + }, "array-uniq": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.0.0.tgz", @@ -745,12 +701,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -759,16 +715,16 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -776,97 +732,66 @@ } } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "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=", + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "pinkie": "2.0.4" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } } - } - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^4.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 } } }, "babel-plugin-espower": { - "version": "3.0.0-beta.1", - "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-3.0.0-beta.1.tgz", - "integrity": "sha512-mYTgLnrzk3zuevZWQZVIvu33cTleDiLKJe5LsdUEB5KDm4EI+u4GqcHahA5ZyOvKgTTJbpHXrGnz0v1cFYqnCQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-3.0.0.tgz", + "integrity": "sha512-f2IUz5kQyrwXnShcv7tvGxf76QkrEl00ENYgd6R0VMrz4xqlwBLZXFs5vse2vehs1Z+T2sXTP3UWX2QxMorzzw==", "dev": true, "requires": { - "@babel/generator": "7.0.0-beta.51", - "babylon": "7.0.0-beta.47", - "call-matcher": "1.0.1", - "core-js": "2.5.7", - "espower-location-detector": "1.0.0", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "call-matcher": "^1.0.0", + "core-js": "^2.0.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.1.1" } }, - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -879,13 +804,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -894,7 +819,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -903,7 +828,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -912,7 +837,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -921,23 +846,23 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true }, "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", "dev": true }, "boxen": { @@ -946,13 +871,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { @@ -961,7 +886,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -971,16 +896,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -989,15 +914,15 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "builtin-modules": { @@ -1012,27 +937,27 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "call-matcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", - "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.1.0.tgz", + "integrity": "sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw==", "dev": true, "requires": { - "core-js": "2.5.7", - "deep-equal": "1.0.1", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" } }, "call-signature": { @@ -1047,7 +972,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -1068,15 +993,15 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", "dev": true }, "chalk": { @@ -1085,15 +1010,15 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "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 }, "chokidar": { @@ -1102,24 +1027,37 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, + "chunkd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-1.0.0.tgz", + "integrity": "sha512-xx3Pb5VF9QaqCotolyZ1ywFBgyuJmu6+9dLiqBxgelEse9Xsr3yUlpoX3O4Oh11M00GT2kYMsRByTKIMJW2Lkg==", + "dev": true + }, "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.0.tgz", + "integrity": "sha512-u6dx20FBXm+apMi+5x7UVm6EH7BL1gc4XrcnQewjcB7HWRcor/V5qWc3RG2HwpgDJ26gIi2DSEu3B7sXynAw/g==", "dev": true }, "circular-json": { @@ -1134,10 +1072,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1146,7 +1084,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -1175,7 +1113,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -1190,8 +1128,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" } }, "cli-width": { @@ -1206,22 +1144,13 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, - "co-with-promise": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", - "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", - "dev": true, - "requires": { - "pinkie-promise": "1.0.0" - } - }, "code-excerpt": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-2.1.1.tgz", "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "1.0.2" + "convert-to-spaces": "^1.0.1" } }, "collection-visit": { @@ -1230,29 +1159,29 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "1.1.1" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "common-path-prefix": { @@ -1274,22 +1203,22 @@ "dev": true }, "concordance": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", - "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-4.0.0.tgz", + "integrity": "sha512-l0RFuB8RLfCS0Pt2Id39/oCPykE01pyxgAFypWTlaGRgvLkZrtczZ8atEHpTeEIW+zYWXTBuA9cCSeEOScxReQ==", "dev": true, "requires": { - "date-time": "2.1.0", - "esutils": "2.0.2", - "fast-diff": "1.1.2", - "function-name-support": "0.2.0", - "js-string-escape": "1.0.1", - "lodash.clonedeep": "4.5.0", - "lodash.flattendeep": "4.4.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "semver": "5.5.0", - "well-known-symbols": "1.0.0" + "date-time": "^2.1.0", + "esutils": "^2.0.2", + "fast-diff": "^1.1.2", + "js-string-escape": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flattendeep": "^4.4.0", + "lodash.islength": "^4.0.1", + "lodash.merge": "^4.6.1", + "md5-hex": "^2.0.0", + "semver": "^5.5.1", + "well-known-symbols": "^2.0.0" } }, "configstore": { @@ -1298,19 +1227,22 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } }, "convert-to-spaces": { "version": "1.0.2", @@ -1336,24 +1268,37 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cosmiconfig": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", + "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-random-string": { @@ -1368,7 +1313,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "date-time": { @@ -1377,24 +1322,16 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "1.0.0" + "time-zone": "^1.0.0" } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "^2.1.1" } }, "decamelize": { @@ -1409,8 +1346,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { "map-obj": { @@ -1451,17 +1388,7 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.4" - } - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "clone": "^1.0.2" } }, "define-property": { @@ -1470,8 +1397,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1480,7 +1407,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1489,7 +1416,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1498,9 +1425,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1511,44 +1438,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - }, - "dependencies": { - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "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.4" - } - } + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "dir-glob": { @@ -1557,8 +1453,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, "doctrine": { @@ -1567,7 +1463,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dot-prop": { @@ -1576,7 +1472,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "duplexer3": { @@ -1586,19 +1482,19 @@ "dev": true }, "emittery": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.3.0.tgz", - "integrity": "sha512-Bn/IFhx+BQIjTKn0vq7YWwo/yfTNeBZMqOGufY5FEV07tbwy5heDROFDCkMO2PcO5s7B9FDDXZc+JGgl6KzBOQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", + "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", "dev": true }, "empower-core": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz", - "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-1.2.0.tgz", + "integrity": "sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==", "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "equal-length": { @@ -1613,31 +1509,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "0.2.1" - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-arrayish": "^0.2.1" } }, "es6-error": { @@ -1653,71 +1525,49 @@ "dev": true }, "eslint": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.1.0.tgz", - "integrity": "sha512-DyH6JsoA1KzA5+OSWFjg56DFJT+sDLO0yokaPZ9qY0UEmYrPA1gEX/G1MnVkmRDsksG4H1foIVz2ZXXM3hHYvw==", - "dev": true, - "requires": { - "ajv": "6.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "5.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "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": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "string.prototype.matchall": "2.0.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.4", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - } + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.8.0.tgz", + "integrity": "sha512-Zok6Bru3y2JprqTNm14mgQ15YQu/SMDkWdnmHfFg770DIUlmMFd/gqqzCHekxzjHZJxXv3tmTpH0C1icaYJsRQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "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.1", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" } }, "eslint-scope": { @@ -1726,8 +1576,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -1743,9 +1593,9 @@ "dev": true }, "esm": { - "version": "3.0.71", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.0.71.tgz", - "integrity": "sha512-RAgyznLvtK17ld4IQBp+wEsVp3JAHb9Nnbu5fGevnFpKeKVPuh/WexdqUuanhez5s9NJD2+iEtM8LfFu0jL8Rw==", + "version": "3.0.84", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.0.84.tgz", + "integrity": "sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw==", "dev": true }, "espower-location-detector": { @@ -1754,26 +1604,35 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.4", - "path-is-absolute": "1.0.1", - "source-map": "0.5.7", - "xtend": "4.0.1" + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, "espree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", - "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "4.1.1" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "espurify": { @@ -1782,7 +1641,7 @@ "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "esquery": { @@ -1791,7 +1650,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -1800,7 +1659,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1821,13 +1680,26 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } } }, "expand-brackets": { @@ -1836,13 +1708,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -1860,7 +1732,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -1869,7 +1741,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -1886,8 +1758,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -1896,20 +1768,20 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extglob": { @@ -1918,14 +1790,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1934,7 +1806,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1943,7 +1815,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1952,7 +1824,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1961,7 +1833,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1970,9 +1842,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1984,9 +1856,9 @@ "dev": true }, "fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, "fast-json-stable-stringify": { @@ -2007,7 +1879,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2016,8 +1888,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "fill-range": { @@ -2026,10 +1898,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -2038,18 +1910,18 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "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": "2.0.0" + "locate-path": "^3.0.0" } }, "flat-cache": { @@ -2058,10 +1930,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "for-in": { @@ -2070,19 +1942,13 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -2091,17 +1957,534 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function-name-support": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", - "integrity": "sha1-VdO/qm6v1QWlD5vIH99XVkoLsHE=", - "dev": true + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": 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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } }, "functional-red-black-tree": { "version": "1.0.1", @@ -2110,14 +2493,20 @@ "dev": true }, "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.0.0.tgz", + "integrity": "sha512-Yy3yNI2oShgbaWg4cmPhWjkZfktEvpKI09aDX4PZzNtlU9obuYrX7x2mumQsrNxlF+Ls7OtMQW/u+X4s896bOQ==", + "dev": true + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, @@ -2128,17 +2517,17 @@ "dev": true }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -2147,8 +2536,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -2157,101 +2546,69 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "ini": "^1.3.4" } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "globals": { + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", + "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "function-bind": "1.1.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "got": { + "version": "6.7.1", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "graceful-fs": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.14.tgz", + "integrity": "sha512-ns/IGcSmmGNPP085JCheg0Nombh1QPvSCnlx+2V+byQWRQEIL4ZB5jXJMNIHOFVS1roi85HIi5Ka0h43iWXfcQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-value": { @@ -2260,9 +2617,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -2271,8 +2628,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -2281,7 +2638,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2292,19 +2649,82 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, + "husky": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-1.1.3.tgz", + "integrity": "sha512-6uc48B/A2Mqi65yeg37d/TPcTb0bZ1GTkMYOM0nXLOPuPaTRhXCeee80/noOrbavWd12x72Tusja7GJ5rzvV6g==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.6", + "execa": "^0.9.0", + "find-up": "^3.0.0", + "get-stdin": "^6.0.0", + "is-ci": "^1.2.1", + "pkg-dir": "^3.0.0", + "please-upgrade-node": "^3.1.1", + "read-pkg": "^4.0.1", + "run-node": "^1.0.0", + "slash": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", + "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + } + } + }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "ignore-by-default": { @@ -2320,13 +2740,13 @@ "dev": true }, "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -2347,8 +2767,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2364,33 +2784,24 @@ "dev": true }, "inquirer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", + "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "5.5.11", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "1.4.0" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "irregular-plurals": { @@ -2405,7 +2816,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2414,7 +2825,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2431,7 +2842,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -2442,26 +2853,20 @@ }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.5.0" } }, "is-data-descriptor": { @@ -2470,7 +2875,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2479,26 +2884,20 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -2509,6 +2908,12 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, "is-error": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", @@ -2533,19 +2938,13 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true - }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-installed-globally": { @@ -2554,8 +2953,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -2570,7 +2969,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2579,14 +2978,14 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, @@ -2596,7 +2995,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "1.2.0" + "symbol-observable": "^1.1.0" } }, "is-path-cwd": { @@ -2611,7 +3010,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -2620,7 +3019,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -2635,7 +3034,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-promise": { @@ -2650,15 +3049,6 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.3" - } - }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -2677,12 +3067,6 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, "is-url": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", @@ -2719,6 +3103,15 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "jest-worker": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", + "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "dev": true, + "requires": { + "merge-stream": "^1.0.1" + } + }, "js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -2726,9 +3119,9 @@ "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": { @@ -2737,8 +3130,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsesc": { @@ -2767,7 +3160,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -2783,7 +3176,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "levn": { @@ -2792,8 +3185,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -2802,10 +3195,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -2817,19 +3210,19 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "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": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "lodash.clone": { @@ -2874,6 +3267,12 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "lodash.islength": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.islength/-/lodash.islength-4.0.1.tgz", + "integrity": "sha1-Tpho1FJXXXUK/9NYyXlUPcIO1Xc=", + "dev": true + }, "lodash.merge": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", @@ -2886,16 +3285,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.1" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "3.0.2" + "chalk": "^2.0.1" } }, "loud-rejection": { @@ -2904,8 +3294,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { @@ -2920,8 +3310,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -2930,7 +3320,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -2959,7 +3349,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "matcher": { @@ -2968,7 +3358,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "md5-hex": { @@ -2977,7 +3367,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -2992,15 +3382,24 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" } }, "micromatch": { @@ -3009,19 +3408,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "mimic-fn": { @@ -3036,12 +3435,12 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, @@ -3051,8 +3450,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mixin-deep": { @@ -3061,8 +3460,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3071,14 +3470,14 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -3097,10 +3496,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { @@ -3109,23 +3508,30 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "dev": true, + "optional": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "natural-compare": { @@ -3135,9 +3541,9 @@ "dev": true }, "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "normalize-package-data": { @@ -3146,10 +3552,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -3158,7 +3564,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -3167,7 +3573,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "object-assign": { @@ -3182,9 +3588,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -3193,7 +3599,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { @@ -3202,24 +3608,18 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { @@ -3228,7 +3628,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "observable-to-promise": { @@ -3237,8 +3637,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "0.2.0", - "symbol-observable": "1.2.0" + "is-observable": "^0.2.0", + "symbol-observable": "^1.0.4" }, "dependencies": { "is-observable": { @@ -3247,7 +3647,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -3266,7 +3666,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -3275,7 +3675,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -3284,26 +3684,26 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "ora": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", - "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.0.0.tgz", + "integrity": "sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==", "dev": true, "requires": { - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "log-symbols": "2.2.0", - "strip-ansi": "4.0.0", - "wcwidth": "1.0.1" + "chalk": "^2.3.1", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.1.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^4.0.0", + "wcwidth": "^1.0.1" } }, "os-tmpdir": { @@ -3319,21 +3719,21 @@ "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "^2.0.0" } }, "p-map": { @@ -3343,9 +3743,9 @@ "dev": true }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, "package-hash": { @@ -3354,10 +3754,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" } }, "package-json": { @@ -3366,10 +3766,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, "parse-json": { @@ -3378,14 +3778,14 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parse-ms": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.0.0.tgz", + "integrity": "sha512-AddiXFSLLCqj+tCRJ9MrUtHZB4DWojO3tk0NVZ+g5MaMQHF2+p2ktqxuoXyPFLljz/aUK0Nfhd/uGWnhXVXEyA==", "dev": true }, "pascalcase": { @@ -3425,9 +3825,9 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { @@ -3436,7 +3836,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -3449,23 +3849,23 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=", + "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": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", + "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": "1.0.0" + "pinkie": "^2.0.0" } }, "pkg-conf": { @@ -3474,17 +3874,71 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", "dev": true, "requires": { - "find-up": "2.1.0" + "semver-compare": "^1.0.0" } }, "plur": { @@ -3493,7 +3947,7 @@ "integrity": "sha512-lJl0ojUynAM1BZn58Pas2WT/TXeC1+bS+UqShl0x9+49AtOn7DixRXVzaC8qrDOIxNDmepKnLuMTH7NQmkX0PA==", "dev": true, "requires": { - "irregular-plurals": "2.0.0" + "irregular-plurals": "^2.0.0" } }, "pluralize": { @@ -3521,12 +3975,12 @@ "dev": true }, "pretty-ms": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.2.0.tgz", - "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-4.0.0.tgz", + "integrity": "sha512-qG66ahoLCwpLXD09ZPHSCbUWYTqdosB7SMP4OffgTgL2PBKXMuUsrk5Bwg8q4qPkjTXsKBMr+YK3Ltd/6F9s/Q==", "dev": true, "requires": { - "parse-ms": "1.0.1" + "parse-ms": "^2.0.0" } }, "process-nextick-args": { @@ -3536,9 +3990,9 @@ "dev": true }, "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", + "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", "dev": true }, "pseudomap": { @@ -3565,15 +4019,15 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -3585,9 +4039,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -3596,35 +4050,79 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "redent": { @@ -3633,8 +4131,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "regenerate": { @@ -3649,7 +4147,7 @@ "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", "dev": true, "requires": { - "regenerate": "1.4.0" + "regenerate": "^1.4.0" } }, "regex-not": { @@ -3658,23 +4156,14 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", - "dev": true, - "requires": { - "define-properties": "1.1.2" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "regexpu-core": { @@ -3683,12 +4172,12 @@ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", "dev": true, "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.4.0", + "regjsparser": "^0.3.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" } }, "registry-auth-token": { @@ -3697,8 +4186,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -3707,7 +4196,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsgen": { @@ -3722,7 +4211,7 @@ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -3739,7 +4228,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "4.1.1" + "es6-error": "^4.0.1" } }, "remove-trailing-separator": { @@ -3749,9 +4238,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { @@ -3772,16 +4261,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - }, - "dependencies": { - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - } + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -3790,7 +4271,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-cwd": { @@ -3799,13 +4280,21 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } } }, "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, "resolve-url": { @@ -3820,8 +4309,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -3836,27 +4325,29 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "rollup": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.62.0.tgz", - "integrity": "sha512-mZS0aIGfYzuJySJD78znu9/hCJsNfBzg4lDuZGMj0hFVcYHt2evNRHv8aqiu9/w6z6Qn8AQoVl4iyEjDmisGeA==", + "version": "0.66.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz", + "integrity": "sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==", "dev": true, "requires": { "@types/estree": "0.0.39", - "@types/node": "10.5.2" + "@types/node": "*" } }, "rollup-plugin-terser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-1.0.1.tgz", - "integrity": "sha512-VC6chT7QnrV6JzdgkPE0hP/atRBxaa3CPbVXfZJ8nJLjcidSdWftOst098RasYRUTKxJWAgdaJN1+uiZM6iffA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-3.0.0.tgz", + "integrity": "sha512-Ed9zRD7OoCBnh0XGlEAJle5TCUsFXMLClwKzZWnS1zbNO4MelHjfCSdFZxCAdH70M40nhZ1nRrY2GZQJhSMcjA==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.52", - "terser": "3.7.7" + "@babel/code-frame": "^7.0.0", + "jest-worker": "^23.2.0", + "serialize-javascript": "^1.5.0", + "terser": "^3.8.2" } }, "run-async": { @@ -3865,24 +4356,22 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, + "run-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", + "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", + "dev": true + }, "rxjs": { - "version": "5.5.11", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", - "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "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 - } + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -3893,11 +4382,11 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -3907,9 +4396,15 @@ "dev": true }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, "semver-diff": { @@ -3918,19 +4413,19 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "serialize-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", "dev": true }, "set-value": { @@ -3939,10 +4434,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -3951,7 +4446,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3962,7 +4457,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -3989,7 +4484,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "slide": { @@ -4004,14 +4499,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -4029,7 +4524,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -4038,7 +4533,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -4046,6 +4541,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true } } }, @@ -4055,9 +4556,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -4066,7 +4567,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4075,7 +4576,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4084,7 +4585,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4093,9 +4594,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -4106,7 +4607,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -4115,15 +4616,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-resolve": { @@ -4132,29 +4633,21 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "source-map-url": { @@ -4164,19 +4657,19 @@ "dev": true }, "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, "spdx-expression-parse": { @@ -4185,14 +4678,14 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", + "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", "dev": true }, "split-string": { @@ -4201,7 +4694,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -4222,8 +4715,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -4232,7 +4725,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4243,21 +4736,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "string.prototype.matchall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz", - "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "regexp.prototype.flags": "1.2.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -4266,7 +4746,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -4275,15 +4755,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -4298,12 +4770,12 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.1" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, @@ -4325,28 +4797,20 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "1.0.1", - "indent-string": "3.2.0", - "js-yaml": "3.12.0", - "serialize-error": "2.1.0", - "strip-ansi": "4.0.0" + "arrify": "^1.0.1", + "indent-string": "^3.2.0", + "js-yaml": "^3.10.0", + "serialize-error": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - } + "has-flag": "^3.0.0" } }, "symbol-observable": { @@ -4356,17 +4820,15 @@ "dev": true }, "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", + "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", "dev": true, "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^6.5.3", + "lodash": "^4.17.10", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "term-size": { @@ -4375,26 +4837,18 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "terser": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.7.7.tgz", - "integrity": "sha512-RRLIxE7S52vSOI9cEbOaisgBd2y6MNgfg2ihUkidsFnuP1eDmZ79+lBWbyvgfFTAc/r8nSjL0k3cpZDDIYiYiA==", + "version": "3.10.9", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.10.9.tgz", + "integrity": "sha512-k9qTrqLmyhSFRvWFjMhKzaCT/xnfI7w/BeGOoZFl6lzj2oFzgyFMW7zCV9D22Ob/5miZXY0/qP1pJX7a8QUhIw==", "dev": true, "requires": { - "commander": "2.14.1", - "source-map": "0.6.1", - "source-map-support": "0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.6" } }, "text-table": { @@ -4405,7 +4859,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -4427,7 +4881,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { @@ -4442,7 +4896,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4451,7 +4905,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4462,10 +4916,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -4474,8 +4928,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "trim-newlines": { @@ -4496,13 +4950,19 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "uid2": { @@ -4523,8 +4983,8 @@ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.0.4" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, "unicode-match-property-value-ecmascript": { @@ -4545,10 +5005,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -4557,7 +5017,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -4566,10 +5026,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -4580,7 +5040,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unique-temp-dir": { @@ -4589,8 +5049,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "0.5.1", - "os-tmpdir": "1.0.2", + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", "uid2": "0.0.3" } }, @@ -4600,8 +5060,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -4610,9 +5070,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -4652,16 +5112,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "uri-js": { @@ -4670,7 +5130,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -4685,7 +5145,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "use": { @@ -4701,13 +5161,13 @@ "dev": true }, "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "wcwidth": { @@ -4716,13 +5176,13 @@ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "well-known-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", - "integrity": "sha1-c8eK6Bp3Jqj6WY4ogIAcixYiVRg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", "dev": true }, "which": { @@ -4731,16 +5191,16 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "wordwrap": { @@ -4761,7 +5221,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -4770,9 +5230,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "xdg-basedir": { @@ -4799,7 +5259,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } diff --git a/package.json b/package.json index d14b08c..bfb31e3 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,15 @@ }, "homepage": "https://amphiluke.github.io/potprox/", "devDependencies": { - "ava": "1.0.0-beta.6", - "eslint": "^5.1.0", - "rollup": "^0.62.0", - "rollup-plugin-terser": "^1.0.1" + "ava": "1.0.0-rc.1", + "eslint": "^5.8.0", + "husky": "^1.1.3", + "rollup": "^0.66.6", + "rollup-plugin-terser": "^3.0.0" + }, + "husky": { + "hooks": { + "pre-commit": "npm run lint" + } } } From e2ded90a290a0d497e8c32a5de56d981d2d60c28 Mon Sep 17 00:00:00 2001 From: Amphiluke Date: Sun, 4 Nov 2018 15:25:47 +0700 Subject: [PATCH 2/2] Make tree shaking possible for the potprox module --- .npmignore | 1 + README.md | 98 +++---- dist/potprox.js | 246 +++++++++--------- dist/potprox.min.js | 4 +- dist/potprox.min.mjs | 4 +- dist/potprox.mjs | 234 ++++++++--------- package-lock.json | 2 +- package.json | 2 +- src/messages.mjs | 11 + .../abstract-proto.mjs} | 24 +- src/potentials/buckingham.mjs | 26 +- src/potentials/lennard-jones.mjs | 22 +- src/potentials/morse.mjs | 26 +- src/potentials/rydberg.mjs | 26 +- src/potentials/varshni3.mjs | 26 +- src/potprox.mjs | 28 +- test/browser/test-global.html | 4 +- test/browser/test-module.html | 6 +- test/browser/worker.js | 4 +- test/helpers/potential-data.mjs | 2 +- test/potentials/buckingham-spec.mjs | 24 +- test/potentials/common-spec.mjs | 57 +++- test/potentials/lennard-jones-spec.mjs | 18 +- test/potentials/morse-spec.mjs | 24 +- test/potentials/rydberg-spec.mjs | 24 +- test/potentials/varshni3-spec.mjs | 24 +- test/potprox-spec.mjs | 11 +- test/utils-spec.mjs | 55 ---- 28 files changed, 525 insertions(+), 508 deletions(-) create mode 100644 src/messages.mjs rename src/{utils.mjs => potentials/abstract-proto.mjs} (67%) delete mode 100644 test/utils-spec.mjs diff --git a/.npmignore b/.npmignore index f43220f..1585fbf 100644 --- a/.npmignore +++ b/.npmignore @@ -1,6 +1,7 @@ scripts test ava.config.js +rollup.config.js .idea .babelrc diff --git a/README.md b/README.md index 966d3d9..3dc02bf 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,10 @@ Use the module in [environments with ES6 support](https://kangax.github.io/compa npm install potprox ``` +```javascript +let potprox = require("potprox"); +``` + The version for browsers (and web workers) is also available: check out the [dist directory](dist). **Browsers:** @@ -34,10 +38,16 @@ The version for browsers (and web workers) is also available: check out the [dis ``` -If you use ES modules, you may import the potprox module from the [potprox.min.mjs](dist/potprox.min.mjs) file. +If you use ES modules, you may import the potprox module from the [potprox.min.mjs](dist/potprox.min.mjs) file: + +```javascript +import * as potprox from "./dist/potprox.min.mjs"; +``` + +Importing only those potential classes you really need will allow module bundlers to perform “tree shaking” and exclude the rest unused code. ```javascript -import potprox from "./dist/potprox.min.mjs"; +import {Morse, Rydberg} from "./dist/potprox.min.mjs"; ``` **Web workers:** @@ -170,6 +180,10 @@ All the classes in the `potprox` object have a few members listed below. The *static* read-only property containing the name of the potential class (e.g. `"LennardJones"`, `"Morse"`, `"Buckingham"` etc.). +```javascript +console.log(potprox.LennardJones.type); // => "LennardJones" +``` + #### `from(data [, settings])` The *static* method `from` creates an instance of the specific class with potential parameters obtained via the least squares approximation procedure. @@ -206,46 +220,9 @@ let varshni = new potprox.Varshni3({d0: 0.0368, r0: 5.389, b: 0.0597}); console.log(varshni.at(6.0)); // => -0.03069928686072358 ``` -#### `toJSON()` +#### `points([options])` -Returns an object containing information on the potential. This information is enough to restore the potential instance form a serializable JSON object (see the [Tips](#tips) section for details). - -```javascript -let lennardjones = new potprox.LennardJones({epsilon: 0.041, sigma: 4.5}); -console.log(lennardjones.toJSON()); // => {type: "LennardJones", epsilon: 0.041, sigma: 4.5} - -let buckingham = new potprox.Buckingham({d0: 0.0360, r0: 5.298, a: 4.332}); -console.log(buckingham.toJSON()); // => {type: "Buckingham", d0: 0.036, r0: 5.298, a: 4.332} - -let morse = new potprox.Morse({d0: 0.0368, r0: 5.316, a: 0.867}); -console.log(morse.toJSON()); // => {type: "Morse", d0: 0.0368, r0: 5.316, a: 0.867} - -let rydberg = new potprox.Rydberg({d0: 0.0368, r0: 5.350, b: 6.415}); -console.log(rydberg.toJSON()); // => {type: "Rydberg", d0: 0.0368, r0: 5.350, b: 6.415} - -let varshni = new potprox.Varshni3({d0: 0.0368, r0: 5.389, b: 0.0597}); -console.log(varshni.toJSON()); // => {type: "Varshni3", d0: 0.0368, r0: 5.389, b: 0.0597} -``` - -Note that the potential parameters are also available as direct instance properties, and you may change them at any time. - -### Extras - -Some additional/helper/extra functionality implemented in the potprox module is available through the `potprox.utils` object. Currently, this functionality includes the following: - -#### `potprox.utils.rSqr(data, potential)` - -Use the method `potprox.utils.rSqr()` to calculate the [coefficient of determination](https://en.wikipedia.org/wiki/Coefficient_of_determination) _R²_, a measure of goodness of fit. The method takes two arguments: the initial data array (same as that passed to the [`from` method](#fromdata--settings)), and the approximating potential instance. - -```javascript -let morse = potprox.Morse.from(data); -let rSqr = potprox.utils.rSqr(data, morse); -console.log(`Coefficient of determination = ${rSqr}`); -``` - -#### `potprox.utils.points(potential [, options])` - -The method `potprox.utils.points()` can be used to generate points of a potential function in the given distance range. The method can take one or two arguments and returns a [Generator object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator) which you may iterate over. The first parameter of the method is the approximating potential instance, and the second one (optional) is the configuration object. The following configuration options are available (each of them is optional): +The method `points` can be used to generate points of a potential function in the given distance range. The method takes one optional argument and returns a [Generator object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator) which you may iterate over. The optional parameter of the method is the configuration object. The following configuration options are available (each of them is optional): * `start` — starting interatomic distance to generate points from (by default it’s set to a half of the equilibrium distance); * `end` — end interatomic distance where to stop (by default it’s double of the equilibrium distance); @@ -255,7 +232,7 @@ The method `potprox.utils.points()` can be used to generate points of a potentia let morse = new potprox.Morse({d0: 0.0368, r0: 5.316, a: 0.867}); // Generate 50 points starting from r = r0/2 and finishing at r = 2*r0 -for (let {r, e, index} of potprox.utils.points(morse)) { +for (let {r, e, index} of morse.points()) { console.log(`${index + 1}. r = ${r.toFixed(4)} nm; E = ${e.toFixed(3)} eV`); } @@ -264,12 +241,12 @@ let start = 5.0; let end = 8.5; let pointCount = 30; let step = (end - start) / (pointCount - 1); -for (let {r, e, index} of potprox.utils.points(morse, {start, end, step})) { +for (let {r, e, index} of morse.points({start, end, step})) { console.log(`${index + 1}. r = ${r.toFixed(4)} nm; E = ${e.toFixed(3)} eV`); } // Generate points infinitely until the given energy threshold is reached -for (let {r, e, index} of potprox.utils.points(morse, {start: 5.0, end: Infinity, step: 0.1})) { +for (let {r, e, index} of morse.points({start: 5.0, end: Infinity, step: 0.1})) { console.log(`${index + 1}. r = ${r.toFixed(4)} nm; E = ${e.toFixed(5)} eV`); if (e > -0.001) { break; @@ -277,6 +254,39 @@ for (let {r, e, index} of potprox.utils.points(morse, {start: 5.0, end: Infinity } ``` +#### `rSqr(data)` + +Use the method `rSqr` to calculate the [coefficient of determination](https://en.wikipedia.org/wiki/Coefficient_of_determination) _R²_, a measure of goodness of fit. The method takes the initial data array as an argument (same as that passed to the [`from` method](#fromdata--settings)). + +```javascript +let morse = potprox.Morse.from(data); +let rSqr = morse.rSqr(data); +console.log(`Coefficient of determination = ${rSqr}`); +``` + +#### `toJSON()` + +Returns an object containing information on the potential. This information is enough to restore the potential instance form a serializable JSON object (see the [Tips](#tips) section for details). + +```javascript +let lennardjones = new potprox.LennardJones({epsilon: 0.041, sigma: 4.5}); +console.log(lennardjones.toJSON()); // => {type: "LennardJones", epsilon: 0.041, sigma: 4.5} + +let buckingham = new potprox.Buckingham({d0: 0.0360, r0: 5.298, a: 4.332}); +console.log(buckingham.toJSON()); // => {type: "Buckingham", d0: 0.036, r0: 5.298, a: 4.332} + +let morse = new potprox.Morse({d0: 0.0368, r0: 5.316, a: 0.867}); +console.log(morse.toJSON()); // => {type: "Morse", d0: 0.0368, r0: 5.316, a: 0.867} + +let rydberg = new potprox.Rydberg({d0: 0.0368, r0: 5.350, b: 6.415}); +console.log(rydberg.toJSON()); // => {type: "Rydberg", d0: 0.0368, r0: 5.350, b: 6.415} + +let varshni = new potprox.Varshni3({d0: 0.0368, r0: 5.389, b: 0.0597}); +console.log(varshni.toJSON()); // => {type: "Varshni3", d0: 0.0368, r0: 5.389, b: 0.0597} +``` + +Note that the potential parameters are also available as direct instance properties, and you may change them at any time. + ## Tips The overridden method `toJSON()` allows the instances of the potprox potential classes to be easily serialized to a JSON string, and restored from the JSON string later on. diff --git a/dist/potprox.js b/dist/potprox.js index 1f23c23..770e908 100644 --- a/dist/potprox.js +++ b/dist/potprox.js @@ -1,17 +1,75 @@ /*! -potprox v0.6.0 +potprox v0.7.0 https://amphiluke.github.io/potprox/ */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.potprox = factory()); -}(this, (function () { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.potprox = {}))); +}(this, (function (exports) { 'use strict'; + + class AbstractProto { + /** + * Calculate the coefficient of determination to measure the goodness of fit + * @param {Array.<{r: Number, e: Number}>} data - Experimental/ab initio data + * @returns {Number} + * @see https://en.wikipedia.org/wiki/Coefficient_of_determination + */ + rSqr(data) { + let avg = 0; // the mean of the experimental/ab initio data + let ssRes = 0; // the residual sum of squares (RSS) + for (let {r, e} of data) { + avg += e; + let residual = e - this.at(r); + ssRes += residual * residual; + } + avg /= data.length; + let ssTot = 0; // the total sum of squares + for (let {e} of data) { + let diff = e - avg; + ssTot += diff * diff; + } + return 1 - ssRes / ssTot; + } + + /** + * Generate points of the potential curve + * @param {Object} [options] - Configuration options + * @param {Number} [options.start=this.r0/2] - Starting interatomic distance + * @param {Number} [options.end=this.r0*2] - End interatomic distance + * @param {Number} [options.step=(end-start)/49] - Step for point generation (defaults make 50 points) + * @returns {Generator<{r: Number, e: Number}>} + */ + * points({start = this.r0 / 2, end = this.r0 * 2, step = (end - start) / 49} = {}) { + let i = 0; + let r = start; + let direction = Math.sign(end - start); // when end < start, iteration is backward + step = Math.abs(step) * direction; // the user may specify step as signed or not + while ((end - r) * direction >= 0) { + yield {r, e: this.at(r), index: i}; + r = start + step * ++i; + } + return {r: end, e: this.at(end)}; + } + } + + const lackOfData = "Too little points. Approximation is impossible"; + + const arrExpected = "Approximated data must be an array of points"; + + const numExpected = (param) => `The “${param}” parameter must be a finite number`; + + const greaterThan = (param, min = 0) => `The “${param}” parameter must be greater than ${min}`; + + const distType = "Distance must be a number"; + + const distRange = "Distance mustn’t be less than 0"; let instanceData = new WeakMap(); - class LennardJones { + class LennardJones extends AbstractProto { constructor({epsilon = 1, sigma = 1} = {}) { + super(); instanceData.set(this, {}); this.epsilon = epsilon; this.sigma = sigma; @@ -36,10 +94,10 @@ https://amphiluke.github.io/potprox/ */ static from(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } let c1 = 0, c2 = 0, c3 = 0, c4 = 0, c5 = 0; for (let {r, e} of data) { @@ -61,10 +119,10 @@ https://amphiluke.github.io/potprox/ } set epsilon(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'epsilon' parameter should be a finite number"); + throw new TypeError(numExpected("epsilon")); } if (value <= 0) { - throw new RangeError("The 'epsilon' parameter should be greater than zero"); + throw new RangeError(greaterThan("epsilon")); } instanceData.get(this).epsilon = value; } @@ -74,10 +132,10 @@ https://amphiluke.github.io/potprox/ } set sigma(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'sigma' parameter should be a finite number"); + throw new TypeError(numExpected("sigma")); } if (value <= 0) { - throw new RangeError("The 'sigma' parameter should be greater than zero"); + throw new RangeError(greaterThan("sigma")); } instanceData.get(this).sigma = value; } @@ -96,10 +154,10 @@ https://amphiluke.github.io/potprox/ */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {epsilon, sigma} = this; return 4 * epsilon * (Math.pow(sigma / r, 12) - Math.pow(sigma / r, 6)); @@ -112,8 +170,9 @@ https://amphiluke.github.io/potprox/ let instanceData$1 = new WeakMap(); - class Buckingham { + class Buckingham extends AbstractProto { constructor({d0 = 1, r0 = 1, a = 2} = {}) { + super(); instanceData$1.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -140,10 +199,10 @@ https://amphiluke.github.io/potprox/ */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } data = data.slice().sort((pt1, pt2) => pt1.r - pt2.r); let d0 = Number.POSITIVE_INFINITY; @@ -244,10 +303,10 @@ https://amphiluke.github.io/potprox/ } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$1.get(this).d0 = value; } @@ -257,10 +316,10 @@ https://amphiluke.github.io/potprox/ } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$1.get(this).r0 = value; } @@ -270,10 +329,10 @@ https://amphiluke.github.io/potprox/ } set a(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'a' parameter should be a finite number"); + throw new TypeError(numExpected("a")); } if (value <= 0) { - throw new RangeError("The 'a' parameter should be greater than zero"); + throw new RangeError(greaterThan("a")); } instanceData$1.get(this).a = value; } @@ -285,10 +344,10 @@ https://amphiluke.github.io/potprox/ */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, a} = this; return d0 / (a - 6) * (6 * Math.exp(a * (1 - r / r0)) - a * Math.pow(r0 / r, 6)); @@ -301,8 +360,9 @@ https://amphiluke.github.io/potprox/ let instanceData$2 = new WeakMap(); - class Morse { + class Morse extends AbstractProto { constructor({d0 = 1, r0 = 1, a = 1} = {}) { + super(); instanceData$2.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -329,10 +389,10 @@ https://amphiluke.github.io/potprox/ */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } let d0 = Number.POSITIVE_INFINITY; let r0 = 1; @@ -426,10 +486,10 @@ https://amphiluke.github.io/potprox/ } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$2.get(this).d0 = value; } @@ -439,10 +499,10 @@ https://amphiluke.github.io/potprox/ } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$2.get(this).r0 = value; } @@ -452,10 +512,10 @@ https://amphiluke.github.io/potprox/ } set a(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'a' parameter should be a finite number"); + throw new TypeError(numExpected("a")); } if (value <= 0) { - throw new RangeError("The 'a' parameter should be greater than zero"); + throw new RangeError(greaterThan("a")); } instanceData$2.get(this).a = value; } @@ -467,10 +527,10 @@ https://amphiluke.github.io/potprox/ */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, a} = this; let factor = 1 - Math.exp(a * (r0 - r)); @@ -484,8 +544,9 @@ https://amphiluke.github.io/potprox/ let instanceData$3 = new WeakMap(); - class Rydberg { + class Rydberg extends AbstractProto { constructor({d0 = 1, r0 = 1, b = 2} = {}) { + super(); instanceData$3.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -512,10 +573,10 @@ https://amphiluke.github.io/potprox/ */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } data = data.slice().sort((pt1, pt2) => pt1.r - pt2.r); let d0 = Number.POSITIVE_INFINITY; @@ -610,10 +671,10 @@ https://amphiluke.github.io/potprox/ } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$3.get(this).d0 = value; } @@ -623,10 +684,10 @@ https://amphiluke.github.io/potprox/ } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$3.get(this).r0 = value; } @@ -636,10 +697,10 @@ https://amphiluke.github.io/potprox/ } set b(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'b' parameter should be a finite number"); + throw new TypeError(numExpected("b")); } if (value <= 1) { - throw new RangeError("The 'b' parameter should be greater than 1"); + throw new RangeError(greaterThan("b", 1)); } instanceData$3.get(this).b = value; } @@ -651,10 +712,10 @@ https://amphiluke.github.io/potprox/ */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, b} = this; let factor = b * (r - r0) / r0; @@ -668,8 +729,9 @@ https://amphiluke.github.io/potprox/ let instanceData$4 = new WeakMap(); - class Varshni3 { + class Varshni3 extends AbstractProto { constructor({d0 = 1, r0 = 1, b = 1} = {}) { + super(); instanceData$4.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -696,10 +758,10 @@ https://amphiluke.github.io/potprox/ */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } let d0 = Number.POSITIVE_INFINITY; let r0 = 1; @@ -793,10 +855,10 @@ https://amphiluke.github.io/potprox/ } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$4.get(this).d0 = value; } @@ -806,10 +868,10 @@ https://amphiluke.github.io/potprox/ } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$4.get(this).r0 = value; } @@ -819,10 +881,10 @@ https://amphiluke.github.io/potprox/ } set b(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'b' parameter should be a finite number"); + throw new TypeError(numExpected("b")); } if (value <= 0) { - throw new RangeError("The 'b' parameter should be greater than zero"); + throw new RangeError(greaterThan("b")); } instanceData$4.get(this).b = value; } @@ -834,10 +896,10 @@ https://amphiluke.github.io/potprox/ */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, b} = this; let factor = 1 - r0 / r * Math.exp(b * (r0 * r0 - r * r)); @@ -849,68 +911,12 @@ https://amphiluke.github.io/potprox/ } } - let utils = { - /** - * Calculate the coefficient of determination to measure the goodness of fit - * @param {Array.<{r: Number, e: Number}>} data - Experimental/ab initio data - * @param {Object} potential - Approximating potential instance - * @returns {Number} - * @see https://en.wikipedia.org/wiki/Coefficient_of_determination - */ - rSqr(data, potential) { - let avg = 0; // the mean of the experimental/ab initio data - let ssRes = 0; // the residual sum of squares (RSS) - for (let {r, e} of data) { - avg += e; - let residual = e - potential.at(r); - ssRes += residual * residual; - } - avg /= data.length; - let ssTot = 0; // the total sum of squares - for (let {e} of data) { - let diff = e - avg; - ssTot += diff * diff; - } - return 1 - ssRes / ssTot; - }, - - /** - * Generate points of the potential curve - * @param {Object} potential - Approximating potential instance - * @param {Object} [options] - Configuration options - * @param {Number} [options.start=potential.r0/2] - Starting interatomic distance - * @param {Number} [options.end=potential.r0*2] - End interatomic distance - * @param {Number} [options.step=(end-start)/49] - Step for point generation (defaults make 50 points) - * @returns {Generator<{r: Number, e: Number}>} - */ - * points(potential, {start = potential.r0 / 2, end = potential.r0 * 2, step = (end - start) / 49} = {}) { - let i = 0; - let r = start; - let direction = Math.sign(end - start); // when end < start, iteration is backward - step = Math.abs(step) * direction; // the user may specify step as signed or not - while ((end - r) * direction >= 0) { - yield {r, e: potential.at(r), index: i}; - r = start + step * ++i; - } - return {r: end, e: potential.at(end)}; - } - }; - - let potprox = Object.create(null); - potprox[LennardJones.type] = LennardJones; - potprox[Buckingham.type] = Buckingham; - potprox[Morse.type] = Morse; - potprox[Rydberg.type] = Rydberg; - potprox[Varshni3.type] = Varshni3; - - // Other properties of the potprox object are non-enumerable to avoid mixing them with - // potential classes when using such methods as Object.keys, Object.values etc. - - Object.defineProperty(potprox, "utils", { - configurable: true, - value: utils - }); + exports.LennardJones = LennardJones; + exports.Buckingham = Buckingham; + exports.Morse = Morse; + exports.Rydberg = Rydberg; + exports.Varshni3 = Varshni3; - return potprox; + Object.defineProperty(exports, '__esModule', { value: true }); }))); diff --git a/dist/potprox.min.js b/dist/potprox.min.js index 9f8f150..5c70bba 100644 --- a/dist/potprox.min.js +++ b/dist/potprox.min.js @@ -1,5 +1,5 @@ /*! -potprox v0.6.0 +potprox v0.7.0 https://amphiluke.github.io/potprox/ */ -!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):e.potprox=r()}(this,function(){"use strict";let e=new WeakMap;class r{constructor({epsilon:r=1,sigma:t=1}={}){e.set(this,{}),this.epsilon=r,this.sigma=t}static get type(){return"LennardJones"}static from(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");let t=0,a=0,o=0,i=0,s=0;for(let{r:r,e:n}of e)t+=Math.pow(r,-24),a+=Math.pow(r,-18),o+=n*Math.pow(r,-12),i+=Math.pow(r,-12),s+=n*Math.pow(r,-6);let n=(s-a*o/t)/(i-a*a/t),h=(o-a*n)/t,l=Math.pow(-h/n,1/6),p=h/(4*Math.pow(l,12));return new r({epsilon:p,sigma:l})}get epsilon(){return e.get(this).epsilon}set epsilon(r){if(!Number.isFinite(r))throw new TypeError("The 'epsilon' parameter should be a finite number");if(r<=0)throw new RangeError("The 'epsilon' parameter should be greater than zero");e.get(this).epsilon=r}get sigma(){return e.get(this).sigma}set sigma(r){if(!Number.isFinite(r))throw new TypeError("The 'sigma' parameter should be a finite number");if(r<=0)throw new RangeError("The 'sigma' parameter should be greater than zero");e.get(this).sigma=r}get r0(){return 1.122462048309373*this.sigma}set r0(e){this.sigma=e/1.122462048309373}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{epsilon:r,sigma:t}=this;return 4*r*(Math.pow(t/e,12)-Math.pow(t/e,6))}toJSON(){return{type:r.type,epsilon:this.epsilon,sigma:this.sigma}}}let t=new WeakMap;class a{constructor({d0:e=1,r0:r=1,a:a=2}={}){t.set(this,{}),this.d0=e,this.r0=r,this.a=a}static get type(){return"Buckingham"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");e=e.slice().sort((e,r)=>e.r-r.r);let r,t,o,i=Number.POSITIVE_INFINITY,s=1;for(let{r:r,e:t}of e)t=s||r.e<0||t.e<0));a++);if(r&&t&&r.r0){let r=1-e/s,t=Math.pow(s/e,6)/6;o=(t-r-Math.sqrt(t*t-2*r*t-r*r))/(r*r),Number.isFinite(o)||(o=void 0)}}return new a({d0:i,r0:s,a:o})}static from(e,{d0Conv:r=.001,r0Conv:t=.001,aConv:a=.001}={}){let o=this.fastFrom(e),{d0:i,r0:s,a:n}=o;const h=i*r,l=s*t,p=n*a;let u,b,d;do{let r=0,t=0,a=0,o=0,h=0,l=0,p=0,f=0,w=0;for(let{r:u,e:b}of e){let e=n*Math.pow(s/u,6),d=Math.exp(n*(1-u/s)),m=i/(n-6)*(6*d-e),g=m/i,y=i/(n-6)*(6*d*n*u/(s*s)-6*e/s),T=-i/((n-6)*(n-6))*(6*d-e)+i/(n-6)*(6*(1-u/s)*d-e/n);r+=g*g,t+=y*g,a+=T*g,o+=(m-b)*g,h+=y*y,l+=T*y,p+=(m-b)*y,f+=T*T,w+=(m-b)*T}i+=u=(-t*(b=((a-r*l/t)*(d=-(o-r*p/t-(t-r*h/t)/(t-r*l/a)*(o-r*w/a))/(a-r*l/t-(a-r*f/a)*(t-r*h/t)/(t-r*l/a)))+(o-r*p/t))/(r*h/t-t))-a*d-o)/r,s+=b,n+=d}while(Math.abs(u)>h&&Math.abs(b)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.a=n,o}get d0(){return t.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");t.get(this).d0=e}get r0(){return t.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");t.get(this).r0=e}get a(){return t.get(this).a}set a(e){if(!Number.isFinite(e))throw new TypeError("The 'a' parameter should be a finite number");if(e<=0)throw new RangeError("The 'a' parameter should be greater than zero");t.get(this).a=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,a:a}=this;return r/(a-6)*(6*Math.exp(a*(1-e/t))-a*Math.pow(t/e,6))}toJSON(){return{type:a.type,d0:this.d0,r0:this.r0,a:this.a}}}let o=new WeakMap;class i{constructor({d0:e=1,r0:r=1,a:t=1}={}){o.set(this,{}),this.d0=e,this.r0=r,this.a=t}static get type(){return"Morse"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");let r=Number.POSITIVE_INFINITY,t=1;for(let{r:a,e:o}of e)ot?n=Math.log(1-e)/(t-i):ih&&Math.abs(b)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.a=n,o}get d0(){return o.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");o.get(this).d0=e}get r0(){return o.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");o.get(this).r0=e}get a(){return o.get(this).a}set a(e){if(!Number.isFinite(e))throw new TypeError("The 'a' parameter should be a finite number");if(e<=0)throw new RangeError("The 'a' parameter should be greater than zero");o.get(this).a=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,a:a}=this,o=1-Math.exp(a*(t-e));return r*o*o-r}toJSON(){return{type:i.type,d0:this.d0,r0:this.r0,a:this.a}}}let s=new WeakMap;class n{constructor({d0:e=1,r0:r=1,b:t=2}={}){s.set(this,{}),this.d0=e,this.r0=r,this.b=t}static get type(){return"Rydberg"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");e=e.slice().sort((e,r)=>e.r-r.r);let r,t,a,o=Number.POSITIVE_INFINITY,i=1;for(let{r:r,e:t}of e)t=i||r.e<0||t.e<0));a++);if(r&&t&&r.r0&&(a=i/(i-e))}return new n({d0:o,r0:i,b:a})}static from(e,{d0Conv:r=.001,r0Conv:t=.001,bConv:a=.001}={}){let o=this.fastFrom(e),{d0:i,r0:s,b:n}=o;const h=i*r,l=s*t,p=n*a;let u,b,d;do{let r=0,t=0,a=0,o=0,h=0,l=0,p=0,f=0,w=0;for(let{r:u,e:b}of e){let e=n*(u/s-1),d=Math.exp(-e),m=-i*(1+e)*d,g=m/i,y=-i*n*u/(s*s)*d*e,T=i*e/n*d*e;r+=g*g,t+=y*g,a+=T*g,o+=(m-b)*g,h+=y*y,l+=T*y,p+=(m-b)*y,f+=T*T,w+=(m-b)*T}i+=u=(-t*(b=((a-r*l/t)*(d=-(o-r*p/t-(t-r*h/t)/(t-r*l/a)*(o-r*w/a))/(a-r*l/t-(a-r*f/a)*(t-r*h/t)/(t-r*l/a)))+(o-r*p/t))/(r*h/t-t))-a*d-o)/r,s+=b,n+=d}while(Math.abs(u)>h&&Math.abs(b)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.b=n,o}get d0(){return s.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");s.get(this).d0=e}get r0(){return s.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");s.get(this).r0=e}get b(){return s.get(this).b}set b(e){if(!Number.isFinite(e))throw new TypeError("The 'b' parameter should be a finite number");if(e<=1)throw new RangeError("The 'b' parameter should be greater than 1");s.get(this).b=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,b:a}=this,o=a*(e-t)/t;return-r*(1+o)*Math.exp(-o)}toJSON(){return{type:n.type,d0:this.d0,r0:this.r0,b:this.b}}}let h=new WeakMap;class l{constructor({d0:e=1,r0:r=1,b:t=1}={}){h.set(this,{}),this.d0=e,this.r0=r,this.b=t}static get type(){return"Varshni3"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");let r=Number.POSITIVE_INFINITY,t=1;for(let{r:a,e:o}of e)ot?n=Math.log(i/t*(1-e))/(t*t-i*i):ih&&Math.abs(b)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.b=n,o}get d0(){return h.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");h.get(this).d0=e}get r0(){return h.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");h.get(this).r0=e}get b(){return h.get(this).b}set b(e){if(!Number.isFinite(e))throw new TypeError("The 'b' parameter should be a finite number");if(e<=0)throw new RangeError("The 'b' parameter should be greater than zero");h.get(this).b=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,b:a}=this,o=1-t/e*Math.exp(a*(t*t-e*e));return r*o*o-r}toJSON(){return{type:l.type,d0:this.d0,r0:this.r0,b:this.b}}}let p={rSqr(e,r){let t=0,a=0;for(let{r:o,e:i}of e){t+=i;let e=i-r.at(o);a+=e*e}t/=e.length;let o=0;for(let{e:r}of e){let e=r-t;o+=e*e}return 1-a/o},*points(e,{start:r=e.r0/2,end:t=2*e.r0,step:a=(t-r)/49}={}){let o=0,i=r,s=Math.sign(t-r);for(a=Math.abs(a)*s;(t-i)*s>=0;)yield{r:i,e:e.at(i),index:o},i=r+a*++o;return{r:t,e:e.at(t)}}},u=Object.create(null);return u[r.type]=r,u[a.type]=a,u[i.type]=i,u[n.type]=n,u[l.type]=l,Object.defineProperty(u,"utils",{configurable:!0,value:p}),u}); +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(t.potprox={})}(this,function(t){"use strict";class r{rSqr(t){let r=0,e=0;for(let{r:i,e:s}of t){r+=s;let t=s-this.at(i);e+=t*t}r/=t.length;let i=0;for(let{e:e}of t){let t=e-r;i+=t*t}return 1-e/i}*points({start:t=this.r0/2,end:r=2*this.r0,step:e=(r-t)/49}={}){let i=0,s=t,o=Math.sign(r-t);for(e=Math.abs(e)*o;(r-s)*o>=0;)yield{r:s,e:this.at(s),index:i},s=t+e*++i;return{r:r,e:this.at(r)}}}const e="Too little points. Approximation is impossible",i="Approximated data must be an array of points",s=t=>`The “${t}” parameter must be a finite number`,o=(t,r=0)=>`The “${t}” parameter must be greater than ${r}`,n="Distance must be a number",a="Distance mustn’t be less than 0";let h=new WeakMap;class w extends r{constructor({epsilon:t=1,sigma:r=1}={}){super(),h.set(this,{}),this.epsilon=t,this.sigma=r}static get type(){return"LennardJones"}static from(t){if(!Array.isArray(t))throw new TypeError(i);if(t.length<3)throw new Error(e);let r=0,s=0,o=0,n=0,a=0;for(let{r:e,e:i}of t)r+=Math.pow(e,-24),s+=Math.pow(e,-18),o+=i*Math.pow(e,-12),n+=Math.pow(e,-12),a+=i*Math.pow(e,-6);let h=(a-s*o/r)/(n-s*s/r),f=(o-s*h)/r,p=Math.pow(-f/h,1/6),l=f/(4*Math.pow(p,12));return new w({epsilon:l,sigma:p})}get epsilon(){return h.get(this).epsilon}set epsilon(t){if(!Number.isFinite(t))throw new TypeError(s("epsilon"));if(t<=0)throw new RangeError(o("epsilon"));h.get(this).epsilon=t}get sigma(){return h.get(this).sigma}set sigma(t){if(!Number.isFinite(t))throw new TypeError(s("sigma"));if(t<=0)throw new RangeError(o("sigma"));h.get(this).sigma=t}get r0(){return 1.122462048309373*this.sigma}set r0(t){this.sigma=t/1.122462048309373}at(t){if("number"!=typeof t)throw new TypeError(n);if(t<0)throw new RangeError(a);let{epsilon:r,sigma:e}=this;return 4*r*(Math.pow(e/t,12)-Math.pow(e/t,6))}toJSON(){return{type:w.type,epsilon:this.epsilon,sigma:this.sigma}}}let f=new WeakMap;class p extends r{constructor({d0:t=1,r0:r=1,a:e=2}={}){super(),f.set(this,{}),this.d0=t,this.r0=r,this.a=e}static get type(){return"Buckingham"}static fastFrom(t){if(!Array.isArray(t))throw new TypeError(i);if(t.length<3)throw new Error(e);t=t.slice().sort((t,r)=>t.r-r.r);let r,s,o,n=Number.POSITIVE_INFINITY,a=1;for(let{r:r,e:e}of t)e=a||r.e<0||s.e<0));e++);if(r&&s&&r.r0){let r=1-t/a,e=Math.pow(a/t,6)/6;o=(e-r-Math.sqrt(e*e-2*r*e-r*r))/(r*r),Number.isFinite(o)||(o=void 0)}}return new p({d0:n,r0:a,a:o})}static from(t,{d0Conv:r=.001,r0Conv:e=.001,aConv:i=.001}={}){let s=this.fastFrom(t),{d0:o,r0:n,a:a}=s;const h=o*r,w=n*e,f=a*i;let p,l,g;do{let r=0,e=0,i=0,s=0,h=0,w=0,f=0,u=0,d=0;for(let{r:p,e:l}of t){let t=a*Math.pow(n/p,6),g=Math.exp(a*(1-p/n)),b=o/(a-6)*(6*g-t),m=b/o,y=o/(a-6)*(6*g*a*p/(n*n)-6*t/n),M=-o/((a-6)*(a-6))*(6*g-t)+o/(a-6)*(6*(1-p/n)*g-t/a);r+=m*m,e+=y*m,i+=M*m,s+=(b-l)*m,h+=y*y,w+=M*y,f+=(b-l)*y,u+=M*M,d+=(b-l)*M}o+=p=(-e*(l=((i-r*w/e)*(g=-(s-r*f/e-(e-r*h/e)/(e-r*w/i)*(s-r*d/i))/(i-r*w/e-(i-r*u/i)*(e-r*h/e)/(e-r*w/i)))+(s-r*f/e))/(r*h/e-e))-i*g-s)/r,n+=l,a+=g}while(Math.abs(p)>h&&Math.abs(l)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.a=a,s}get d0(){return f.get(this).d0}set d0(t){if(!Number.isFinite(t))throw new TypeError(s("d0"));if(t<=0)throw new RangeError(o("d0"));f.get(this).d0=t}get r0(){return f.get(this).r0}set r0(t){if(!Number.isFinite(t))throw new TypeError(s("r0"));if(t<=0)throw new RangeError(o("r0"));f.get(this).r0=t}get a(){return f.get(this).a}set a(t){if(!Number.isFinite(t))throw new TypeError(s("a"));if(t<=0)throw new RangeError(o("a"));f.get(this).a=t}at(t){if("number"!=typeof t)throw new TypeError(n);if(t<0)throw new RangeError(a);let{d0:r,r0:e,a:i}=this;return r/(i-6)*(6*Math.exp(i*(1-t/e))-i*Math.pow(e/t,6))}toJSON(){return{type:p.type,d0:this.d0,r0:this.r0,a:this.a}}}let l=new WeakMap;class g extends r{constructor({d0:t=1,r0:r=1,a:e=1}={}){super(),l.set(this,{}),this.d0=t,this.r0=r,this.a=e}static get type(){return"Morse"}static fastFrom(t){if(!Array.isArray(t))throw new TypeError(i);if(t.length<3)throw new Error(e);let r=Number.POSITIVE_INFINITY,s=1;for(let{r:e,e:i}of t)is?a=Math.log(1-t)/(s-e):eh&&Math.abs(l)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.a=a,s}get d0(){return l.get(this).d0}set d0(t){if(!Number.isFinite(t))throw new TypeError(s("d0"));if(t<=0)throw new RangeError(o("d0"));l.get(this).d0=t}get r0(){return l.get(this).r0}set r0(t){if(!Number.isFinite(t))throw new TypeError(s("r0"));if(t<=0)throw new RangeError(o("r0"));l.get(this).r0=t}get a(){return l.get(this).a}set a(t){if(!Number.isFinite(t))throw new TypeError(s("a"));if(t<=0)throw new RangeError(o("a"));l.get(this).a=t}at(t){if("number"!=typeof t)throw new TypeError(n);if(t<0)throw new RangeError(a);let{d0:r,r0:e,a:i}=this,s=1-Math.exp(i*(e-t));return r*s*s-r}toJSON(){return{type:g.type,d0:this.d0,r0:this.r0,a:this.a}}}let u=new WeakMap;class d extends r{constructor({d0:t=1,r0:r=1,b:e=2}={}){super(),u.set(this,{}),this.d0=t,this.r0=r,this.b=e}static get type(){return"Rydberg"}static fastFrom(t){if(!Array.isArray(t))throw new TypeError(i);if(t.length<3)throw new Error(e);t=t.slice().sort((t,r)=>t.r-r.r);let r,s,o,n=Number.POSITIVE_INFINITY,a=1;for(let{r:r,e:e}of t)e=a||r.e<0||s.e<0));e++);if(r&&s&&r.r0&&(o=a/(a-t))}return new d({d0:n,r0:a,b:o})}static from(t,{d0Conv:r=.001,r0Conv:e=.001,bConv:i=.001}={}){let s=this.fastFrom(t),{d0:o,r0:n,b:a}=s;const h=o*r,w=n*e,f=a*i;let p,l,g;do{let r=0,e=0,i=0,s=0,h=0,w=0,f=0,u=0,d=0;for(let{r:p,e:l}of t){let t=a*(p/n-1),g=Math.exp(-t),b=-o*(1+t)*g,m=b/o,y=-o*a*p/(n*n)*g*t,M=o*t/a*g*t;r+=m*m,e+=y*m,i+=M*m,s+=(b-l)*m,h+=y*y,w+=M*y,f+=(b-l)*y,u+=M*M,d+=(b-l)*M}o+=p=(-e*(l=((i-r*w/e)*(g=-(s-r*f/e-(e-r*h/e)/(e-r*w/i)*(s-r*d/i))/(i-r*w/e-(i-r*u/i)*(e-r*h/e)/(e-r*w/i)))+(s-r*f/e))/(r*h/e-e))-i*g-s)/r,n+=l,a+=g}while(Math.abs(p)>h&&Math.abs(l)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.b=a,s}get d0(){return u.get(this).d0}set d0(t){if(!Number.isFinite(t))throw new TypeError(s("d0"));if(t<=0)throw new RangeError(o("d0"));u.get(this).d0=t}get r0(){return u.get(this).r0}set r0(t){if(!Number.isFinite(t))throw new TypeError(s("r0"));if(t<=0)throw new RangeError(o("r0"));u.get(this).r0=t}get b(){return u.get(this).b}set b(t){if(!Number.isFinite(t))throw new TypeError(s("b"));if(t<=1)throw new RangeError(o("b",1));u.get(this).b=t}at(t){if("number"!=typeof t)throw new TypeError(n);if(t<0)throw new RangeError(a);let{d0:r,r0:e,b:i}=this,s=i*(t-e)/e;return-r*(1+s)*Math.exp(-s)}toJSON(){return{type:d.type,d0:this.d0,r0:this.r0,b:this.b}}}let b=new WeakMap;class m extends r{constructor({d0:t=1,r0:r=1,b:e=1}={}){super(),b.set(this,{}),this.d0=t,this.r0=r,this.b=e}static get type(){return"Varshni3"}static fastFrom(t){if(!Array.isArray(t))throw new TypeError(i);if(t.length<3)throw new Error(e);let r=Number.POSITIVE_INFINITY,s=1;for(let{r:e,e:i}of t)is?a=Math.log(e/s*(1-t))/(s*s-e*e):eh&&Math.abs(l)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.b=a,s}get d0(){return b.get(this).d0}set d0(t){if(!Number.isFinite(t))throw new TypeError(s("d0"));if(t<=0)throw new RangeError(o("d0"));b.get(this).d0=t}get r0(){return b.get(this).r0}set r0(t){if(!Number.isFinite(t))throw new TypeError(s("r0"));if(t<=0)throw new RangeError(o("r0"));b.get(this).r0=t}get b(){return b.get(this).b}set b(t){if(!Number.isFinite(t))throw new TypeError(s("b"));if(t<=0)throw new RangeError(o("b"));b.get(this).b=t}at(t){if("number"!=typeof t)throw new TypeError(n);if(t<0)throw new RangeError(a);let{d0:r,r0:e,b:i}=this,s=1-e/t*Math.exp(i*(e*e-t*t));return r*s*s-r}toJSON(){return{type:m.type,d0:this.d0,r0:this.r0,b:this.b}}}t.LennardJones=w,t.Buckingham=p,t.Morse=g,t.Rydberg=d,t.Varshni3=m,Object.defineProperty(t,"__esModule",{value:!0})}); diff --git a/dist/potprox.min.mjs b/dist/potprox.min.mjs index 8c4ea93..e7df57d 100644 --- a/dist/potprox.min.mjs +++ b/dist/potprox.min.mjs @@ -1,5 +1,5 @@ /*! -potprox v0.6.0 +potprox v0.7.0 https://amphiluke.github.io/potprox/ */ -let e=new WeakMap;class r{constructor({epsilon:r=1,sigma:t=1}={}){e.set(this,{}),this.epsilon=r,this.sigma=t}static get type(){return"LennardJones"}static from(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");let t=0,a=0,o=0,i=0,s=0;for(let{r:r,e:n}of e)t+=Math.pow(r,-24),a+=Math.pow(r,-18),o+=n*Math.pow(r,-12),i+=Math.pow(r,-12),s+=n*Math.pow(r,-6);let n=(s-a*o/t)/(i-a*a/t),h=(o-a*n)/t,l=Math.pow(-h/n,1/6),p=h/(4*Math.pow(l,12));return new r({epsilon:p,sigma:l})}get epsilon(){return e.get(this).epsilon}set epsilon(r){if(!Number.isFinite(r))throw new TypeError("The 'epsilon' parameter should be a finite number");if(r<=0)throw new RangeError("The 'epsilon' parameter should be greater than zero");e.get(this).epsilon=r}get sigma(){return e.get(this).sigma}set sigma(r){if(!Number.isFinite(r))throw new TypeError("The 'sigma' parameter should be a finite number");if(r<=0)throw new RangeError("The 'sigma' parameter should be greater than zero");e.get(this).sigma=r}get r0(){return 1.122462048309373*this.sigma}set r0(e){this.sigma=e/1.122462048309373}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{epsilon:r,sigma:t}=this;return 4*r*(Math.pow(t/e,12)-Math.pow(t/e,6))}toJSON(){return{type:r.type,epsilon:this.epsilon,sigma:this.sigma}}}let t=new WeakMap;class a{constructor({d0:e=1,r0:r=1,a:a=2}={}){t.set(this,{}),this.d0=e,this.r0=r,this.a=a}static get type(){return"Buckingham"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");e=e.slice().sort((e,r)=>e.r-r.r);let r,t,o,i=Number.POSITIVE_INFINITY,s=1;for(let{r:r,e:t}of e)t=s||r.e<0||t.e<0));a++);if(r&&t&&r.r0){let r=1-e/s,t=Math.pow(s/e,6)/6;o=(t-r-Math.sqrt(t*t-2*r*t-r*r))/(r*r),Number.isFinite(o)||(o=void 0)}}return new a({d0:i,r0:s,a:o})}static from(e,{d0Conv:r=.001,r0Conv:t=.001,aConv:a=.001}={}){let o=this.fastFrom(e),{d0:i,r0:s,a:n}=o;const h=i*r,l=s*t,p=n*a;let b,u,d;do{let r=0,t=0,a=0,o=0,h=0,l=0,p=0,w=0,f=0;for(let{r:b,e:u}of e){let e=n*Math.pow(s/b,6),d=Math.exp(n*(1-b/s)),m=i/(n-6)*(6*d-e),g=m/i,y=i/(n-6)*(6*d*n*b/(s*s)-6*e/s),T=-i/((n-6)*(n-6))*(6*d-e)+i/(n-6)*(6*(1-b/s)*d-e/n);r+=g*g,t+=y*g,a+=T*g,o+=(m-u)*g,h+=y*y,l+=T*y,p+=(m-u)*y,w+=T*T,f+=(m-u)*T}i+=b=(-t*(u=((a-r*l/t)*(d=-(o-r*p/t-(t-r*h/t)/(t-r*l/a)*(o-r*f/a))/(a-r*l/t-(a-r*w/a)*(t-r*h/t)/(t-r*l/a)))+(o-r*p/t))/(r*h/t-t))-a*d-o)/r,s+=u,n+=d}while(Math.abs(b)>h&&Math.abs(u)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.a=n,o}get d0(){return t.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");t.get(this).d0=e}get r0(){return t.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");t.get(this).r0=e}get a(){return t.get(this).a}set a(e){if(!Number.isFinite(e))throw new TypeError("The 'a' parameter should be a finite number");if(e<=0)throw new RangeError("The 'a' parameter should be greater than zero");t.get(this).a=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,a:a}=this;return r/(a-6)*(6*Math.exp(a*(1-e/t))-a*Math.pow(t/e,6))}toJSON(){return{type:a.type,d0:this.d0,r0:this.r0,a:this.a}}}let o=new WeakMap;class i{constructor({d0:e=1,r0:r=1,a:t=1}={}){o.set(this,{}),this.d0=e,this.r0=r,this.a=t}static get type(){return"Morse"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");let r=Number.POSITIVE_INFINITY,t=1;for(let{r:a,e:o}of e)ot?n=Math.log(1-e)/(t-i):ih&&Math.abs(u)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.a=n,o}get d0(){return o.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");o.get(this).d0=e}get r0(){return o.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");o.get(this).r0=e}get a(){return o.get(this).a}set a(e){if(!Number.isFinite(e))throw new TypeError("The 'a' parameter should be a finite number");if(e<=0)throw new RangeError("The 'a' parameter should be greater than zero");o.get(this).a=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,a:a}=this,o=1-Math.exp(a*(t-e));return r*o*o-r}toJSON(){return{type:i.type,d0:this.d0,r0:this.r0,a:this.a}}}let s=new WeakMap;class n{constructor({d0:e=1,r0:r=1,b:t=2}={}){s.set(this,{}),this.d0=e,this.r0=r,this.b=t}static get type(){return"Rydberg"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");e=e.slice().sort((e,r)=>e.r-r.r);let r,t,a,o=Number.POSITIVE_INFINITY,i=1;for(let{r:r,e:t}of e)t=i||r.e<0||t.e<0));a++);if(r&&t&&r.r0&&(a=i/(i-e))}return new n({d0:o,r0:i,b:a})}static from(e,{d0Conv:r=.001,r0Conv:t=.001,bConv:a=.001}={}){let o=this.fastFrom(e),{d0:i,r0:s,b:n}=o;const h=i*r,l=s*t,p=n*a;let b,u,d;do{let r=0,t=0,a=0,o=0,h=0,l=0,p=0,w=0,f=0;for(let{r:b,e:u}of e){let e=n*(b/s-1),d=Math.exp(-e),m=-i*(1+e)*d,g=m/i,y=-i*n*b/(s*s)*d*e,T=i*e/n*d*e;r+=g*g,t+=y*g,a+=T*g,o+=(m-u)*g,h+=y*y,l+=T*y,p+=(m-u)*y,w+=T*T,f+=(m-u)*T}i+=b=(-t*(u=((a-r*l/t)*(d=-(o-r*p/t-(t-r*h/t)/(t-r*l/a)*(o-r*f/a))/(a-r*l/t-(a-r*w/a)*(t-r*h/t)/(t-r*l/a)))+(o-r*p/t))/(r*h/t-t))-a*d-o)/r,s+=u,n+=d}while(Math.abs(b)>h&&Math.abs(u)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.b=n,o}get d0(){return s.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");s.get(this).d0=e}get r0(){return s.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");s.get(this).r0=e}get b(){return s.get(this).b}set b(e){if(!Number.isFinite(e))throw new TypeError("The 'b' parameter should be a finite number");if(e<=1)throw new RangeError("The 'b' parameter should be greater than 1");s.get(this).b=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,b:a}=this,o=a*(e-t)/t;return-r*(1+o)*Math.exp(-o)}toJSON(){return{type:n.type,d0:this.d0,r0:this.r0,b:this.b}}}let h=new WeakMap;class l{constructor({d0:e=1,r0:r=1,b:t=1}={}){h.set(this,{}),this.d0=e,this.r0=r,this.b=t}static get type(){return"Varshni3"}static fastFrom(e){if(!Array.isArray(e))throw new TypeError("Approximated data should be an array of points");if(e.length<3)throw new Error("Too little points. Approximation is impossible");let r=Number.POSITIVE_INFINITY,t=1;for(let{r:a,e:o}of e)ot?n=Math.log(i/t*(1-e))/(t*t-i*i):ih&&Math.abs(u)>l&&Math.abs(d)>p);return o.d0=i,o.r0=s,o.b=n,o}get d0(){return h.get(this).d0}set d0(e){if(!Number.isFinite(e))throw new TypeError("The 'd0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'd0' parameter should be greater than zero");h.get(this).d0=e}get r0(){return h.get(this).r0}set r0(e){if(!Number.isFinite(e))throw new TypeError("The 'r0' parameter should be a finite number");if(e<=0)throw new RangeError("The 'r0' parameter should be greater than zero");h.get(this).r0=e}get b(){return h.get(this).b}set b(e){if(!Number.isFinite(e))throw new TypeError("The 'b' parameter should be a finite number");if(e<=0)throw new RangeError("The 'b' parameter should be greater than zero");h.get(this).b=e}at(e){if("number"!=typeof e)throw new TypeError("Distance should be a number");if(e<0)throw new RangeError("Distance shouldn't be less than zero");let{d0:r,r0:t,b:a}=this,o=1-t/e*Math.exp(a*(t*t-e*e));return r*o*o-r}toJSON(){return{type:l.type,d0:this.d0,r0:this.r0,b:this.b}}}let p={rSqr(e,r){let t=0,a=0;for(let{r:o,e:i}of e){t+=i;let e=i-r.at(o);a+=e*e}t/=e.length;let o=0;for(let{e:r}of e){let e=r-t;o+=e*e}return 1-a/o},*points(e,{start:r=e.r0/2,end:t=2*e.r0,step:a=(t-r)/49}={}){let o=0,i=r,s=Math.sign(t-r);for(a=Math.abs(a)*s;(t-i)*s>=0;)yield{r:i,e:e.at(i),index:o},i=r+a*++o;return{r:t,e:e.at(t)}}},b=Object.create(null);b[r.type]=r,b[a.type]=a,b[i.type]=i,b[n.type]=n,b[l.type]=l,Object.defineProperty(b,"utils",{configurable:!0,value:p});export default b; +class r{rSqr(r){let t=0,e=0;for(let{r:i,e:s}of r){t+=s;let r=s-this.at(i);e+=r*r}t/=r.length;let i=0;for(let{e:e}of r){let r=e-t;i+=r*r}return 1-e/i}*points({start:r=this.r0/2,end:t=2*this.r0,step:e=(t-r)/49}={}){let i=0,s=r,o=Math.sign(t-r);for(e=Math.abs(e)*o;(t-s)*o>=0;)yield{r:s,e:this.at(s),index:i},s=r+e*++i;return{r:t,e:this.at(t)}}}const t="Too little points. Approximation is impossible",e="Approximated data must be an array of points",i=r=>`The “${r}” parameter must be a finite number`,s=(r,t=0)=>`The “${r}” parameter must be greater than ${t}`,o="Distance must be a number",n="Distance mustn’t be less than 0";let a=new WeakMap;class h extends r{constructor({epsilon:r=1,sigma:t=1}={}){super(),a.set(this,{}),this.epsilon=r,this.sigma=t}static get type(){return"LennardJones"}static from(r){if(!Array.isArray(r))throw new TypeError(e);if(r.length<3)throw new Error(t);let i=0,s=0,o=0,n=0,a=0;for(let{r:t,e:e}of r)i+=Math.pow(t,-24),s+=Math.pow(t,-18),o+=e*Math.pow(t,-12),n+=Math.pow(t,-12),a+=e*Math.pow(t,-6);let w=(a-s*o/i)/(n-s*s/i),f=(o-s*w)/i,l=Math.pow(-f/w,1/6),p=f/(4*Math.pow(l,12));return new h({epsilon:p,sigma:l})}get epsilon(){return a.get(this).epsilon}set epsilon(r){if(!Number.isFinite(r))throw new TypeError(i("epsilon"));if(r<=0)throw new RangeError(s("epsilon"));a.get(this).epsilon=r}get sigma(){return a.get(this).sigma}set sigma(r){if(!Number.isFinite(r))throw new TypeError(i("sigma"));if(r<=0)throw new RangeError(s("sigma"));a.get(this).sigma=r}get r0(){return 1.122462048309373*this.sigma}set r0(r){this.sigma=r/1.122462048309373}at(r){if("number"!=typeof r)throw new TypeError(o);if(r<0)throw new RangeError(n);let{epsilon:t,sigma:e}=this;return 4*t*(Math.pow(e/r,12)-Math.pow(e/r,6))}toJSON(){return{type:h.type,epsilon:this.epsilon,sigma:this.sigma}}}let w=new WeakMap;class f extends r{constructor({d0:r=1,r0:t=1,a:e=2}={}){super(),w.set(this,{}),this.d0=r,this.r0=t,this.a=e}static get type(){return"Buckingham"}static fastFrom(r){if(!Array.isArray(r))throw new TypeError(e);if(r.length<3)throw new Error(t);r=r.slice().sort((r,t)=>r.r-t.r);let i,s,o,n=Number.POSITIVE_INFINITY,a=1;for(let{r:t,e:e}of r)e=a||i.e<0||s.e<0));t++);if(i&&s&&i.r0){let t=1-r/a,e=Math.pow(a/r,6)/6;o=(e-t-Math.sqrt(e*e-2*t*e-t*t))/(t*t),Number.isFinite(o)||(o=void 0)}}return new f({d0:n,r0:a,a:o})}static from(r,{d0Conv:t=.001,r0Conv:e=.001,aConv:i=.001}={}){let s=this.fastFrom(r),{d0:o,r0:n,a:a}=s;const h=o*t,w=n*e,f=a*i;let l,p,g;do{let t=0,e=0,i=0,s=0,h=0,w=0,f=0,u=0,b=0;for(let{r:l,e:p}of r){let r=a*Math.pow(n/l,6),g=Math.exp(a*(1-l/n)),d=o/(a-6)*(6*g-r),m=d/o,y=o/(a-6)*(6*g*a*l/(n*n)-6*r/n),E=-o/((a-6)*(a-6))*(6*g-r)+o/(a-6)*(6*(1-l/n)*g-r/a);t+=m*m,e+=y*m,i+=E*m,s+=(d-p)*m,h+=y*y,w+=E*y,f+=(d-p)*y,u+=E*E,b+=(d-p)*E}o+=l=(-e*(p=((i-t*w/e)*(g=-(s-t*f/e-(e-t*h/e)/(e-t*w/i)*(s-t*b/i))/(i-t*w/e-(i-t*u/i)*(e-t*h/e)/(e-t*w/i)))+(s-t*f/e))/(t*h/e-e))-i*g-s)/t,n+=p,a+=g}while(Math.abs(l)>h&&Math.abs(p)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.a=a,s}get d0(){return w.get(this).d0}set d0(r){if(!Number.isFinite(r))throw new TypeError(i("d0"));if(r<=0)throw new RangeError(s("d0"));w.get(this).d0=r}get r0(){return w.get(this).r0}set r0(r){if(!Number.isFinite(r))throw new TypeError(i("r0"));if(r<=0)throw new RangeError(s("r0"));w.get(this).r0=r}get a(){return w.get(this).a}set a(r){if(!Number.isFinite(r))throw new TypeError(i("a"));if(r<=0)throw new RangeError(s("a"));w.get(this).a=r}at(r){if("number"!=typeof r)throw new TypeError(o);if(r<0)throw new RangeError(n);let{d0:t,r0:e,a:i}=this;return t/(i-6)*(6*Math.exp(i*(1-r/e))-i*Math.pow(e/r,6))}toJSON(){return{type:f.type,d0:this.d0,r0:this.r0,a:this.a}}}let l=new WeakMap;class p extends r{constructor({d0:r=1,r0:t=1,a:e=1}={}){super(),l.set(this,{}),this.d0=r,this.r0=t,this.a=e}static get type(){return"Morse"}static fastFrom(r){if(!Array.isArray(r))throw new TypeError(e);if(r.length<3)throw new Error(t);let i=Number.POSITIVE_INFINITY,s=1;for(let{r:t,e:e}of r)es?a=Math.log(1-r)/(s-t):th&&Math.abs(p)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.a=a,s}get d0(){return l.get(this).d0}set d0(r){if(!Number.isFinite(r))throw new TypeError(i("d0"));if(r<=0)throw new RangeError(s("d0"));l.get(this).d0=r}get r0(){return l.get(this).r0}set r0(r){if(!Number.isFinite(r))throw new TypeError(i("r0"));if(r<=0)throw new RangeError(s("r0"));l.get(this).r0=r}get a(){return l.get(this).a}set a(r){if(!Number.isFinite(r))throw new TypeError(i("a"));if(r<=0)throw new RangeError(s("a"));l.get(this).a=r}at(r){if("number"!=typeof r)throw new TypeError(o);if(r<0)throw new RangeError(n);let{d0:t,r0:e,a:i}=this,s=1-Math.exp(i*(e-r));return t*s*s-t}toJSON(){return{type:p.type,d0:this.d0,r0:this.r0,a:this.a}}}let g=new WeakMap;class u extends r{constructor({d0:r=1,r0:t=1,b:e=2}={}){super(),g.set(this,{}),this.d0=r,this.r0=t,this.b=e}static get type(){return"Rydberg"}static fastFrom(r){if(!Array.isArray(r))throw new TypeError(e);if(r.length<3)throw new Error(t);r=r.slice().sort((r,t)=>r.r-t.r);let i,s,o,n=Number.POSITIVE_INFINITY,a=1;for(let{r:t,e:e}of r)e=a||i.e<0||s.e<0));t++);if(i&&s&&i.r0&&(o=a/(a-r))}return new u({d0:n,r0:a,b:o})}static from(r,{d0Conv:t=.001,r0Conv:e=.001,bConv:i=.001}={}){let s=this.fastFrom(r),{d0:o,r0:n,b:a}=s;const h=o*t,w=n*e,f=a*i;let l,p,g;do{let t=0,e=0,i=0,s=0,h=0,w=0,f=0,u=0,b=0;for(let{r:l,e:p}of r){let r=a*(l/n-1),g=Math.exp(-r),d=-o*(1+r)*g,m=d/o,y=-o*a*l/(n*n)*g*r,E=o*r/a*g*r;t+=m*m,e+=y*m,i+=E*m,s+=(d-p)*m,h+=y*y,w+=E*y,f+=(d-p)*y,u+=E*E,b+=(d-p)*E}o+=l=(-e*(p=((i-t*w/e)*(g=-(s-t*f/e-(e-t*h/e)/(e-t*w/i)*(s-t*b/i))/(i-t*w/e-(i-t*u/i)*(e-t*h/e)/(e-t*w/i)))+(s-t*f/e))/(t*h/e-e))-i*g-s)/t,n+=p,a+=g}while(Math.abs(l)>h&&Math.abs(p)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.b=a,s}get d0(){return g.get(this).d0}set d0(r){if(!Number.isFinite(r))throw new TypeError(i("d0"));if(r<=0)throw new RangeError(s("d0"));g.get(this).d0=r}get r0(){return g.get(this).r0}set r0(r){if(!Number.isFinite(r))throw new TypeError(i("r0"));if(r<=0)throw new RangeError(s("r0"));g.get(this).r0=r}get b(){return g.get(this).b}set b(r){if(!Number.isFinite(r))throw new TypeError(i("b"));if(r<=1)throw new RangeError(s("b",1));g.get(this).b=r}at(r){if("number"!=typeof r)throw new TypeError(o);if(r<0)throw new RangeError(n);let{d0:t,r0:e,b:i}=this,s=i*(r-e)/e;return-t*(1+s)*Math.exp(-s)}toJSON(){return{type:u.type,d0:this.d0,r0:this.r0,b:this.b}}}let b=new WeakMap;class d extends r{constructor({d0:r=1,r0:t=1,b:e=1}={}){super(),b.set(this,{}),this.d0=r,this.r0=t,this.b=e}static get type(){return"Varshni3"}static fastFrom(r){if(!Array.isArray(r))throw new TypeError(e);if(r.length<3)throw new Error(t);let i=Number.POSITIVE_INFINITY,s=1;for(let{r:t,e:e}of r)es?a=Math.log(t/s*(1-r))/(s*s-t*t):th&&Math.abs(p)>w&&Math.abs(g)>f);return s.d0=o,s.r0=n,s.b=a,s}get d0(){return b.get(this).d0}set d0(r){if(!Number.isFinite(r))throw new TypeError(i("d0"));if(r<=0)throw new RangeError(s("d0"));b.get(this).d0=r}get r0(){return b.get(this).r0}set r0(r){if(!Number.isFinite(r))throw new TypeError(i("r0"));if(r<=0)throw new RangeError(s("r0"));b.get(this).r0=r}get b(){return b.get(this).b}set b(r){if(!Number.isFinite(r))throw new TypeError(i("b"));if(r<=0)throw new RangeError(s("b"));b.get(this).b=r}at(r){if("number"!=typeof r)throw new TypeError(o);if(r<0)throw new RangeError(n);let{d0:t,r0:e,b:i}=this,s=1-e/r*Math.exp(i*(e*e-r*r));return t*s*s-t}toJSON(){return{type:d.type,d0:this.d0,r0:this.r0,b:this.b}}}export{h as LennardJones,f as Buckingham,p as Morse,u as Rydberg,d as Varshni3}; diff --git a/dist/potprox.mjs b/dist/potprox.mjs index b51c8e1..725d5fa 100644 --- a/dist/potprox.mjs +++ b/dist/potprox.mjs @@ -1,11 +1,69 @@ /*! -potprox v0.6.0 +potprox v0.7.0 https://amphiluke.github.io/potprox/ */ +class AbstractProto { + /** + * Calculate the coefficient of determination to measure the goodness of fit + * @param {Array.<{r: Number, e: Number}>} data - Experimental/ab initio data + * @returns {Number} + * @see https://en.wikipedia.org/wiki/Coefficient_of_determination + */ + rSqr(data) { + let avg = 0; // the mean of the experimental/ab initio data + let ssRes = 0; // the residual sum of squares (RSS) + for (let {r, e} of data) { + avg += e; + let residual = e - this.at(r); + ssRes += residual * residual; + } + avg /= data.length; + let ssTot = 0; // the total sum of squares + for (let {e} of data) { + let diff = e - avg; + ssTot += diff * diff; + } + return 1 - ssRes / ssTot; + } + + /** + * Generate points of the potential curve + * @param {Object} [options] - Configuration options + * @param {Number} [options.start=this.r0/2] - Starting interatomic distance + * @param {Number} [options.end=this.r0*2] - End interatomic distance + * @param {Number} [options.step=(end-start)/49] - Step for point generation (defaults make 50 points) + * @returns {Generator<{r: Number, e: Number}>} + */ + * points({start = this.r0 / 2, end = this.r0 * 2, step = (end - start) / 49} = {}) { + let i = 0; + let r = start; + let direction = Math.sign(end - start); // when end < start, iteration is backward + step = Math.abs(step) * direction; // the user may specify step as signed or not + while ((end - r) * direction >= 0) { + yield {r, e: this.at(r), index: i}; + r = start + step * ++i; + } + return {r: end, e: this.at(end)}; + } +} + +const lackOfData = "Too little points. Approximation is impossible"; + +const arrExpected = "Approximated data must be an array of points"; + +const numExpected = (param) => `The “${param}” parameter must be a finite number`; + +const greaterThan = (param, min = 0) => `The “${param}” parameter must be greater than ${min}`; + +const distType = "Distance must be a number"; + +const distRange = "Distance mustn’t be less than 0"; + let instanceData = new WeakMap(); -class LennardJones { +class LennardJones extends AbstractProto { constructor({epsilon = 1, sigma = 1} = {}) { + super(); instanceData.set(this, {}); this.epsilon = epsilon; this.sigma = sigma; @@ -30,10 +88,10 @@ class LennardJones { */ static from(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } let c1 = 0, c2 = 0, c3 = 0, c4 = 0, c5 = 0; for (let {r, e} of data) { @@ -55,10 +113,10 @@ class LennardJones { } set epsilon(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'epsilon' parameter should be a finite number"); + throw new TypeError(numExpected("epsilon")); } if (value <= 0) { - throw new RangeError("The 'epsilon' parameter should be greater than zero"); + throw new RangeError(greaterThan("epsilon")); } instanceData.get(this).epsilon = value; } @@ -68,10 +126,10 @@ class LennardJones { } set sigma(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'sigma' parameter should be a finite number"); + throw new TypeError(numExpected("sigma")); } if (value <= 0) { - throw new RangeError("The 'sigma' parameter should be greater than zero"); + throw new RangeError(greaterThan("sigma")); } instanceData.get(this).sigma = value; } @@ -90,10 +148,10 @@ class LennardJones { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {epsilon, sigma} = this; return 4 * epsilon * (Math.pow(sigma / r, 12) - Math.pow(sigma / r, 6)); @@ -106,8 +164,9 @@ class LennardJones { let instanceData$1 = new WeakMap(); -class Buckingham { +class Buckingham extends AbstractProto { constructor({d0 = 1, r0 = 1, a = 2} = {}) { + super(); instanceData$1.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -134,10 +193,10 @@ class Buckingham { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } data = data.slice().sort((pt1, pt2) => pt1.r - pt2.r); let d0 = Number.POSITIVE_INFINITY; @@ -238,10 +297,10 @@ class Buckingham { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$1.get(this).d0 = value; } @@ -251,10 +310,10 @@ class Buckingham { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$1.get(this).r0 = value; } @@ -264,10 +323,10 @@ class Buckingham { } set a(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'a' parameter should be a finite number"); + throw new TypeError(numExpected("a")); } if (value <= 0) { - throw new RangeError("The 'a' parameter should be greater than zero"); + throw new RangeError(greaterThan("a")); } instanceData$1.get(this).a = value; } @@ -279,10 +338,10 @@ class Buckingham { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, a} = this; return d0 / (a - 6) * (6 * Math.exp(a * (1 - r / r0)) - a * Math.pow(r0 / r, 6)); @@ -295,8 +354,9 @@ class Buckingham { let instanceData$2 = new WeakMap(); -class Morse { +class Morse extends AbstractProto { constructor({d0 = 1, r0 = 1, a = 1} = {}) { + super(); instanceData$2.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -323,10 +383,10 @@ class Morse { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } let d0 = Number.POSITIVE_INFINITY; let r0 = 1; @@ -420,10 +480,10 @@ class Morse { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$2.get(this).d0 = value; } @@ -433,10 +493,10 @@ class Morse { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$2.get(this).r0 = value; } @@ -446,10 +506,10 @@ class Morse { } set a(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'a' parameter should be a finite number"); + throw new TypeError(numExpected("a")); } if (value <= 0) { - throw new RangeError("The 'a' parameter should be greater than zero"); + throw new RangeError(greaterThan("a")); } instanceData$2.get(this).a = value; } @@ -461,10 +521,10 @@ class Morse { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, a} = this; let factor = 1 - Math.exp(a * (r0 - r)); @@ -478,8 +538,9 @@ class Morse { let instanceData$3 = new WeakMap(); -class Rydberg { +class Rydberg extends AbstractProto { constructor({d0 = 1, r0 = 1, b = 2} = {}) { + super(); instanceData$3.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -506,10 +567,10 @@ class Rydberg { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } data = data.slice().sort((pt1, pt2) => pt1.r - pt2.r); let d0 = Number.POSITIVE_INFINITY; @@ -604,10 +665,10 @@ class Rydberg { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$3.get(this).d0 = value; } @@ -617,10 +678,10 @@ class Rydberg { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$3.get(this).r0 = value; } @@ -630,10 +691,10 @@ class Rydberg { } set b(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'b' parameter should be a finite number"); + throw new TypeError(numExpected("b")); } if (value <= 1) { - throw new RangeError("The 'b' parameter should be greater than 1"); + throw new RangeError(greaterThan("b", 1)); } instanceData$3.get(this).b = value; } @@ -645,10 +706,10 @@ class Rydberg { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, b} = this; let factor = b * (r - r0) / r0; @@ -662,8 +723,9 @@ class Rydberg { let instanceData$4 = new WeakMap(); -class Varshni3 { +class Varshni3 extends AbstractProto { constructor({d0 = 1, r0 = 1, b = 1} = {}) { + super(); instanceData$4.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -690,10 +752,10 @@ class Varshni3 { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(lackOfData); } let d0 = Number.POSITIVE_INFINITY; let r0 = 1; @@ -787,10 +849,10 @@ class Varshni3 { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(greaterThan("d0")); } instanceData$4.get(this).d0 = value; } @@ -800,10 +862,10 @@ class Varshni3 { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(greaterThan("r0")); } instanceData$4.get(this).r0 = value; } @@ -813,10 +875,10 @@ class Varshni3 { } set b(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'b' parameter should be a finite number"); + throw new TypeError(numExpected("b")); } if (value <= 0) { - throw new RangeError("The 'b' parameter should be greater than zero"); + throw new RangeError(greaterThan("b")); } instanceData$4.get(this).b = value; } @@ -828,10 +890,10 @@ class Varshni3 { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(distRange); } let {d0, r0, b} = this; let factor = 1 - r0 / r * Math.exp(b * (r0 * r0 - r * r)); @@ -843,66 +905,4 @@ class Varshni3 { } } -let utils = { - /** - * Calculate the coefficient of determination to measure the goodness of fit - * @param {Array.<{r: Number, e: Number}>} data - Experimental/ab initio data - * @param {Object} potential - Approximating potential instance - * @returns {Number} - * @see https://en.wikipedia.org/wiki/Coefficient_of_determination - */ - rSqr(data, potential) { - let avg = 0; // the mean of the experimental/ab initio data - let ssRes = 0; // the residual sum of squares (RSS) - for (let {r, e} of data) { - avg += e; - let residual = e - potential.at(r); - ssRes += residual * residual; - } - avg /= data.length; - let ssTot = 0; // the total sum of squares - for (let {e} of data) { - let diff = e - avg; - ssTot += diff * diff; - } - return 1 - ssRes / ssTot; - }, - - /** - * Generate points of the potential curve - * @param {Object} potential - Approximating potential instance - * @param {Object} [options] - Configuration options - * @param {Number} [options.start=potential.r0/2] - Starting interatomic distance - * @param {Number} [options.end=potential.r0*2] - End interatomic distance - * @param {Number} [options.step=(end-start)/49] - Step for point generation (defaults make 50 points) - * @returns {Generator<{r: Number, e: Number}>} - */ - * points(potential, {start = potential.r0 / 2, end = potential.r0 * 2, step = (end - start) / 49} = {}) { - let i = 0; - let r = start; - let direction = Math.sign(end - start); // when end < start, iteration is backward - step = Math.abs(step) * direction; // the user may specify step as signed or not - while ((end - r) * direction >= 0) { - yield {r, e: potential.at(r), index: i}; - r = start + step * ++i; - } - return {r: end, e: potential.at(end)}; - } -}; - -let potprox = Object.create(null); -potprox[LennardJones.type] = LennardJones; -potprox[Buckingham.type] = Buckingham; -potprox[Morse.type] = Morse; -potprox[Rydberg.type] = Rydberg; -potprox[Varshni3.type] = Varshni3; - -// Other properties of the potprox object are non-enumerable to avoid mixing them with -// potential classes when using such methods as Object.keys, Object.values etc. - -Object.defineProperty(potprox, "utils", { - configurable: true, - value: utils -}); - -export default potprox; +export { LennardJones, Buckingham, Morse, Rydberg, Varshni3 }; diff --git a/package-lock.json b/package-lock.json index 0336af8..82e7bc5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "potprox", - "version": "0.6.0", + "version": "0.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bfb31e3..baa6cb3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "potprox", - "version": "0.6.0", + "version": "0.7.0", "description": "Approximation of computed data with empirical pair potentials", "main": "dist/potprox.js", "module": "dist/potprox.mjs", diff --git a/src/messages.mjs b/src/messages.mjs new file mode 100644 index 0000000..aa62d93 --- /dev/null +++ b/src/messages.mjs @@ -0,0 +1,11 @@ +export const lackOfData = "Too little points. Approximation is impossible"; + +export const arrExpected = "Approximated data must be an array of points"; + +export const numExpected = (param) => `The “${param}” parameter must be a finite number`; + +export const greaterThan = (param, min = 0) => `The “${param}” parameter must be greater than ${min}`; + +export const distType = "Distance must be a number"; + +export const distRange = "Distance mustn’t be less than 0"; diff --git a/src/utils.mjs b/src/potentials/abstract-proto.mjs similarity index 67% rename from src/utils.mjs rename to src/potentials/abstract-proto.mjs index 6598d9f..8916e52 100644 --- a/src/utils.mjs +++ b/src/potentials/abstract-proto.mjs @@ -1,17 +1,16 @@ -let utils = { +class AbstractProto { /** * Calculate the coefficient of determination to measure the goodness of fit * @param {Array.<{r: Number, e: Number}>} data - Experimental/ab initio data - * @param {Object} potential - Approximating potential instance * @returns {Number} * @see https://en.wikipedia.org/wiki/Coefficient_of_determination */ - rSqr(data, potential) { + rSqr(data) { let avg = 0; // the mean of the experimental/ab initio data let ssRes = 0; // the residual sum of squares (RSS) for (let {r, e} of data) { avg += e; - let residual = e - potential.at(r); + let residual = e - this.at(r); ssRes += residual * residual; } avg /= data.length; @@ -21,28 +20,27 @@ let utils = { ssTot += diff * diff; } return 1 - ssRes / ssTot; - }, + } /** * Generate points of the potential curve - * @param {Object} potential - Approximating potential instance * @param {Object} [options] - Configuration options - * @param {Number} [options.start=potential.r0/2] - Starting interatomic distance - * @param {Number} [options.end=potential.r0*2] - End interatomic distance + * @param {Number} [options.start=this.r0/2] - Starting interatomic distance + * @param {Number} [options.end=this.r0*2] - End interatomic distance * @param {Number} [options.step=(end-start)/49] - Step for point generation (defaults make 50 points) * @returns {Generator<{r: Number, e: Number}>} */ - * points(potential, {start = potential.r0 / 2, end = potential.r0 * 2, step = (end - start) / 49} = {}) { + * points({start = this.r0 / 2, end = this.r0 * 2, step = (end - start) / 49} = {}) { let i = 0; let r = start; let direction = Math.sign(end - start); // when end < start, iteration is backward step = Math.abs(step) * direction; // the user may specify step as signed or not while ((end - r) * direction >= 0) { - yield {r, e: potential.at(r), index: i}; + yield {r, e: this.at(r), index: i}; r = start + step * ++i; } - return {r: end, e: potential.at(end)}; + return {r: end, e: this.at(end)}; } -}; +} -export default utils; \ No newline at end of file +export default AbstractProto; \ No newline at end of file diff --git a/src/potentials/buckingham.mjs b/src/potentials/buckingham.mjs index e5bd357..0f01673 100644 --- a/src/potentials/buckingham.mjs +++ b/src/potentials/buckingham.mjs @@ -1,7 +1,11 @@ +import AbstractProto from "./abstract-proto.mjs"; +import * as msg from "../messages.mjs"; + let instanceData = new WeakMap(); -class Buckingham { +class Buckingham extends AbstractProto { constructor({d0 = 1, r0 = 1, a = 2} = {}) { + super(); instanceData.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -28,10 +32,10 @@ class Buckingham { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(msg.arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(msg.lackOfData); } data = data.slice().sort((pt1, pt2) => pt1.r - pt2.r); let d0 = Number.POSITIVE_INFINITY; @@ -132,10 +136,10 @@ class Buckingham { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("d0")); } instanceData.get(this).d0 = value; } @@ -145,10 +149,10 @@ class Buckingham { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("r0")); } instanceData.get(this).r0 = value; } @@ -158,10 +162,10 @@ class Buckingham { } set a(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'a' parameter should be a finite number"); + throw new TypeError(msg.numExpected("a")); } if (value <= 0) { - throw new RangeError("The 'a' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("a")); } instanceData.get(this).a = value; } @@ -173,10 +177,10 @@ class Buckingham { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(msg.distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(msg.distRange); } let {d0, r0, a} = this; return d0 / (a - 6) * (6 * Math.exp(a * (1 - r / r0)) - a * Math.pow(r0 / r, 6)); diff --git a/src/potentials/lennard-jones.mjs b/src/potentials/lennard-jones.mjs index 0717e28..bc6c836 100644 --- a/src/potentials/lennard-jones.mjs +++ b/src/potentials/lennard-jones.mjs @@ -1,7 +1,11 @@ +import AbstractProto from "./abstract-proto.mjs"; +import * as msg from "../messages.mjs"; + let instanceData = new WeakMap(); -class LennardJones { +class LennardJones extends AbstractProto { constructor({epsilon = 1, sigma = 1} = {}) { + super(); instanceData.set(this, {}); this.epsilon = epsilon; this.sigma = sigma; @@ -26,10 +30,10 @@ class LennardJones { */ static from(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(msg.arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(msg.lackOfData); } let c1 = 0, c2 = 0, c3 = 0, c4 = 0, c5 = 0; for (let {r, e} of data) { @@ -51,10 +55,10 @@ class LennardJones { } set epsilon(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'epsilon' parameter should be a finite number"); + throw new TypeError(msg.numExpected("epsilon")); } if (value <= 0) { - throw new RangeError("The 'epsilon' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("epsilon")); } instanceData.get(this).epsilon = value; } @@ -64,10 +68,10 @@ class LennardJones { } set sigma(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'sigma' parameter should be a finite number"); + throw new TypeError(msg.numExpected("sigma")); } if (value <= 0) { - throw new RangeError("The 'sigma' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("sigma")); } instanceData.get(this).sigma = value; } @@ -86,10 +90,10 @@ class LennardJones { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(msg.distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(msg.distRange); } let {epsilon, sigma} = this; return 4 * epsilon * (Math.pow(sigma / r, 12) - Math.pow(sigma / r, 6)); diff --git a/src/potentials/morse.mjs b/src/potentials/morse.mjs index c7ee652..75f9d9a 100644 --- a/src/potentials/morse.mjs +++ b/src/potentials/morse.mjs @@ -1,7 +1,11 @@ +import AbstractProto from "./abstract-proto.mjs"; +import * as msg from "../messages.mjs"; + let instanceData = new WeakMap(); -class Morse { +class Morse extends AbstractProto { constructor({d0 = 1, r0 = 1, a = 1} = {}) { + super(); instanceData.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -28,10 +32,10 @@ class Morse { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(msg.arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(msg.lackOfData); } let d0 = Number.POSITIVE_INFINITY; let r0 = 1; @@ -125,10 +129,10 @@ class Morse { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("d0")); } instanceData.get(this).d0 = value; } @@ -138,10 +142,10 @@ class Morse { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("r0")); } instanceData.get(this).r0 = value; } @@ -151,10 +155,10 @@ class Morse { } set a(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'a' parameter should be a finite number"); + throw new TypeError(msg.numExpected("a")); } if (value <= 0) { - throw new RangeError("The 'a' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("a")); } instanceData.get(this).a = value; } @@ -166,10 +170,10 @@ class Morse { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(msg.distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(msg.distRange); } let {d0, r0, a} = this; let factor = 1 - Math.exp(a * (r0 - r)); diff --git a/src/potentials/rydberg.mjs b/src/potentials/rydberg.mjs index d7af073..aa338d1 100644 --- a/src/potentials/rydberg.mjs +++ b/src/potentials/rydberg.mjs @@ -1,7 +1,11 @@ +import AbstractProto from "./abstract-proto.mjs"; +import * as msg from "../messages.mjs"; + let instanceData = new WeakMap(); -class Rydberg { +class Rydberg extends AbstractProto { constructor({d0 = 1, r0 = 1, b = 2} = {}) { + super(); instanceData.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -28,10 +32,10 @@ class Rydberg { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(msg.arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(msg.lackOfData); } data = data.slice().sort((pt1, pt2) => pt1.r - pt2.r); let d0 = Number.POSITIVE_INFINITY; @@ -126,10 +130,10 @@ class Rydberg { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("d0")); } instanceData.get(this).d0 = value; } @@ -139,10 +143,10 @@ class Rydberg { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("r0")); } instanceData.get(this).r0 = value; } @@ -152,10 +156,10 @@ class Rydberg { } set b(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'b' parameter should be a finite number"); + throw new TypeError(msg.numExpected("b")); } if (value <= 1) { - throw new RangeError("The 'b' parameter should be greater than 1"); + throw new RangeError(msg.greaterThan("b", 1)); } instanceData.get(this).b = value; } @@ -167,10 +171,10 @@ class Rydberg { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(msg.distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(msg.distRange); } let {d0, r0, b} = this; let factor = b * (r - r0) / r0; diff --git a/src/potentials/varshni3.mjs b/src/potentials/varshni3.mjs index 50caf6d..ac32a8b 100644 --- a/src/potentials/varshni3.mjs +++ b/src/potentials/varshni3.mjs @@ -1,7 +1,11 @@ +import AbstractProto from "./abstract-proto.mjs"; +import * as msg from "../messages.mjs"; + let instanceData = new WeakMap(); -class Varshni3 { +class Varshni3 extends AbstractProto { constructor({d0 = 1, r0 = 1, b = 1} = {}) { + super(); instanceData.set(this, {}); this.d0 = d0; this.r0 = r0; @@ -28,10 +32,10 @@ class Varshni3 { */ static fastFrom(data) { if (!Array.isArray(data)) { - throw new TypeError("Approximated data should be an array of points"); + throw new TypeError(msg.arrExpected); } if (data.length < 3) { - throw new Error("Too little points. Approximation is impossible"); + throw new Error(msg.lackOfData); } let d0 = Number.POSITIVE_INFINITY; let r0 = 1; @@ -125,10 +129,10 @@ class Varshni3 { } set d0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'd0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("d0")); } if (value <= 0) { - throw new RangeError("The 'd0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("d0")); } instanceData.get(this).d0 = value; } @@ -138,10 +142,10 @@ class Varshni3 { } set r0(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'r0' parameter should be a finite number"); + throw new TypeError(msg.numExpected("r0")); } if (value <= 0) { - throw new RangeError("The 'r0' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("r0")); } instanceData.get(this).r0 = value; } @@ -151,10 +155,10 @@ class Varshni3 { } set b(value) { if (!Number.isFinite(value)) { - throw new TypeError("The 'b' parameter should be a finite number"); + throw new TypeError(msg.numExpected("b")); } if (value <= 0) { - throw new RangeError("The 'b' parameter should be greater than zero"); + throw new RangeError(msg.greaterThan("b")); } instanceData.get(this).b = value; } @@ -166,10 +170,10 @@ class Varshni3 { */ at(r) { if (typeof r !== "number") { - throw new TypeError("Distance should be a number"); + throw new TypeError(msg.distType); } if (r < 0) { - throw new RangeError("Distance shouldn't be less than zero"); + throw new RangeError(msg.distRange); } let {d0, r0, b} = this; let factor = 1 - r0 / r * Math.exp(b * (r0 * r0 - r * r)); diff --git a/src/potprox.mjs b/src/potprox.mjs index 703904d..e7d09be 100644 --- a/src/potprox.mjs +++ b/src/potprox.mjs @@ -1,23 +1,5 @@ -import LennardJones from "./potentials/lennard-jones.mjs"; -import Buckingham from "./potentials/buckingham.mjs"; -import Morse from "./potentials/morse.mjs"; -import Rydberg from "./potentials/rydberg.mjs"; -import Varshni3 from "./potentials/varshni3.mjs"; -import utils from "./utils.mjs"; - -let potprox = Object.create(null); -potprox[LennardJones.type] = LennardJones; -potprox[Buckingham.type] = Buckingham; -potprox[Morse.type] = Morse; -potprox[Rydberg.type] = Rydberg; -potprox[Varshni3.type] = Varshni3; - -// Other properties of the potprox object are non-enumerable to avoid mixing them with -// potential classes when using such methods as Object.keys, Object.values etc. - -Object.defineProperty(potprox, "utils", { - configurable: true, - value: utils -}); - -export default potprox; \ No newline at end of file +export {default as LennardJones} from "./potentials/lennard-jones.mjs"; +export {default as Buckingham} from "./potentials/buckingham.mjs"; +export {default as Morse} from "./potentials/morse.mjs"; +export {default as Rydberg} from "./potentials/rydberg.mjs"; +export {default as Varshni3} from "./potentials/varshni3.mjs"; diff --git a/test/browser/test-global.html b/test/browser/test-global.html index 7404f9a..c04a0c3 100644 --- a/test/browser/test-global.html +++ b/test/browser/test-global.html @@ -26,8 +26,8 @@ let potential = potprox[name].from(dataset, {d0Conv: 0.0001, r0Conv: 0.0001, aConv: 0.0001, bConv: 0.0001}); result[name] = { potential: potential.toJSON(), - rSqr: potprox.utils.rSqr(dataset, potential), - points: [...potprox.utils.points(potential, {start: 5, end: 10, step: (10 - 5) / 9})] + rSqr: potential.rSqr(dataset), + points: [...potential.points({start: 5, end: 10, step: (10 - 5) / 9})] }; }); window.postMessage({type: "recalcDone", result}, "*"); diff --git a/test/browser/test-module.html b/test/browser/test-module.html index d78e420..3c97417 100644 --- a/test/browser/test-module.html +++ b/test/browser/test-module.html @@ -15,7 +15,7 @@