From 889c53857e106e6fe0d222167b1d623092cf0b04 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 24 Jul 2019 07:31:24 -0700 Subject: [PATCH 01/19] chore: Update dependencies --- package-lock.json | 3430 ++++++++++++++++++++------------------------- package.json | 24 +- 2 files changed, 1522 insertions(+), 1932 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44e3591..b6f406b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,10 +4,30 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, "@babel/runtime": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz", - "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz", + "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==", "dev": true, "optional": true, "requires": { @@ -15,16 +35,16 @@ } }, "@electron-forge/async-ora": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.34.tgz", - "integrity": "sha512-gs0RMuqIbGregjr8LnbYRov/5EsPCeWwFzgbB8QWWcvBTHbzkjWCBw2u/8dhQQ7bvH99IlFVSCMfonI0dXAfDA==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.43.tgz", + "integrity": "sha512-hfJk07NH4+f5RAgHwhUlnHCiA9WaKufzxiFWAwu053ZqR9A18R9xBVKLrCm3V7vjQHCGrVSoV51OaNMYL4+lVA==", "dev": true, "requires": { "colors": "^1.2.0", "debug": "^4.1.0", - "log-symbols": "^2.0.0", + "log-symbols": "^3.0.0", "ora": "^3.0.0", - "pretty-ms": "^4.0.0" + "pretty-ms": "^5.0.0" }, "dependencies": { "debug": { @@ -37,27 +57,27 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@electron-forge/cli": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.34.tgz", - "integrity": "sha512-I7sM3XqERwNyioq6ZhxPOsJZXnK+73GgLSP0E5+hqgktMbfaamB16VPWXwbd2u4cd2/Ch4nyeP8Z2OGVTnFMoA==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.43.tgz", + "integrity": "sha512-EhwdHOPloApHojGecSX9lufbWsJANu7Z0AloiRk3EvzbglrCL4yQo4yMom/iDhq0tZk8HNRO6JBpb6J0COUZIg==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.34", - "@electron-forge/core": "6.0.0-beta.34", + "@electron-forge/async-ora": "6.0.0-beta.43", + "@electron-forge/core": "6.0.0-beta.43", "colors": "^1.2.0", "commander": "^2.9.0", "debug": "^4.1.0", - "fs-extra": "^7.0.0", - "inquirer": "^6.2.0", - "semver": "^5.3.0" + "fs-extra": "^8.1.0", + "inquirer": "^6.5.0", + "semver": "^6.2.0" }, "dependencies": { "debug": { @@ -69,60 +89,51 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@electron-forge/core": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.34.tgz", - "integrity": "sha512-Tn4xkYVQybhVdy+/6jNSbnhcJHf3JK436OpQsyEmDfwakYZWHqhSpQzig3XasU4NdG+LyUsO8b4bQRQ3DQdNHw==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.43.tgz", + "integrity": "sha512-m9VN89l8nFkWtWXm6Pf96vMo4Vdnfa3PIg5LyeCEKMH22BvbuXs6XdIji0hJkUWqukb0jJ9xMq4eg9KKKzVCzw==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.34", - "@electron-forge/installer-base": "6.0.0-beta.34", - "@electron-forge/installer-deb": "6.0.0-beta.34", - "@electron-forge/installer-dmg": "6.0.0-beta.34", - "@electron-forge/installer-exe": "6.0.0-beta.34", - "@electron-forge/installer-rpm": "6.0.0-beta.34", - "@electron-forge/installer-zip": "6.0.0-beta.34", - "@electron-forge/maker-base": "6.0.0-beta.34", - "@electron-forge/plugin-base": "6.0.0-beta.34", - "@electron-forge/publisher-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", + "@electron-forge/async-ora": "6.0.0-beta.43", + "@electron-forge/installer-base": "6.0.0-beta.43", + "@electron-forge/installer-deb": "6.0.0-beta.43", + "@electron-forge/installer-dmg": "6.0.0-beta.43", + "@electron-forge/installer-exe": "6.0.0-beta.43", + "@electron-forge/installer-rpm": "6.0.0-beta.43", + "@electron-forge/installer-zip": "6.0.0-beta.43", + "@electron-forge/maker-base": "6.0.0-beta.43", + "@electron-forge/plugin-base": "6.0.0-beta.43", + "@electron-forge/publisher-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", + "@electron-forge/template-webpack": "6.0.0-beta.43", + "@electron/get": "^1.3.1", "colors": "^1.2.0", "cross-spawn-promise": "^0.10.1", "debug": "^4.1.0", - "electron-packager": "^13.0.0", - "electron-rebuild": "^1.6.0", - "fs-extra": "^7.0.0", - "glob": "^7.1.1", - "lodash.merge": "^4.6.0", - "lodash.template": "^4.4.0", - "log-symbols": "^2.0.0", - "node-fetch": "^2.0.0", + "electron-packager": "^14.0.0", + "electron-rebuild": "^1.8.5", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.4", + "lodash.merge": "^4.6.2", + "lodash.template": "^4.5.0", + "log-symbols": "^3.0.0", + "node-fetch": "^2.6.0", "nugget": "^2.0.1", - "pify": "^4.0.0", "resolve-package": "^1.0.1", - "semver": "^5.3.0", - "source-map-support": "^0.5.4", - "sudo-prompt": "^8.0.0", - "username": "^4.0.0", + "semver": "^6.2.0", + "source-map-support": "^0.5.12", + "sudo-prompt": "^9.0.0", + "username": "^5.1.0", "yarn-or-npm": "^2.0.2" }, "dependencies": { @@ -135,91 +146,54 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@electron-forge/installer-base": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.34.tgz", - "integrity": "sha512-LAblvKIiyewJo8sNpLuXCbrMSMpEJZK6yD/CSI2nE5TvpLXwFM/Tp6emmUiLpVi2qo7+kLCf/WJx4sTcDlVVKg==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.43.tgz", + "integrity": "sha512-RAopbmOHjzpxb0iTB1QIsGKnb3NC4Rj7nzD0wkqD1QTOVNAe9tLQm4uXDHps6LTIhoUAyGQlVpmENqAKM0Zsfw==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.34" + "@electron-forge/async-ora": "6.0.0-beta.43" } }, "@electron-forge/installer-darwin": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.34.tgz", - "integrity": "sha512-QIFMfNW0F/XJU0Y7cg+gOOMNverymuG7o9xdcQPXPQ6Mu4If8EkNgUtXtrOUvIJoC7wpfpipHDGGYvursT5VyQ==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.43.tgz", + "integrity": "sha512-PWOI3IhbwGu4ygOO1V4W8WlKFNtzXkhJcSayeZKOeeSx3Mr9cgXnivhhm7aYJttUJTa5/GWIkZ3kf79nTwRiWA==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.34", - "@electron-forge/installer-base": "6.0.0-beta.34", - "fs-extra": "^7.0.0", - "pify": "^4.0.0", - "sudo-prompt": "^8.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "@electron-forge/async-ora": "6.0.0-beta.43", + "@electron-forge/installer-base": "6.0.0-beta.43", + "fs-extra": "^8.1.0", + "sudo-prompt": "^9.0.0" } }, "@electron-forge/installer-deb": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.34.tgz", - "integrity": "sha512-YsAFAgsuY6fTi4n8EFmiiG+btf2/RKaEkNS4Yz2UaFBbAnKzHsNTpqQtKG8q7Xz5z6NZbqNklqSYY4ljVpjgow==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.43.tgz", + "integrity": "sha512-s8GbeKKe8riS6uU/JxXj7qPKqgI1iXoydJZHGDQ7qXiHEc3boLEkhskfMejc6JOAdXR35Qa5LaD7UgBHQseA2w==", "dev": true, "requires": { - "@electron-forge/installer-linux": "6.0.0-beta.34" + "@electron-forge/installer-linux": "6.0.0-beta.43" } }, "@electron-forge/installer-dmg": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.34.tgz", - "integrity": "sha512-oINnOUS72VUmAmotZKi/UqllndhBaGC+g/IduMDhpafiB8wef0bQsRT9hYkIIGw77hPT6xtGaTFeAxR888L4kg==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.43.tgz", + "integrity": "sha512-diadw3tf0qbdvKLJuBpPkJui95x/I8V733TBVgjnkPbHxSllaBWZtI4LPqx5GFVTyd2ZYQp+c6Lh5nqsuHYHxg==", "dev": true, "requires": { - "@electron-forge/installer-darwin": "6.0.0-beta.34", + "@electron-forge/installer-darwin": "6.0.0-beta.43", "cross-spawn-promise": "^0.10.1", "debug": "^4.1.0", - "fs-extra": "^7.0.0" + "fs-extra": "^8.1.0" }, "dependencies": { "debug": { @@ -231,202 +205,197 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@electron-forge/installer-exe": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.34.tgz", - "integrity": "sha512-x+RNl2VMHzuZDrCnxmcen3yLxpPXbjNexFNzyzH455+AINkaE+hnZumlJhem0slftQsD5/7pZRzPdRa9SWbPvg==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.43.tgz", + "integrity": "sha512-PETHsKPmu4XxsCcLKkXsRCCz2S8dpClDRfMIsXbFTGRWNIP89jgluTG4KLllpgzhU+APpgO0kSIMbIaPsTUxbQ==", "dev": true, "requires": { - "@electron-forge/installer-base": "6.0.0-beta.34", - "opn": "^5.0.0" + "@electron-forge/installer-base": "6.0.0-beta.43", + "open": "^6.4.0" } }, "@electron-forge/installer-linux": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.34.tgz", - "integrity": "sha512-DTPIpGlCgw7Ci4gPP5HrrENPt2rHwUFD48heNlousAnHyH3SfqkRCa8zdWL4xPQAfhCWZsO2iifm/2elUfL9Ew==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.43.tgz", + "integrity": "sha512-euBacSIF7Vva9KR9BwCIa0znZ+pH1erfMDXgECgnA4dMOqvL5HldiZYG5defrtYpwu4o/iD5LTenKqCLHeJF7A==", "dev": true, "requires": { - "@electron-forge/installer-base": "6.0.0-beta.34", - "pify": "^4.0.0", - "sudo-prompt": "^8.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "@electron-forge/installer-base": "6.0.0-beta.43", + "sudo-prompt": "^9.0.0" } }, "@electron-forge/installer-rpm": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.34.tgz", - "integrity": "sha512-AO9np5Ut5ut6nsUtug0mh9e9esh9JZraSQQ2vw/TwsBxPvE+haBmHuOdCraZ0w5Nm0MDSElSGTUEilVGANeKQA==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.43.tgz", + "integrity": "sha512-akoLUQAXemD2OabvJWOMM6n8TNxvtxdV27EvOI6gxmN4wCJf2va5svZckzwmGB9AiyCu0u0Zap0TRVBDOmohDg==", "dev": true, "requires": { - "@electron-forge/installer-linux": "6.0.0-beta.34" + "@electron-forge/installer-linux": "6.0.0-beta.43" } }, "@electron-forge/installer-zip": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.34.tgz", - "integrity": "sha512-UwI91T6PggAVQ7oMBSCi755aQrog4gJOjH9oBe7hnxU1fZslCVhUfw7DCpTFujSi48VTOgZ7dQcgOkZvbG9uCA==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.43.tgz", + "integrity": "sha512-NZ/lscK1FsYyr5oH/1vOUa029lUocWUj5V+Xw9PEV/tkAv4dotAtk2XnXLAkPqdP0iaUD3Z6INV86eW/sLJFgQ==", "dev": true, "requires": { - "@electron-forge/installer-darwin": "6.0.0-beta.34", + "@electron-forge/installer-darwin": "6.0.0-beta.43", "cross-spawn-promise": "^0.10.1", - "fs-extra": "^7.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "fs-extra": "^8.1.0" } }, "@electron-forge/maker-base": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.34.tgz", - "integrity": "sha512-uBIrhQd8THRHQt6yRd/5msSK1fNYQQQn1V6SYV//388U3Emk3YeKD5ICZUoY8dR7RCDEQgRCEwD9wYQxJkfZwQ==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.43.tgz", + "integrity": "sha512-JlUGs4jMMv+o3v6zJ9SyWRHe7IyM4RDGx7gNOObqqLSK+0r4FPWVrHJKjV4/P/Xo5G40WwjfwVmmpInHAwdAdg==", "dev": true, "requires": { - "@electron-forge/shared-types": "6.0.0-beta.34", - "fs-extra": "^7.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "@electron-forge/shared-types": "6.0.0-beta.43", + "fs-extra": "^8.1.0" } }, "@electron-forge/maker-deb": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.34.tgz", - "integrity": "sha512-dfrbHNghG6bvq/fgcjEmbdnQ9mwvUe14PCxN9nmPOx3iMuHKr5OqXgv3QOpzEWr0arkdgFflkPqAoNzutVdaIw==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.43.tgz", + "integrity": "sha512-4omWF71gCtHfzqUBMd9F9+Jj0A8M4nahR5avqusxpZ1Qm2Z40dbyZe6XBfH53IBGwFKnkdxegf2usn98lE8slg==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", - "electron-installer-debian": "^1.1.0" + "@electron-forge/maker-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", + "electron-installer-debian": "^2.0.0" } }, "@electron-forge/maker-flatpak": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-6.0.0-beta.34.tgz", - "integrity": "sha512-E3E6T+y884tuGtpm+ARHXd8PdSGV9/9nvOn+YQCraJG5v0qbBQyGaEYaAp8/+AoNmlOStmjnJYIXb0Fmrbv8RA==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-6.0.0-beta.43.tgz", + "integrity": "sha512-XiPmuQ4TYbXbiCi5v5/4HfCHOz9tWSfOaESQ+ys1lVPw6buthXOqsKiCLuSgzN9GlYCnrYSvOEefvZZvoToqTw==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", - "@malept/electron-installer-flatpak": "^0.9.0", - "fs-extra": "^7.0.0", - "pify": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "@electron-forge/maker-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", + "@malept/electron-installer-flatpak": "^0.10.0", + "fs-extra": "^8.1.0" } }, "@electron-forge/maker-rpm": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-6.0.0-beta.34.tgz", - "integrity": "sha512-8DhOX/Bn4Ku899KGmVWNGWegNtocDIPtQfAL3M0sP277B62Pjx6EZx82v9hm5jGAUdiNhEE+25O2bdoLajEOjw==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-6.0.0-beta.43.tgz", + "integrity": "sha512-ovzsv/cVOu4OVR7yAEIY0Plo+Mls/X4g0szaHGxbjNFUGjo0qKQu7+sjuBwY1etD6Hn0yCDckSkBcvAe2/slMg==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", - "electron-installer-redhat": "^1.0.0" + "@electron-forge/maker-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", + "electron-installer-redhat": "^2.0.0" } }, "@electron-forge/maker-squirrel": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.34.tgz", - "integrity": "sha512-7j70q2yGB0X65ToWhLH+OxBMunSW7DaNVRHGV5Ef/fXDiKIeRNcrBD4l/FxtakhEdhHMLjEyAdSA2Is7iTYkzg==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.43.tgz", + "integrity": "sha512-lsC6S5UA7ZTr4iJzsgIm/2X6n+/WMtq1Cg9b53AicsGp1qOzOqI1yWZ+IAE4oRog+BXUhgrvTqbqYMli/klGDA==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", + "@electron-forge/maker-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", "electron-winstaller": "^3.0.4", - "fs-extra": "^7.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "fs-extra": "^8.1.0" } }, "@electron-forge/maker-zip": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.34.tgz", - "integrity": "sha512-kDMVcTsMlRN7tSQJYX3lApt08p63zHfkuIcPHBpV9fEOJABZK5iHhwNvx3U3x+Syp2ABRDEpGksjCvmBkyp5fw==", + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.43.tgz", + "integrity": "sha512-n1GuOWRc9JUMRZjyViIreUim2Xsvvv6yUOlBqz31as+mc+TxKp4TRugpfB55T9AjDLsOWwklIKC0LmJRe17dKw==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", + "@electron-forge/maker-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", "cross-zip": "^2.1.5", - "fs-extra": "^7.0.0", - "pify": "^4.0.0" + "fs-extra": "^8.1.0" + } + }, + "@electron-forge/plugin-base": { + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.43.tgz", + "integrity": "sha512-bdhJ9xeoSqrsA0nL3LawmbwcsRtbWVIL3oJgpEYBXIloP9uRoC/nGEzJpFAJp3MQ9LYcJ0yqBe/lHYZNfMM7cQ==", + "dev": true, + "requires": { + "@electron-forge/shared-types": "6.0.0-beta.43" + } + }, + "@electron-forge/publisher-base": { + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.43.tgz", + "integrity": "sha512-nF+KnDuKcpQ3CFrfLms6WW1dJn/lzyKk+w/J7EtGIUlt80lUSE7bnR8hUH7x95XvNaKgYhT4I8DqcW9o0eXeMw==", + "dev": true + }, + "@electron-forge/publisher-github": { + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-github/-/publisher-github-6.0.0-beta.43.tgz", + "integrity": "sha512-7Kqf55lnVMI2dVWnu92j9LS5Y2wITnwHl7z0A25ZVrVqryZSlYKJRJZzglItlZoLrRnLKbiT6TP/s0jEOvg67g==", + "dev": true, + "requires": { + "@electron-forge/async-ora": "6.0.0-beta.43", + "@electron-forge/publisher-base": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", + "@octokit/rest": "^16.28.3", + "fs-extra": "^8.1.0", + "lodash.merge": "^4.6.2", + "mime-types": "^2.1.24" + } + }, + "@electron-forge/shared-types": { + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.43.tgz", + "integrity": "sha512-KEHn44zeSzZMYvfhvxLgeC+PTTGr70BTwpV08ektDmDPi33K4uxk4nSdsjY03YoVjv0odfvbz6jT5uvf3v5g4w==", + "dev": true, + "requires": { + "@electron-forge/async-ora": "6.0.0-beta.43", + "@types/electron-packager": "^14.0.0", + "electron-rebuild": "^1.8.5", + "ora": "^3.0.0" + } + }, + "@electron-forge/template-webpack": { + "version": "6.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.43.tgz", + "integrity": "sha512-ktg110Pue2n+CHoF0FDdqX58ZhwOi/skHsQnyOo+BflxMDbKsHtr/jsLrvwvtt8BYOg4yNiPMJZ4GYp5U3/etA==", + "dev": true, + "requires": { + "@electron-forge/async-ora": "6.0.0-beta.43", + "@electron-forge/shared-types": "6.0.0-beta.43", + "fs-extra": "^8.1.0" + } + }, + "@electron/get": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.3.1.tgz", + "integrity": "sha512-FozkPRcRbHmuXh/qnry+s/GJ84hRAaUuEYYfZHvEl8n9X7a4ndhh1tVF+w4gky69XP+KHlLEO+OR95WqDy2mfg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^7.0.1", + "got": "^9.6.0", + "sumchecker": "^3.0.0" }, "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -438,83 +407,28 @@ "universalify": "^0.1.0" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, - "@electron-forge/plugin-base": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.34.tgz", - "integrity": "sha512-+mlm7PjwB9ZLzrucDDABPw1DB+efg3MZG3Szvt1T9fr10NdDpZQebBGWjIymoY9ALtFrapv0tdOmjfEDAOm1Zw==", - "dev": true, - "requires": { - "@electron-forge/shared-types": "6.0.0-beta.34" - } - }, - "@electron-forge/publisher-base": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.34.tgz", - "integrity": "sha512-XgdQz7p+pp7Lg9OqQxgd+YAVHCBu/BpJOFcu28tHUxMwKoSMgidVDsoFx9v+JdCyzk3/pRzrmvsDwZNhYXtszA==", - "dev": true - }, - "@electron-forge/publisher-github": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-github/-/publisher-github-6.0.0-beta.34.tgz", - "integrity": "sha512-Io3Pl4tWVjw+7xlogcbSCfZYrsjIJj/KPI3CnVZQxkamxOrnweexdVn432+Qjzk9Ar36NvpTBuuwKxMKcKvs/A==", - "dev": true, - "requires": { - "@electron-forge/async-ora": "6.0.0-beta.34", - "@electron-forge/publisher-base": "6.0.0-beta.34", - "@electron-forge/shared-types": "6.0.0-beta.34", - "@octokit/rest": "^16.0.1", - "fs-extra": "^7.0.0", - "lodash.merge": "^4.6.0", - "mime-types": "^2.1.22" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@electron-forge/shared-types": { - "version": "6.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.34.tgz", - "integrity": "sha512-8KOgoG08nm8Fx2sK+QznsMNwlXcQ5OB+mZZpkn7pRuIQIUGQ+xZ+r90vJ3uKiZQSzHyQXDe1LkldCNL6Hgk0Pw==", - "dev": true, - "requires": { - "@electron-forge/async-ora": "6.0.0-beta.34", - "@types/electron-packager": "^13.0.0", - "electron-rebuild": "^1.6.0", - "ora": "^3.0.0" - } - }, "@malept/electron-installer-flatpak": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@malept/electron-installer-flatpak/-/electron-installer-flatpak-0.9.0.tgz", - "integrity": "sha512-QQJE3JJ37nyK2azDQ+cDxhzgV5O2d/VOx8005gqOAtYatf4F9GVNW1SNZmGJ8gsq/EpPOxBKOsHjLUs/gFJg1w==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@malept/electron-installer-flatpak/-/electron-installer-flatpak-0.10.0.tgz", + "integrity": "sha512-I84J5awVYZUQhMF5AaWcI7CXcsMO/9tNsMxH9Ivh/IuTFPtQXs0ZjQAQ9EhESP/Avynqw0Ew3v0JQfqYTpF2yA==", "dev": true, "optional": true, "requires": { - "@malept/flatpak-bundler": "^0.2.0", + "@malept/flatpak-bundler": "^0.3.0", "debug": "^4.1.1", - "electron-installer-common": "^0.6.2", - "fs-extra": "^7.0.1", + "electron-installer-common": "^0.7.0", + "fs-extra": "^8.0.1", "lodash": "^4.13.0", - "temp": "^0.9.0", - "yargs": "^12.0.5" + "semver": "^6.1.1", + "yargs": "^13.2.4" }, "dependencies": { "debug": { @@ -527,39 +441,26 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true } } }, "@malept/flatpak-bundler": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.2.0.tgz", - "integrity": "sha512-zHGJGHnsFqkp6ks79OUcgctn4J6hA7A0JHCK3S7w76syYi5pZzxzUq8v92xaIrI43Or7AcV25pBndftgO2Jq0Q==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.3.0.tgz", + "integrity": "sha512-jOp6TWc0vLpye3390Z29otyDmzwfof8SljeqeuIL6pyGszmBFx2J4hcpq1urb+3qcGs6/ZyCgUxREZGTKz+5og==", "dev": true, "optional": true, "requires": { "debug": "^4.1.1", - "fs-extra": "^7.0.1", + "fs-extra": "^8.0.1", "lodash": "^4.16.2", - "nodeify": "^1.0.1", - "tmp-promise": "^1.0.5" + "tmp-promise": "^2.0.1" }, "dependencies": { "debug": { @@ -572,43 +473,41 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "optional": true + }, + "tmp-promise": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-2.0.2.tgz", + "integrity": "sha512-zl71nFWjPKW2KXs+73gEk8RmqvtAeXPxhWDkTUoa3MSMkjq3I+9OeknjF178MQoMYsdqL730hfzvNfEkePxq9Q==", "dev": true, "optional": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "tmp": "0.1.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true } } }, "@octokit/endpoint": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.1.2.tgz", - "integrity": "sha512-bBGGmcRFq1x0jrB29G/9KjYmO3cdHfk3476B2JOHRvLsNw1Pn3l+ZvbiqtcO9qAS4Ti+zFedLB84ziHZRZclQA==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.3.2.tgz", + "integrity": "sha512-gRjteEM9I6f4D8vtwU2iGUTn9RX/AJ0SVXiqBUEuYEWVGGAVjSXdT0oNmghH5lvQNWs8mwt6ZaultuG6yXivNw==", "dev": true, "requires": { - "deepmerge": "3.2.0", + "deepmerge": "4.0.0", "is-plain-object": "^3.0.0", - "universal-user-agent": "^2.1.0", + "universal-user-agent": "^3.0.0", "url-template": "^2.0.8" } }, "@octokit/request": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-4.1.0.tgz", - "integrity": "sha512-RvpQAba4i+BNH0z8i0gPRc1ShlHidj4puQjI/Tno6s+Q3/Mzb0XRSHJiOhpeFrZ22V7Mwjq1E7QS27P5CgpWYA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.0.1.tgz", + "integrity": "sha512-SHOk/APYpfrzV1RNf7Ux8SZi+vZXhMIB2dBr4TQR6ExMX8R4jcy/0gHw26HLe1dWV7Wxe9WzYyDSEC0XwnoCSQ==", "dev": true, "requires": { "@octokit/endpoint": "^5.1.0", @@ -617,13 +516,13 @@ "is-plain-object": "^3.0.0", "node-fetch": "^2.3.0", "once": "^1.4.0", - "universal-user-agent": "^2.1.0" + "universal-user-agent": "^3.0.0" } }, "@octokit/request-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.2.tgz", - "integrity": "sha512-T9swMS/Vc4QlfWrvyeSyp/GjhXtYaBzCcibjGywV4k4D2qVrQKfEMPy8OxMDEj7zkIIdpHwqdpVbKCvnUPqkXw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.4.tgz", + "integrity": "sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig==", "dev": true, "requires": { "deprecation": "^2.0.0", @@ -631,15 +530,15 @@ } }, "@octokit/rest": { - "version": "16.25.6", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.25.6.tgz", - "integrity": "sha512-pUM6n8OKo2lyr8zxdgkeWrqRZvnKhor420KrbcrhD7L2tJJ9VEjE/yVGySfswbMjOKJMcIGWDHfA7b3JuuueEw==", + "version": "16.28.6", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.28.6.tgz", + "integrity": "sha512-ERfzS6g6ZNPJkEUclxLenr+UEncbymCe//IBrWWdp59nslYDeJboq07Ue9brX05Uv0+SY3kwA33cdiVBVPAOMQ==", "dev": true, "requires": { - "@octokit/request": "^4.0.1", + "@octokit/request": "^5.0.0", "@octokit/request-error": "^1.0.2", "atob-lite": "^2.0.0", - "before-after-hook": "^1.4.0", + "before-after-hook": "^2.0.0", "btoa-lite": "^1.0.0", "deprecation": "^2.0.0", "lodash.get": "^4.4.2", @@ -647,49 +546,41 @@ "lodash.uniq": "^4.5.0", "octokit-pagination-methods": "^1.1.0", "once": "^1.4.0", - "universal-user-agent": "^2.0.0", + "universal-user-agent": "^3.0.0", "url-template": "^2.0.8" } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/electron-packager": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@types/electron-packager/-/electron-packager-13.0.0.tgz", - "integrity": "sha512-Q0e/ja/TfSSPM5rV9RxaPz8yew7dWSSufFsziw08hCZYQuafXkbhxs83UvQ/Hte3+c3U+ogLQKXFasGn1umn5A==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@types/electron-packager/-/electron-packager-14.0.0.tgz", + "integrity": "sha512-n47/AbT4DEYPyXtES2myPyKCxVE3hICAB3MnpoVg+Ba8CLBGOpUUsNJ5fyLhfKt5N06sT9nTk4eAc+rtYVpvTQ==", "dev": true, "requires": { - "@types/node": "*" + "@electron/get": "^1.3.1", + "@types/node": "*", + "electron-notarize": "^0.1.1", + "electron-osx-sign": "^0.4.11" } }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true, - "optional": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "optional": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true, - "optional": true - }, "@types/node": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.2.tgz", - "integrity": "sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA==", + "version": "12.6.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.8.tgz", + "integrity": "sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg==", "dev": true }, "abbrev": { @@ -699,9 +590,9 @@ "dev": true }, "acorn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.6.tgz", - "integrity": "sha512-5M3G/A4uBSMIlfJ+h9W125vJvPFH/zirISsW5qfxF5YzEvXJCtolLoQvM5yZft0DvMcUrPGKPOlgEu55I6iUtA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz", + "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==", "dev": true }, "acorn-jsx": { @@ -711,9 +602,9 @@ "dev": true }, "ajv": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", - "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -722,22 +613,16 @@ "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.3.0.tgz", - "integrity": "sha512-CMzN9S62ZOO4sA/mJZIO4S++ZM7KFWzH3PPWkveLhy4OZ9i1/VatgwWMD46w/XbGCBy7Ye0gCk+Za6mmyfKK7g==", - "dev": true - }, "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -791,41 +676,18 @@ } }, "asar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz", - "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/asar/-/asar-2.0.1.tgz", + "integrity": "sha512-Vo9yTuUtyFahkVMFaI6uMuX6N7k5DWa6a/8+7ov0/f8Lq9TVR0tUjzSzxQSxT1Y+RJIZgnP7BVb6Uhi+9cjxqA==", "dev": true, "requires": { "chromium-pickle-js": "^0.2.0", - "commander": "^2.19.0", + "commander": "^2.20.0", "cuint": "^0.2.2", "glob": "^7.1.3", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", - "pify": "^4.0.1", "tmp-promise": "^1.0.5" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } } }, "asn1": { @@ -843,6 +705,12 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -873,59 +741,6 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "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-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -948,24 +763,15 @@ } }, "before-after-hook": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz", - "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, "bluebird": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", "dev": true }, "brace-expansion": { @@ -1012,25 +818,42 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "callsites": "^0.2.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } } }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { @@ -1064,9 +887,9 @@ "dev": true }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -1075,9 +898,15 @@ } }, "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 + }, + "chownr": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", "dev": true }, "chromium-pickle-js": { @@ -1086,12 +915,6 @@ "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", "dev": true }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1102,9 +925,9 @@ } }, "cli-spinners": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz", - "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", "dev": true }, "cli-width": { @@ -1114,14 +937,14 @@ "dev": true }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -1131,13 +954,14 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } } } @@ -1148,6 +972,15 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -1155,18 +988,18 @@ "dev": true }, "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 }, "colors": { @@ -1305,6 +1138,15 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -1318,9 +1160,9 @@ "dev": true }, "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.0.0.tgz", + "integrity": "sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww==", "dev": true }, "defaults": { @@ -1332,6 +1174,12 @@ "clone": "^1.0.2" } }, + "defer-to-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz", + "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1342,31 +1190,31 @@ }, "dependencies": { "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true } } }, "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-3.1.0.tgz", + "integrity": "sha512-al10l5QAYaM/PeuXkAr1Y9AQz0LCtWsnJG23pIgh44hDxHFOj36l6qvhfjnIWBYwZOqM1fXUFV9tkjL7JPdGvw==", "dev": true, "requires": { "find-root": "^1.0.0", "glob": "^7.0.5", - "ignore": "^3.0.9", + "ignore": "^5.0.0", "pkg-config": "^1.1.0", "run-parallel": "^1.1.2", "uniq": "^1.0.1" }, "dependencies": { "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", "dev": true } } @@ -1384,9 +1232,9 @@ "dev": true }, "deprecation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.0.0.tgz", - "integrity": "sha512-lbQN037mB3VfA2JFuguM5GCJ+zPinMeCrFe+AfSZ6eqrnJA/Fs+EYMnd6Nb2mn9lf2jO9xwEd9o9lic+D4vkcw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, "detect-libc": { @@ -1396,14 +1244,20 @@ "dev": true }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -1415,9 +1269,9 @@ } }, "electron": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-5.0.1.tgz", - "integrity": "sha512-8KksyhAPcpXVeO8ViVGxfZAuf8yEVBCtV0h/lMBD8VFbCQ9icej1K5csCFAGirbZbqOz5IdsBZX9Gpb9n4RCag==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-5.0.8.tgz", + "integrity": "sha512-wkUVE2GaYCsqQTsISSHWkIkcdpwLwZ1jhzAXSFFoSzsTgugmzhX60rJjIccotUmZ0iPzw+u4ahfcaJ0eslrPNQ==", "dev": true, "requires": { "@types/node": "^10.12.18", @@ -1426,9 +1280,9 @@ }, "dependencies": { "@types/node": { - "version": "10.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", - "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==", + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==", "dev": true } } @@ -1459,6 +1313,12 @@ "ms": "^2.1.1" } }, + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true + }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", @@ -1470,37 +1330,62 @@ "universalify": "^0.1.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true + }, + "sumchecker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", + "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "dev": true, + "requires": { + "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } } } }, "electron-installer-common": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/electron-installer-common/-/electron-installer-common-0.6.3.tgz", - "integrity": "sha512-ylecrLzz2Qmfv9QgFBoQAcB7i51ROUXguA0EExo70LVeJznDi94vCwVSoKotC7BslmUH6Iz1vYZOyqMon8PhcA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/electron-installer-common/-/electron-installer-common-0.7.3.tgz", + "integrity": "sha512-l4chYFTWr6uWODKYUXeC+Z4tqGa3b8e+Y2WUBf3F7Ruv6yYzZ+Ccic65oXreeotx09B7sUx1KTuwXRsRJHKlMw==", "dev": true, "optional": true, "requires": { - "asar": "^1.0.0", + "asar": "^2.0.1", "cross-spawn-promise": "^0.10.1", "debug": "^4.1.1", - "fs-extra": "^7.0.1", - "glob": "^7.1.3", - "glob-promise": "^3.4.0", + "fs-extra": "^8.0.1", + "glob": "^7.1.4", "lodash": "^4.17.11", "parse-author": "^2.0.0", "semver": "^6.0.0", - "tmp-promise": "^1.0.5" + "tmp-promise": "^2.0.1" }, "dependencies": { "debug": { @@ -1513,92 +1398,41 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "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" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true, - "optional": true - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true }, - "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==", + "tmp-promise": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-2.0.2.tgz", + "integrity": "sha512-zl71nFWjPKW2KXs+73gEk8RmqvtAeXPxhWDkTUoa3MSMkjq3I+9OeknjF178MQoMYsdqL730hfzvNfEkePxq9Q==", "dev": true, - "optional": true + "optional": true, + "requires": { + "tmp": "0.1.0" + } } } }, "electron-installer-debian": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-1.2.0.tgz", - "integrity": "sha512-gowfDlBY4NPZ6dMLsoSJzEeXlEa650NAjvtnYk6/Ikq9tFtS7xCs+Oyk91gNGDbFczA8QAelmR4KX4hV/eebKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-2.0.0.tgz", + "integrity": "sha512-FNdoIzCFhaHiOoLOacWvoUHV80AV/+iH6KNYNiYlB8LmqQKNTPKXNVfZHet/7yDZi2Md4DxRy4gsokEPvV8QSg==", "dev": true, "optional": true, "requires": { "debug": "^4.1.1", - "electron-installer-common": "^0.6.2", - "fs-extra": "^7.0.1", + "electron-installer-common": "^0.7.1", + "fs-extra": "^8.0.1", "get-folder-size": "^2.0.1", "lodash": "^4.17.4", - "pify": "^4.0.1", "word-wrap": "^1.2.3", "yargs": "^13.2.2" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "optional": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1609,155 +1443,30 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "optional": true - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "optional": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "optional": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "optional": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } - }, - "yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", - "dev": true, - "optional": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, "electron-installer-redhat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/electron-installer-redhat/-/electron-installer-redhat-1.1.0.tgz", - "integrity": "sha512-wea1fZ1VOEZBJ5Y+/D2So04PnhfwoEPFW4rD9UlP/ODIggkDHY6ZLsXj0SRPGKGJqmTzP16Taoj7YNsmxYEL2g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-installer-redhat/-/electron-installer-redhat-2.0.0.tgz", + "integrity": "sha512-kf7+/t8XIp1I6LIV9v6K38rBHzmY6bUr3TunJZKdlIKQ7j6wyjjpgbpxSBcg3S7pgzq1kkgCYZvpr8CsLFVivw==", "dev": true, "optional": true, "requires": { "debug": "^4.1.1", - "electron-installer-common": "^0.6.2", - "fs-extra": "^7.0.1", + "electron-installer-common": "^0.7.1", + "fs-extra": "^8.0.1", "lodash": "^4.17.4", - "nodeify": "^1.0.1", "word-wrap": "^1.2.3", "yargs": "^13.2.2" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "optional": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1768,110 +1477,12 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "optional": true - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "optional": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "optional": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "optional": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } - }, - "yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", - "dev": true, - "optional": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -1881,13 +1492,13 @@ "integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=" }, "electron-notarize": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.0.5.tgz", - "integrity": "sha512-YzrqZ6RDQ7Wt2RWlxzRoQUuxnTeXrfp7laH7XKcmQqrZ6GaAr50DMPvFMpqDKdrZSHSbcgZgB7ktIQbjvITmCQ==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.1.1.tgz", + "integrity": "sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg==", "dev": true, "requires": { - "debug": "^4.1.0", - "fs-extra": "^7.0.0" + "debug": "^4.1.1", + "fs-extra": "^8.0.1" }, "dependencies": { "debug": { @@ -1899,21 +1510,10 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -1930,38 +1530,30 @@ "isbinaryfile": "^3.0.2", "minimist": "^1.2.0", "plist": "^3.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "electron-packager": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.1.1.tgz", - "integrity": "sha512-3Drgcw8OEOP3Psw/PprloAFJSkSUSQgjUq3AmWffJGB3Kj5WXmZl6A3GOUs8aT7bP/8GWg4oYqSiCSnA5PQkdQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-14.0.2.tgz", + "integrity": "sha512-QJyttK+GlgJFwjueOpGWN7gZ67WsHkstzCieAyojiw6mLzdBz54q+2oZidF7GfB8bkWVxsMUQa7WrHV13e2eQw==", "dev": true, "requires": { - "asar": "^1.0.0", + "@electron/get": "^1.3.0", + "asar": "^2.0.1", + "cross-zip": "^2.1.5", "debug": "^4.0.1", - "electron-download": "^4.1.1", - "electron-notarize": "^0.0.5", + "electron-notarize": "^0.1.1", "electron-osx-sign": "^0.4.11", - "extract-zip": "^1.0.3", - "fs-extra": "^7.0.0", + "fs-extra": "^8.1.0", "galactus": "^0.2.1", "get-package-info": "^1.0.0", + "junk": "^3.1.0", "parse-author": "^2.0.0", - "pify": "^4.0.0", "plist": "^3.0.0", - "rcedit": "^1.0.0", + "rcedit": "^2.0.0", "resolve": "^1.1.6", "sanitize-filename": "^1.6.0", - "semver": "^5.3.0", + "semver": "^6.0.0", "yargs-parser": "^13.0.0" }, "dependencies": { @@ -1974,56 +1566,29 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, "electron-rebuild": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.4.tgz", - "integrity": "sha512-QBUZg1due+R0bww5rNd4gEcsKczyhxyLrxSFZlKihwHRxaiHrGut532JAUe0fRz+VIU4WNSfNKyZ/ZwSGjaDhA==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz", + "integrity": "sha512-gDwRA3utfiPnFwBZ1z8M4SEMwsdsy6Bg4VGO2ohelMOIO0vxiCrDQ/FVdLk3h2g7fLb06QFUsQU+86jiTSmZxw==", "dev": true, "requires": { "colors": "^1.3.3", "debug": "^4.1.1", "detect-libc": "^1.0.3", "fs-extra": "^7.0.1", - "node-abi": "^2.7.0", - "node-gyp": "^3.8.0", - "ora": "^3.0.0", + "node-abi": "^2.8.0", + "node-gyp": "^4.0.0", + "ora": "^3.4.0", "spawn-rx": "^3.0.0", - "yargs": "^12.0.5" + "yargs": "^13.2.2" }, "dependencies": { "debug": { @@ -2047,9 +1612,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -2078,6 +1643,23 @@ "temp": "^0.9.0" }, "dependencies": { + "asar": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz", + "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==", + "dev": true, + "optional": true, + "requires": { + "chromium-pickle-js": "^0.2.0", + "commander": "^2.19.0", + "cuint": "^0.2.2", + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "pify": "^4.0.1", + "tmp-promise": "^1.0.5" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -2101,9 +1683,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true }, @@ -2120,8 +1702,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true, - "optional": true + "dev": true }, "end-of-stream": { "version": "1.4.1", @@ -2133,9 +1714,9 @@ } }, "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, "error-ex": { @@ -2162,9 +1743,9 @@ }, "dependencies": { "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true } } @@ -2187,49 +1768,48 @@ "dev": true }, "eslint": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.4.0.tgz", - "integrity": "sha512-UIpL91XGex3qtL6qwyCQJar2j3osKxK9e3ano3OcGEIRM4oWIpCkDg9x95AXEC2wMs7PnxzOkPZ2gq+tsMS9yg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", + "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", "dev": true, "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", + "espree": "^6.0.0", "esquery": "^1.0.1", "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", + "glob-parent": "^5.0.0", "globals": "^11.7.0", - "ignore": "^4.0.2", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", + "inquirer": "^6.4.1", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.5", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { "cross-spawn": { @@ -2243,72 +1823,49 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + } } }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "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.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.1.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^5.5.2", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true } } }, "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-13.0.1.tgz", + "integrity": "sha512-zLKp4QOgq6JFgRm1dDCVv1Iu0P5uZ4v5Wa4DTOkg2RFMxdCX/9Qf7lz9ezRj2dBRa955cWQF/O/LWEiYWAHbTw==", "dev": true }, "eslint-config-standard-jsx": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz", - "integrity": "sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-7.0.0.tgz", + "integrity": "sha512-OiKOF3MFVmWOCVfsi8GHlVorOEiBsPzAnUhM3c6HML94O2krbdQ/eMABySHgHHOIBYRls9sR9I3lo6O0vXhVEg==", "dev": true }, "eslint-import-resolver-node": { @@ -2322,9 +1879,9 @@ } }, "eslint-module-utils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz", - "integrity": "sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", + "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", "dev": true, "requires": { "debug": "^2.6.8", @@ -2342,21 +1899,22 @@ } }, "eslint-plugin-import": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", - "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", "dev": true, "requires": { + "array-includes": "^3.0.3", "contains-path": "^0.1.0", - "debug": "^2.6.8", + "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.2.0", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", "read-pkg-up": "^2.0.0", - "resolve": "^1.6.0" + "resolve": "^1.11.0" }, "dependencies": { "doctrine": { @@ -2368,103 +1926,63 @@ "esutils": "^2.0.2", "isarray": "^1.0.0" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true } } }, "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz", + "integrity": "sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", + "eslint-plugin-es": "^1.4.0", "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", + "ignore": "^5.1.1", "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "dev": true + } } }, "eslint-plugin-promise": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz", - "integrity": "sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", "dev": true }, "eslint-plugin-react": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", - "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", + "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", "dev": true, "requires": { "array-includes": "^3.0.3", "doctrine": "^2.1.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.2" + "jsx-ast-utils": "^2.1.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } } }, "eslint-plugin-standard": { @@ -2474,9 +1992,9 @@ "dev": true }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -2484,10 +2002,13 @@ } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz", + "integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.0.0" + } }, "eslint-visitor-keys": { "version": "1.0.0", @@ -2496,12 +2017,12 @@ "dev": true }, "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.0.0.tgz", + "integrity": "sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q==", "dev": true, "requires": { - "acorn": "^6.0.2", + "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" } @@ -2569,6 +2090,12 @@ "shebang-command": "^1.2.0", "which": "^1.2.9" } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true } } }, @@ -2588,13 +2115,13 @@ "dev": true }, "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.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", "tmp": "^0.0.33" }, "dependencies": { @@ -2664,13 +2191,12 @@ } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "find-root": { @@ -2680,85 +2206,81 @@ "dev": true }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "dependencies": { "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" + "p-locate": "^4.1.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } } }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" } }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, "flora-colossus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.0.tgz", - "integrity": "sha1-VHKcNh7ezuAU3UQWeeGjfB13OkU=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz", + "integrity": "sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==", "dev": true, "requires": { - "debug": "^3.1.0", - "fs-extra": "^4.0.0" + "debug": "^4.1.1", + "fs-extra": "^7.0.0" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -2767,9 +2289,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -2792,33 +2314,30 @@ } }, "fs-extra": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.0.1.tgz", - "integrity": "sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, + "fs-minipass": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", + "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2863,9 +2382,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -2911,9 +2430,9 @@ } }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-folder-size": { @@ -2946,71 +2465,6 @@ "debug": "^2.2.0", "lodash.get": "^4.0.0", "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } } }, "get-stdin": { @@ -3046,9 +2500,9 @@ } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3059,14 +2513,13 @@ "path-is-absolute": "^1.0.0" } }, - "glob-promise": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", - "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", "dev": true, - "optional": true, "requires": { - "@types/glob": "*" + "is-glob": "^4.0.1" } }, "global-modules": { @@ -3094,15 +2547,34 @@ } }, "globals": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", - "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" }, "har-schema": { "version": "2.0.0", @@ -3129,23 +2601,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -3179,6 +2634,12 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "dev": true + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -3205,6 +2666,16 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -3231,9 +2702,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "ini": { @@ -3243,9 +2714,9 @@ "dev": true }, "inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", @@ -3254,7 +2725,7 @@ "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", @@ -3263,61 +2734,18 @@ "through": "^2.3.6" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "external-editor": { - "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.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "rxjs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", - "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -3338,56 +2766,15 @@ } } } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } } } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", @@ -3400,6 +2787,12 @@ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", @@ -3418,6 +2811,15 @@ "number-is-nan": "^1.0.0" } }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-plain-object": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", @@ -3428,11 +2830,10 @@ } }, "is-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", - "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", - "dev": true, - "optional": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, "is-regex": { "version": "1.0.4", @@ -3443,12 +2844,6 @@ "has": "^1.0.1" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -3527,9 +2922,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": { @@ -3548,6 +2943,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -3599,21 +3000,28 @@ } }, "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", + "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", "dev": true, "requires": { - "array-includes": "^3.0.3" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "json-buffer": "3.0.0" } }, "levn": { @@ -3627,48 +3035,31 @@ } }, "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "strip-bom": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "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", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } } }, "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.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "lodash._reinterpolate": { @@ -3690,9 +3081,9 @@ "dev": true }, "lodash.merge": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", - "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.set": { @@ -3702,22 +3093,22 @@ "dev": true }, "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, "requires": { - "lodash._reinterpolate": "~3.0.0", + "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, "requires": { - "lodash._reinterpolate": "~3.0.0" + "lodash._reinterpolate": "^3.0.0" } }, "lodash.uniq": { @@ -3727,12 +3118,12 @@ "dev": true }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "chalk": "^2.0.1" + "chalk": "^2.4.2" } }, "loose-envify": { @@ -3754,6 +3145,12 @@ "signal-exit": "^3.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -3765,9 +3162,9 @@ } }, "macos-release": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.2.0.tgz", - "integrity": "sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", "dev": true }, "map-age-cleaner": { @@ -3822,11 +3219,78 @@ "trim-newlines": "^1.0.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } } } }, @@ -3851,6 +3315,12 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -3861,11 +3331,38 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -3873,6 +3370,14 @@ "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } } }, "ms": { @@ -3899,12 +3404,20 @@ "dev": true }, "node-abi": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz", - "integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.9.0.tgz", + "integrity": "sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA==", "dev": true, "requires": { "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + } } }, "node-fetch": { @@ -3914,12 +3427,11 @@ "dev": true }, "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==", "dev": true, "requires": { - "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", "mkdirp": "^0.5.0", @@ -3929,7 +3441,7 @@ "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", - "tar": "^2.0.0", + "tar": "^4.4.8", "which": "1" }, "dependencies": { @@ -3941,17 +3453,6 @@ } } }, - "nodeify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", - "integrity": "sha1-ZKtpp7268DzhB7TwM1yHwLnpGx0=", - "dev": true, - "optional": true, - "requires": { - "is-promise": "~1.0.0", - "promise": "~1.3.0" - } - }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -3962,17 +3463,31 @@ } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + } } }, + "normalize-url": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", + "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", + "dev": true + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4007,14 +3522,6 @@ "request": "^2.45.0", "single-line-log": "^1.1.2", "throttleit": "0.0.2" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "number-is-nan": { @@ -4041,6 +3548,62 @@ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", "dev": true }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", + "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.11.0", + "function-bind": "^1.1.1", + "has": "^1.0.1" + } + }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "octokit-pagination-methods": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", @@ -4065,10 +3628,10 @@ "mimic-fn": "^1.0.0" } }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -4102,30 +3665,13 @@ "wcwidth": "^1.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" + "chalk": "^2.0.1" } } } @@ -4136,17 +3682,6 @@ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -4173,6 +3708,12 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -4192,29 +3733,38 @@ "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.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^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.1.0" + "p-limit": "^2.0.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-author": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", @@ -4257,12 +3807,6 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -4276,22 +3820,12 @@ "dev": true }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "pify": "^2.0.0" } }, "pend": { @@ -4307,9 +3841,9 @@ "dev": true }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { @@ -4328,34 +3862,35 @@ } }, "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", "dev": true, "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" }, "dependencies": { "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" } }, "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.1.15", "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" } }, "parse-json": { @@ -4368,10 +3903,10 @@ "json-parse-better-errors": "^1.0.1" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true } } @@ -4388,9 +3923,9 @@ }, "dependencies": { "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true } } @@ -4412,6 +3947,40 @@ "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 } } }, @@ -4426,18 +3995,18 @@ "xmldom": "0.1.x" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, "pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -4449,18 +4018,18 @@ } }, "pretty-ms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-4.0.0.tgz", - "integrity": "sha512-qG66ahoLCwpLXD09ZPHSCbUWYTqdosB7SMP4OffgTgL2PBKXMuUsrk5Bwg8q4qPkjTXsKBMr+YK3Ltd/6F9s/Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-5.0.0.tgz", + "integrity": "sha512-94VRYjL9k33RzfKiGokPBPpsmloBYSf5Ri+Pq19zlsEcUKFob+admeXr5eFDRuPjFmEOcjJvPGdillYOJyvZ7Q==", "dev": true, "requires": { - "parse-ms": "^2.0.0" + "parse-ms": "^2.1.0" } }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "progress": { @@ -4479,24 +4048,15 @@ "through2": "~0.2.3" } }, - "promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz", - "integrity": "sha1-5cyaTIJ45GZP/twBx9qEhCsEAXU=", - "dev": true, - "optional": true, - "requires": { - "is-promise": "~1" - } - }, "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "pseudomap": { @@ -4506,9 +4066,9 @@ "dev": true }, "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", + "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==", "dev": true }, "pump": { @@ -4543,61 +4103,83 @@ "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", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "rcedit": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-1.1.2.tgz", - "integrity": "sha512-z2ypB4gbINhI6wVe0JJMmdpmOpmNc4g90sE6/6JSuch5kYnjfz9CxvVPqqhShgR6GIkmtW3W2UlfiXhWljA0Fw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-2.0.0.tgz", + "integrity": "sha512-XcFGyEBjhWSsud+R8elwQtGBbVkCf7tAiad+nXo5jc6l2rMf46NfGNwjnmBNneBIZDfq+Npf8lwP371JTONfrw==", + "dev": true + }, + "react-is": { + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", "dev": true }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", + "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "path-type": "^2.0.0" } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "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": { - "pinkie-promise": "^2.0.0" + "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 } } }, @@ -4627,9 +4209,9 @@ } }, "regenerator-runtime": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", - "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", "dev": true, "optional": true }, @@ -4683,28 +4265,18 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "^1.0.6" } }, "resolve-dir": { @@ -4718,9 +4290,9 @@ } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve-package": { @@ -4732,6 +4304,15 @@ "get-installed-path": "^2.0.3" } }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -4743,12 +4324,12 @@ } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "run-async": { @@ -4758,14 +4339,6 @@ "dev": true, "requires": { "is-promise": "^2.1.0" - }, - "dependencies": { - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - } } }, "run-parallel": { @@ -4775,12 +4348,12 @@ "dev": true }, "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -4805,9 +4378,9 @@ } }, "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "set-blocking": { @@ -4847,11 +4420,13 @@ } }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { @@ -4888,23 +4463,12 @@ "debug": "^2.5.1", "lodash.assign": "^4.2.0", "rxjs": "^6.3.1" - }, - "dependencies": { - "rxjs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", - "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } } }, "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.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -4912,9 +4476,9 @@ } }, "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": { @@ -4928,9 +4492,9 @@ } }, "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.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "speedometer": { @@ -4963,44 +4527,38 @@ } }, "standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/standard/-/standard-12.0.1.tgz", - "integrity": "sha512-UqdHjh87OG2gUrNCSM4QRLF5n9h3TFPwrCNyVlkqu31Hej0L/rc8hzKqVvkb2W3x0WMq7PzZdkLfEcBhVOR6lg==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-13.1.0.tgz", + "integrity": "sha512-h3NaMzsa88+/xtjXCMvdn6EWWdlodsI/HvtsQF+EGwrF9kVNwNha9TkFABU6bSBoNfC79YDyIAq9ekxOMBFkuw==", "dev": true, "requires": { - "eslint": "~5.4.0", - "eslint-config-standard": "12.0.0", - "eslint-config-standard-jsx": "6.0.2", - "eslint-plugin-import": "~2.14.0", - "eslint-plugin-node": "~7.0.1", - "eslint-plugin-promise": "~4.0.0", - "eslint-plugin-react": "~7.11.1", + "eslint": "~6.1.0", + "eslint-config-standard": "13.0.1", + "eslint-config-standard-jsx": "7.0.0", + "eslint-plugin-import": "~2.18.0", + "eslint-plugin-node": "~9.1.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.14.2", "eslint-plugin-standard": "~4.0.0", - "standard-engine": "~9.0.0" + "standard-engine": "~11.0.1" } }, "standard-engine": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-9.0.0.tgz", - "integrity": "sha512-ZfNfCWZ2Xq67VNvKMPiVMKHnMdvxYzvZkf1AH8/cw2NLDBm5LRsxMqvEJpsjLI/dUosZ3Z1d6JlHDp5rAvvk2w==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-11.0.1.tgz", + "integrity": "sha512-WZQ5PpEDfRzPFk+H9xvKVQPQIxKnAQB2cb2Au4NyTCtdw5R0pyMBUZLbPXyFjnlhe8Ae+zfNrWU4m6H5b7cEAg==", "dev": true, "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", + "deglob": "^3.0.0", + "get-stdin": "^7.0.0", "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "pkg-conf": "^3.1.0" }, "dependencies": { "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 - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", "dev": true } } @@ -5043,22 +4601,19 @@ } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } }, "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-eof": { "version": "1.0.0", @@ -5082,18 +4637,35 @@ "dev": true }, "sudo-prompt": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", - "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.0.0.tgz", + "integrity": "sha512-kUn5fiOk0nhY2oKD9onIkcNCE4Zt85WTsvOfSmqCplmlEvXCcPOmp1npH5YWuf8Bmyy9wLWkIxx+D+8cThBORQ==", "dev": true }, "sumchecker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", - "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.0.tgz", + "integrity": "sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ==", "dev": true, "requires": { - "debug": "^2.2.0" + "debug": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "supports-color": { @@ -5105,24 +4677,16 @@ "has-flag": "^3.0.0" } }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - }, "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.4.tgz", + "integrity": "sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -5132,26 +4696,39 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } } } }, "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", + "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } } }, "temp": { @@ -5232,31 +4809,6 @@ "dev": true, "requires": { "rimraf": "^2.6.3" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } } }, "tmp-promise": { @@ -5269,6 +4821,12 @@ "tmp": "0.1.0" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -5303,9 +4861,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tunnel-agent": { @@ -5332,6 +4890,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -5345,9 +4909,9 @@ "dev": true }, "universal-user-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.1.0.tgz", - "integrity": "sha512-8itiX7G05Tu3mGDTdNY2fB4KJ8MgZLS54RdG6PkkfwMAavrXu1mV/lls/GABx9O3Rw4PnTtasxrvbMQoBYY92Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-3.0.0.tgz", + "integrity": "sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA==", "dev": true, "requires": { "os-name": "^3.0.0" @@ -5359,9 +4923,9 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "update-electron-app": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/update-electron-app/-/update-electron-app-1.3.0.tgz", - "integrity": "sha512-OXfcmeenpjMyzXmadZ6NqxnrpPpiLji0sLUpXkexfX97XM8Gnk4iLovk4TlK4N8dzlETWdm9klgMmo9HpRbK7Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/update-electron-app/-/update-electron-app-1.5.0.tgz", + "integrity": "sha512-g7noW9JfQ8Hwq6zw9lmZei+R/ikOIBcaZ04TbmIcU5zNfv23HkN80QLLAyiR/47KvfS4sjnh2/wuDq5nh8+0mQ==", "requires": { "electron-is-dev": "^0.3.0", "github-url-to-object": "^4.0.4", @@ -5370,9 +4934,9 @@ }, "dependencies": { "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -5385,6 +4949,15 @@ "punycode": "^2.1.0" } }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "url-template": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", @@ -5392,13 +4965,13 @@ "dev": true }, "username": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/username/-/username-4.1.0.tgz", - "integrity": "sha512-sKh1KCsMfv8jPIC9VdeQhrNAgkl842jS/M74HQv7Byr0AMAwKZt8mLWX9DmtMeD8nQA3eKa10f5LbqlSVmokMg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", + "integrity": "sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==", "dev": true, "requires": { "execa": "^1.0.0", - "mem": "^4.0.0" + "mem": "^4.3.0" } }, "utf8-byte-length": { @@ -5419,6 +4992,12 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -5496,28 +5075,31 @@ "dev": true }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } } } @@ -5529,9 +5111,9 @@ "dev": true }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" @@ -5571,25 +5153,32 @@ "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" }, "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -5597,21 +5186,22 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } } } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index 4625a9b..fdd89b2 100644 --- a/package.json +++ b/package.json @@ -29,19 +29,19 @@ }, "dependencies": { "electron-squirrel-startup": "^1.0.0", - "fs-extra": "^8.0.1", - "update-electron-app": "^1.3.0" + "fs-extra": "^8.1.0", + "update-electron-app": "^1.5.0" }, "devDependencies": { - "@electron-forge/cli": "^6.0.0-beta.34", - "@electron-forge/maker-deb": "^6.0.0-beta.34", - "@electron-forge/maker-flatpak": "^6.0.0-beta.34", - "@electron-forge/maker-rpm": "^6.0.0-beta.34", - "@electron-forge/maker-squirrel": "^6.0.0-beta.34", - "@electron-forge/maker-zip": "^6.0.0-beta.34", - "@electron-forge/publisher-github": "^6.0.0-beta.34", - "electron": "5.0.1", - "node-abi": "^2.8.0", - "standard": "^12.0.1" + "@electron-forge/cli": "^6.0.0-beta.43", + "@electron-forge/maker-deb": "^6.0.0-beta.43", + "@electron-forge/maker-flatpak": "^6.0.0-beta.43", + "@electron-forge/maker-rpm": "^6.0.0-beta.43", + "@electron-forge/maker-squirrel": "^6.0.0-beta.43", + "@electron-forge/maker-zip": "^6.0.0-beta.43", + "@electron-forge/publisher-github": "^6.0.0-beta.43", + "electron": "5.0.8", + "node-abi": "^2.9.0", + "standard": "^13.1.0" } } From 153002403b9a498012022be006d59b6cdc2b6194 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 24 Jul 2019 08:57:23 -0700 Subject: [PATCH 02/19] wip --- src/renderer/buttons.js | 40 +++++++++++++-------- src/renderer/index.html | 41 +++++++++++++-------- src/renderer/style/start.png | Bin 0 -> 7068 bytes src/renderer/style/style.css | 43 ++++++++--------------- src/renderer/style/vendor/95.ttf | Bin 0 -> 29460 bytes src/renderer/style/vendor/95css.css | 1 + src/renderer/style/vendor/LICENSE | 21 +++++++++++ src/renderer/style/vendor/bg-pattern.png | Bin 0 -> 144 bytes src/renderer/style/vendor/dropdown.png | Bin 0 -> 2384 bytes src/renderer/style/vendor/windows.woff | Bin 0 -> 7108 bytes src/renderer/style/vendor/windows.woff2 | Bin 0 -> 4760 bytes 11 files changed, 89 insertions(+), 57 deletions(-) create mode 100644 src/renderer/style/start.png create mode 100644 src/renderer/style/vendor/95.ttf create mode 100644 src/renderer/style/vendor/95css.css create mode 100644 src/renderer/style/vendor/LICENSE create mode 100644 src/renderer/style/vendor/bg-pattern.png create mode 100644 src/renderer/style/vendor/dropdown.png create mode 100644 src/renderer/style/vendor/windows.woff create mode 100644 src/renderer/style/vendor/windows.woff2 diff --git a/src/renderer/buttons.js b/src/renderer/buttons.js index 69b2547..7205411 100644 --- a/src/renderer/buttons.js +++ b/src/renderer/buttons.js @@ -1,25 +1,32 @@ const $ = document.querySelector.bind(document) +const $$ = document.querySelectorAll.bind(document) export function setupButtons (start) { - // Start - $('.btn-start').addEventListener('click', () => start()) + // Sections + $('a#start').addEventListener('click', () => setVisibleSection('start')) + $('a#floppy').addEventListener('click', () => setVisibleSection('floppy')) + $('a#state').addEventListener('click', () => setVisibleSection('state')) + $('a#disk-image').addEventListener('click', () => setVisibleSection('disk-image')) - // Disk Image - $('#show-disk-image').addEventListener('click', () => windows95.showDiskImage()) + // // Start + // $('.btn-start').addEventListener('click', () => start()) - // Reset - $('#reset').addEventListener('click', () => windows95.resetState()) + // // Disk Image + // $('#show-disk-image').addEventListener('click', () => windows95.showDiskImage()) - $('#discard-state').addEventListener('click', () => { - window.appState.bootFresh = true + // // Reset + // $('#reset').addEventListener('click', () => windows95.resetState()) - start() - }) + // $('#discard-state').addEventListener('click', () => { + // window.appState.bootFresh = true - // Floppy - $('#floppy').addEventListener('click', () => { - $('#file-input').click() - }) + // start() + // }) + + // // Floppy + // $('#floppy').addEventListener('click', () => { + // $('#file-input').click() + // }) // Floppy (Hidden Input) $('#file-input').addEventListener('change', (event) => { @@ -42,3 +49,8 @@ export function toggleButtons (forceTo) { buttonElements.style.display = undefined } } + +function setVisibleSection(id = '') { + $$(`section`).forEach((s) => s.classList.remove('visible')) + $(`section#section-${id}`).classList.add('visible') +} diff --git a/src/renderer/index.html b/src/renderer/index.html index 667266d..9cebad4 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -1,5 +1,5 @@ - + @@ -7,6 +7,7 @@ Windows + @@ -16,24 +17,16 @@ | CPU Speed: 0 | Hide -
-
- -
+
+
Start Windows 95
Hit ESC to lock or unlock your mouse
- -
-
-
Reset Machine & Delete State
-
Insert Floppy Disk
-
Discard State & Boot From Scratch
-
Show Disk Image
- -
+ +
+

You can insert a floppy disk image with the ".img" format.

@@ -42,7 +35,25 @@ or if you've changed the disk image.

-
+ +
+ +
+
+ +
+ +
diff --git a/src/renderer/style/start.png b/src/renderer/style/start.png new file mode 100644 index 0000000000000000000000000000000000000000..fb85313da4c46fdc87752deabaaa810c6709c0b7 GIT binary patch literal 7068 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 literal 0 HcmV?d00001 diff --git a/src/renderer/style/style.css b/src/renderer/style/style.css index b9b3c17..c932632 100644 --- a/src/renderer/style/style.css +++ b/src/renderer/style/style.css @@ -26,8 +26,6 @@ body.paused { z-index: 100; left: calc(50vw - 110px); background: white; - text-align: center; - font-family: Courier; font-size: 10px; padding-bottom: 3px; border-bottom-left-radius: 15px; @@ -36,6 +34,7 @@ body.paused { padding-left: 10px; padding-right: 10px; max-height: 18px; + top: 0; } #floppy-path { @@ -63,37 +62,25 @@ body.paused { display: none; } -#other-buttons { - position: absolute; - width: 100vw; - height: 100px; - display: flex; - align-items: flex-end; - bottom: 0; - justify-content: center; +.windows95 nav .nav-link, +.windows95 nav .nav-logo { + height: 30px; + line-height: 1.5; } -#start-buttons { +.windows95 nav .nav-logo img { + max-height: 20px; +} + +section { + display: none; +} + +section.visible { + display: flex; position: absolute; width: 100vw; height: 100vh; - display: flex; align-items: center; justify-content: center; } - -.btn { - font-family: Courier; - cursor: pointer; - background: #ffd2fd; - margin: 10px; - padding: 5px; - text-align: center; -} - -.btn:hover { - cursor: pointer; - background: #ff95fa; - margin: 10px; - padding: 5px; -} diff --git a/src/renderer/style/vendor/95.ttf b/src/renderer/style/vendor/95.ttf new file mode 100644 index 0000000000000000000000000000000000000000..437517287dfc27a7813edb0686433c56276220a2 GIT binary patch literal 29460 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.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@font-face{font-family:windows;src:url(windows.woff2) format("woff2"),url(windows.woff) format("woff")}body{font-family:windows,monospace;font-size:.8rem;line-height:1.7;padding:60px 0;color:#000;background-color:#008483}code,mark{background-color:#c3c3c3}code{padding:2px 4px;font-family:windows}.btn,button,input[type=submit]{font-size:.8rem;position:relative;display:inline-block;width:auto;height:30px;padding:2px 15px;border-color:#fff #000 #000 #fff;border-style:solid;border-width:2px;background-color:#c3c3c3}.btn:before,button:before,input[type=submit]:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";border-color:#dedede grey grey #dedede;border-style:solid;border-width:2px}.btn.active,.btn:focus,button.active,button:focus,input[type=submit].active,input[type=submit]:focus{border-color:#000 #fff #fff #000;outline:none}.btn.active:before,.btn:focus:before,button.active:before,button:focus:before,input[type=submit].active:before,input[type=submit]:focus:before{border-color:grey #dedede #dedede grey}.btn.disabled,button.disabled,input[type=submit].disabled{background-color:#c3c3c3}.input,input,select,textarea{font-size:.6rem;width:100%;height:30px;padding-left:8px;border-color:#000 #fff #fff #000;border-style:solid;border-width:2px;background-color:#fff}.input:focus,input:focus,select:focus,textarea:focus{outline:none}.disabled.input,.input:disabled,input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background-color:#c3c3c3}textarea{min-height:150px}select{padding:2px 32px 2px 4px;border-radius:0;background-image:url("data:image/png;base64,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");background-repeat:no-repeat;background-position:100%;background-size:26px;-webkit-appearance:none}fieldset{position:relative;margin-bottom:20px;padding:10px;border-color:grey #fff #fff grey;background-color:#c3c3c3}fieldset,fieldset:before{border-style:solid;border-width:2px}fieldset:before{position:absolute;top:11px;right:0;bottom:0;left:0;display:block;content:"";border-color:#dedede grey grey #dedede}legend{font-size:.9rem;font-weight:700;position:relative;display:inline-block;width:auto;padding:0 3px;background-color:#c3c3c3}.input-field{margin-bottom:20px}.link,.link:active,.link:hover,.link:link,.link:visited,a,a:active,a:hover,a:link,a:visited{color:#c3c3c3}::-webkit-scrollbar{width:20px;background-image:url(bg-pattern.png);background-size:20px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{position:relative;border-color:#fff #000 #000 #fff;border-style:solid;border-width:2px;background:#c3c3c3;background-color:#c3c3c3}::-webkit-scrollbar-thumb:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";border-color:#dedede grey grey #dedede;border-style:solid;border-width:2px}.card,.modal-dialog{position:relative;border-color:#fff #000 #000 #fff;border-style:solid;border-width:2px;background-color:#c3c3c3}.card:before,.modal-dialog:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";pointer-events:none;border-color:#dedede grey grey #dedede;border-style:solid;border-width:2px}.card-header,.modal-header{width:calc(100% - 4px);margin:2px;padding:4px 10px 6px;color:#fff;background-color:#0f0086}.card-title,.modal-title{font-size:1rem;display:block;margin:0}.card-body,.modal-body{margin:10px}.modal{display:none}.modal.is-open{position:fixed;top:0;right:0;bottom:0;left:0;display:block;width:100vw;height:100vh}.modal-bg{position:relative;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-dialog{position:absolute;top:50%;right:0;left:0;width:100%;max-width:600px;margin:0 auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.modal-header{position:relative}.modal-close{position:absolute;top:5px;right:4px;height:24px;padding:0 4px}.has-bottom-nav{padding-bottom:80px}.has-top-nav{padding-top:80px}.nav{position:relative;display:flex;margin-bottom:40px;padding:4px;border-bottom:2px solid #fff;background-color:#c3c3c3;box-shadow:0 2px 2px rgba(0,0,0,.2);justify-content:space-between;align-items:center}.nav:before{position:absolute;bottom:0;left:0;display:block;width:100%;height:2px;content:"";background-color:#dedede}.nav.nav-bottom,.nav.nav-top{position:fixed;z-index:20;width:100%;margin:0}.nav.nav-top{top:0}.nav.nav-bottom{bottom:0;border-top:2px solid #fff;border-bottom:none;box-shadow:0 -2px 2px rgba(0,0,0,.2)}.nav.nav-bottom:before{top:0;bottom:unset}.nav-logo,.nav-logo:active,.nav-logo:hover,.nav-logo:link,.nav-logo:visited{display:inline-block;min-width:150px;height:40px;margin-right:4px;padding:2px 20px 2px 2px;color:#000;border-color:#fff #000 #000 #fff;border-style:solid;border-width:2px;background-color:#c3c3c3}.nav-logo:active:before,.nav-logo:before,.nav-logo:hover:before,.nav-logo:link:before,.nav-logo:visited:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";border-color:#dedede grey grey #dedede;border-style:solid;border-width:2px}.nav-logo:active img,.nav-logo:hover img,.nav-logo:link img,.nav-logo:visited img,.nav-logo img{max-height:32px}.nav-menu-btn{display:block;height:40px}@media screen and (min-width:768px){.nav-menu-btn{display:none}}.nav-menu{position:absolute;bottom:100%;left:0;display:none;width:100%;color:#000;border-color:#fff #000 #000 #fff;border-style:solid;border-width:2px;background-color:#c3c3c3;flex-flow:column}.nav-menu.active{display:flex}.nav-menu:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";border-color:#dedede grey grey #dedede;border-style:solid;border-width:2px}@media screen and (min-width:768px){.nav-menu{position:relative;display:flex;border:none;flex-flow:row}.nav-menu:before{content:none}}.nav-link,.nav-link:active,.nav-link:hover,.nav-link:link,.nav-link:visited{line-height:2;position:relative;display:block;height:40px;margin:0 2px;padding:4px 40px 4px 10px;color:#000}.nav-link:active:hover,.nav-link:hover,.nav-link:hover:hover,.nav-link:link:hover,.nav-link:visited:hover{color:#fff;background-color:#0f0086}@media screen and (min-width:768px){.nav-link:active:hover,.nav-link:hover,.nav-link:hover:hover,.nav-link:link:hover,.nav-link:visited:hover{color:#000;background-color:#c3c3c3}}@media screen and (min-width:768px){.nav-link,.nav-link:active,.nav-link:hover,.nav-link:link,.nav-link:visited{border-color:#fff #000 #000 #fff;border-style:solid;border-width:2px;background-color:#c3c3c3}.nav-link:active:before,.nav-link:before,.nav-link:hover:before,.nav-link:link:before,.nav-link:visited:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";border-color:#dedede grey grey #dedede;border-style:solid;border-width:2px}.nav-link.active,.nav-link:active.active,.nav-link:hover.active,.nav-link:link.active,.nav-link:visited.active{border-color:#000 #fff #fff #000;background-image:url(bg-pattern.png)}.nav-link.active:before,.nav-link:active.active:before,.nav-link:hover.active:before,.nav-link:link.active:before,.nav-link:visited.active:before{border-color:grey #dedede #dedede grey}} \ No newline at end of file diff --git a/src/renderer/style/vendor/LICENSE b/src/renderer/style/vendor/LICENSE new file mode 100644 index 0000000..9b415aa --- /dev/null +++ b/src/renderer/style/vendor/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Yoshi Mannaert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/src/renderer/style/vendor/bg-pattern.png b/src/renderer/style/vendor/bg-pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..575ab2b0d8a1c0de893981b813820b966fadecac GIT binary patch literal 144 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 I?RFqk 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 Date: Sun, 4 Aug 2019 08:45:18 -0700 Subject: [PATCH 03/19] wip --- src/renderer/buttons.js | 36 +++++++++---------- src/renderer/index.html | 67 ++++++++++++++++++++---------------- src/renderer/renderer.js | 4 +-- src/renderer/style/style.css | 25 ++++++++++++-- 4 files changed, 81 insertions(+), 51 deletions(-) diff --git a/src/renderer/buttons.js b/src/renderer/buttons.js index 7205411..cc2f582 100644 --- a/src/renderer/buttons.js +++ b/src/renderer/buttons.js @@ -6,30 +6,30 @@ export function setupButtons (start) { $('a#start').addEventListener('click', () => setVisibleSection('start')) $('a#floppy').addEventListener('click', () => setVisibleSection('floppy')) $('a#state').addEventListener('click', () => setVisibleSection('state')) - $('a#disk-image').addEventListener('click', () => setVisibleSection('disk-image')) + $('a#disk').addEventListener('click', () => setVisibleSection('disk')) - // // Start - // $('.btn-start').addEventListener('click', () => start()) + // Start + $('.btn-start').addEventListener('click', start) - // // Disk Image - // $('#show-disk-image').addEventListener('click', () => windows95.showDiskImage()) + // Disk Image + $('#disk-image-show').addEventListener('click', () => windows95.showDiskImage()) - // // Reset - // $('#reset').addEventListener('click', () => windows95.resetState()) + // Reset + $('#reset').addEventListener('click', () => windows95.resetState()) - // $('#discard-state').addEventListener('click', () => { - // window.appState.bootFresh = true + $('#discard-state').addEventListener('click', () => { + window.appState.bootFresh = true - // start() - // }) + start() + }) - // // Floppy - // $('#floppy').addEventListener('click', () => { - // $('#file-input').click() - // }) + // Floppy + $('#floppy-select').addEventListener('click', () => { + $('#floppy-input').click() + }) // Floppy (Hidden Input) - $('#file-input').addEventListener('change', (event) => { + $('#floppy-input').addEventListener('change', (event) => { window.appState.floppyFile = event.target.files && event.target.files.length > 0 ? event.target.files[0] : null @@ -40,8 +40,8 @@ export function setupButtons (start) { }) } -export function toggleButtons (forceTo) { - const buttonElements = $('#buttons') +export function toggleSetup (forceTo) { + const buttonElements = $('#setup') if (buttonElements.style.display !== 'none' || forceTo === false) { buttonElements.style.display = 'none' diff --git a/src/renderer/index.html b/src/renderer/index.html index 9cebad4..7dfed2f 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -17,43 +17,52 @@ | CPU Speed: 0 | Hide
-
-
+
+
+
Start Windows 95
Hit ESC to lock or unlock your mouse
-
-
- -
-

-

You can insert a floppy disk image with the ".img" format.

-

- Boot the machine from scratch if you've inserted a new floppy disk - or if you've changed the disk image. -

-
-
-
+
+
+
+
+

Floppy Drive

+
+
+ +

windows95 comes with a virtual floppy drive. If you have floppy disk images in the "img" format, you can + mount them here.

+

Back in the 90s and before CD-ROM became a popular format, software was typically distributed on floppy + disks. Some developers have since released their apps or games for free, usually on virtual floppy disks + using the "img" format.

+

Once you've mounted a disk image, you might have to reboot your virtual windows95 machine from scratch.

+

No floppy mounted

+ + +
+
+
+
-
-
+
+
-
+
- + +
diff --git a/src/renderer/renderer.js b/src/renderer/renderer.js index 8532434..3a6396f 100644 --- a/src/renderer/renderer.js +++ b/src/renderer/renderer.js @@ -1,7 +1,7 @@ /* We're using modern esm imports here */ import { setupState } from 'es6://app-state.js' import { setupClickListener, setupEscListener, setupCloseListener } from 'es6://listeners.js' -import { toggleButtons, setupButtons } from 'es6://buttons.js' +import { toggleSetup, setupButtons } from 'es6://buttons.js' import { startInfoMaybe } from 'es6://info.js' import { setupIpcListeners } from 'es6://ipc.js' @@ -57,7 +57,7 @@ async function main () { function start () { document.body.className = '' - toggleButtons(false) + toggleSetup(false) setupClickListener() main() } diff --git a/src/renderer/style/style.css b/src/renderer/style/style.css index c932632..ef2e309 100644 --- a/src/renderer/style/style.css +++ b/src/renderer/style/style.css @@ -38,8 +38,15 @@ body.paused { } #floppy-path { - background: beige; - padding: 5px; + font-size: .6rem; + width: 100%; + height: 30px; + padding-left: 8px; + border-color: #000 #fff #fff #000; + border-style: solid; + border-width: 2px; + background-color: #c3c3c3; + line-height: 27px; } #information { @@ -69,9 +76,17 @@ body.paused { } .windows95 nav .nav-logo img { + margin-left: 2px; max-height: 20px; } +.windows95 nav .nav-logo > span { + position: absolute; + top: 9px; + left: 37px; + font-weight: bold; +} + section { display: none; } @@ -84,3 +99,9 @@ section.visible { align-items: center; justify-content: center; } + +.card { + width: 75%; + max-width: 700px; + min-width: 400px; +} From dbcefb4b7bb9362d9ccb269fc9491fd97de53268 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Mon, 19 Aug 2019 08:41:14 -0700 Subject: [PATCH 04/19] :art: Improved style --- src/renderer/index.html | 2 +- src/renderer/style/resets.css | 33 ++++++++++++++++++++++++++++++ src/renderer/style/status.css | 16 +++++++++++++++ src/renderer/style/style.css | 38 +++-------------------------------- 4 files changed, 53 insertions(+), 36 deletions(-) create mode 100644 src/renderer/style/resets.css create mode 100644 src/renderer/style/status.css diff --git a/src/renderer/index.html b/src/renderer/index.html index 7dfed2f..348bbf8 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -32,7 +32,7 @@

Floppy Drive

- +

windows95 comes with a virtual floppy drive. If you have floppy disk images in the "img" format, you can mount them here.

Back in the 90s and before CD-ROM became a popular format, software was typically distributed on floppy diff --git a/src/renderer/style/resets.css b/src/renderer/style/resets.css new file mode 100644 index 0000000..077fe1f --- /dev/null +++ b/src/renderer/style/resets.css @@ -0,0 +1,33 @@ +/* GENERAL RESETS */ + +.windows95 nav .nav-link, +.windows95 nav .nav-logo { + height: 30px; + line-height: 1.5; +} + +.windows95 nav .nav-logo img { + margin-left: 2px; + max-height: 20px; +} + +.windows95 nav .nav-logo > span { + position: absolute; + top: 9px; + left: 37px; + font-weight: bold; +} + +.windows95 .btn:focus { + border-color: #fff #000 #000 #fff; + outline: 5px auto -webkit-focus-ring-color; +} + +.windows95 .btn.active:before, +.windows95 .btn:focus:before, +.windows95 button.active:before, +.windows95 button:focus:before, +.windows95 input[type=submit].active:before, +.windows95 input[type=submit]:focus:before { + border-color: #dedede grey grey #dedede; +} diff --git a/src/renderer/style/status.css b/src/renderer/style/status.css new file mode 100644 index 0000000..425df3e --- /dev/null +++ b/src/renderer/style/status.css @@ -0,0 +1,16 @@ +#status { + user-select: none; + position: absolute; + z-index: 100; + left: calc(50vw - 110px); + background: white; + font-size: 10px; + padding-bottom: 3px; + border-bottom-left-radius: 15px; + border-bottom-right-radius: 15px; + overflow: hidden; + padding-left: 10px; + padding-right: 10px; + max-height: 18px; + top: 0; +} diff --git a/src/renderer/style/style.css b/src/renderer/style/style.css index ef2e309..ab853c5 100644 --- a/src/renderer/style/style.css +++ b/src/renderer/style/style.css @@ -1,3 +1,6 @@ +@import "./resets.css"; +@import "./status.css"; + html, body { margin: 0; padding: 0; @@ -20,23 +23,6 @@ body.paused { user-select: none; } -#status { - user-select: none; - position: absolute; - z-index: 100; - left: calc(50vw - 110px); - background: white; - font-size: 10px; - padding-bottom: 3px; - border-bottom-left-radius: 15px; - border-bottom-right-radius: 15px; - overflow: hidden; - padding-left: 10px; - padding-right: 10px; - max-height: 18px; - top: 0; -} - #floppy-path { font-size: .6rem; width: 100%; @@ -69,24 +55,6 @@ body.paused { display: none; } -.windows95 nav .nav-link, -.windows95 nav .nav-logo { - height: 30px; - line-height: 1.5; -} - -.windows95 nav .nav-logo img { - margin-left: 2px; - max-height: 20px; -} - -.windows95 nav .nav-logo > span { - position: absolute; - top: 9px; - left: 37px; - font-weight: bold; -} - section { display: none; } From 3598ceb97ceb9551679389e635dda9799251b20b Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Mon, 19 Aug 2019 17:30:58 -0400 Subject: [PATCH 05/19] chore: gitignore more stuff --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3ea165f..402986c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ node_modules out src/images .DS_Store +images +dist \ No newline at end of file From 90a97a11bf46d2a661c4804fb8c3676fda23ef6c Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Mon, 19 Aug 2019 17:31:33 -0400 Subject: [PATCH 06/19] feat: Use TypeScript & Parcel --- forge.config.js | 3 + package-lock.json | 7321 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 39 +- 3 files changed, 7096 insertions(+), 267 deletions(-) diff --git a/forge.config.js b/forge.config.js index bfa27e8..4b81e00 100644 --- a/forge.config.js +++ b/forge.config.js @@ -2,6 +2,9 @@ const path = require('path'); const package = require('./package.json'); module.exports = { + hooks: { + generateAssets: require('./tools/generateAssets') + }, packagerConfig: { asar: false, icon: path.resolve(__dirname, 'assets', 'icon'), diff --git a/package-lock.json b/package-lock.json index b6f406b..14f3348 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,603 @@ "@babel/highlight": "^7.0.0" } }, + "@babel/core": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", + "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.3.4", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.3.4", + "@babel/types": "^7.3.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + } + } + }, + "@babel/generator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", + "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "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", + "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" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "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.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", + "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0", + "esutils": "^2.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", + "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", + "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", + "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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-define-map": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", + "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-explode-assignable-expression": { + "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.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "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", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "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" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "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" + } + }, + "@babel/helper-module-transforms": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", + "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "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.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "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", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", + "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", + "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", + "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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-simple-access": { + "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.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "@babel/helpers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz", + "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==", + "dev": true, + "requires": { + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", + "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", + "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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/highlight": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", @@ -24,20 +621,547 @@ "js-tokens": "^4.0.0" } }, - "@babel/runtime": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz", - "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==", + "@babel/parser": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", + "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "dev": true, - "optional": true, "requires": { - "regenerator-runtime": "^0.13.2" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz", + "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", + "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz", + "integrity": "sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", + "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", + "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "dev": true, + "requires": { + "@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-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz", + "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", + "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz", + "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", + "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz", + "integrity": "sha512-PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", + "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", + "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", + "dev": true, + "requires": { + "regexp-tree": "^0.1.6" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", + "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", + "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/runtime": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", + "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.3.4", + "@babel/types": "^7.3.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" } }, "@electron-forge/async-ora": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.43.tgz", - "integrity": "sha512-hfJk07NH4+f5RAgHwhUlnHCiA9WaKufzxiFWAwu053ZqR9A18R9xBVKLrCm3V7vjQHCGrVSoV51OaNMYL4+lVA==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.44.tgz", + "integrity": "sha512-5x6Dh+jnxSI27vdO+65r920vp7gnn4slF9vzuHN/O2ubddQSFUXthqUcQ7wInWDt/dbX9bUX8nN/3vy+ZyUtGg==", "dev": true, "requires": { "colors": "^1.2.0", @@ -65,21 +1189,39 @@ } }, "@electron-forge/cli": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.43.tgz", - "integrity": "sha512-EhwdHOPloApHojGecSX9lufbWsJANu7Z0AloiRk3EvzbglrCL4yQo4yMom/iDhq0tZk8HNRO6JBpb6J0COUZIg==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.44.tgz", + "integrity": "sha512-2HilqIsDStV4HHikZ+kr/SXqvckjt5PixokLCVU2+vJfZH/AxuF8NnGWpWFUnvQrRz7Heez/zibXV2+o8pNMTA==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43", - "@electron-forge/core": "6.0.0-beta.43", + "@electron-forge/async-ora": "6.0.0-beta.44", + "@electron-forge/core": "6.0.0-beta.44", "colors": "^1.2.0", - "commander": "^2.9.0", + "commander": "^3.0.0", "debug": "^4.1.0", "fs-extra": "^8.1.0", - "inquirer": "^6.5.0", - "semver": "^6.2.0" + "inquirer": "^6.5.1", + "semver": "^6.3.0" }, "dependencies": { + "ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", + "dev": true, + "requires": { + "type-fest": "^0.5.2" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -89,37 +1231,127 @@ "ms": "^2.1.1" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "figures": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz", + "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", + "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "dev": true } } }, "@electron-forge/core": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.43.tgz", - "integrity": "sha512-m9VN89l8nFkWtWXm6Pf96vMo4Vdnfa3PIg5LyeCEKMH22BvbuXs6XdIji0hJkUWqukb0jJ9xMq4eg9KKKzVCzw==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.44.tgz", + "integrity": "sha512-3PATuCcDGN8opa1GOw0baHG/YTk2E42iisdwrYwlIpWNf5V/rHalkcKfzn70/pGTIA4WB5+hfixRbbVNkIDPYQ==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43", - "@electron-forge/installer-base": "6.0.0-beta.43", - "@electron-forge/installer-deb": "6.0.0-beta.43", - "@electron-forge/installer-dmg": "6.0.0-beta.43", - "@electron-forge/installer-exe": "6.0.0-beta.43", - "@electron-forge/installer-rpm": "6.0.0-beta.43", - "@electron-forge/installer-zip": "6.0.0-beta.43", - "@electron-forge/maker-base": "6.0.0-beta.43", - "@electron-forge/plugin-base": "6.0.0-beta.43", - "@electron-forge/publisher-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", - "@electron-forge/template-webpack": "6.0.0-beta.43", + "@electron-forge/async-ora": "6.0.0-beta.44", + "@electron-forge/installer-base": "6.0.0-beta.44", + "@electron-forge/installer-deb": "6.0.0-beta.44", + "@electron-forge/installer-dmg": "6.0.0-beta.44", + "@electron-forge/installer-exe": "6.0.0-beta.44", + "@electron-forge/installer-rpm": "6.0.0-beta.44", + "@electron-forge/installer-zip": "6.0.0-beta.44", + "@electron-forge/maker-base": "6.0.0-beta.44", + "@electron-forge/plugin-base": "6.0.0-beta.44", + "@electron-forge/publisher-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", + "@electron-forge/template-webpack": "6.0.0-beta.44", "@electron/get": "^1.3.1", "colors": "^1.2.0", "cross-spawn-promise": "^0.10.1", "debug": "^4.1.0", - "electron-packager": "^14.0.0", + "electron-packager": "^14.0.4", "electron-rebuild": "^1.8.5", "find-up": "^4.1.0", "fs-extra": "^8.1.0", @@ -130,11 +1362,11 @@ "node-fetch": "^2.6.0", "nugget": "^2.0.1", "resolve-package": "^1.0.1", - "semver": "^6.2.0", - "source-map-support": "^0.5.12", + "semver": "^6.3.0", + "source-map-support": "^0.5.13", "sudo-prompt": "^9.0.0", "username": "^5.1.0", - "yarn-or-npm": "^2.0.2" + "yarn-or-npm": "^3.0.0" }, "dependencies": { "debug": { @@ -155,42 +1387,42 @@ } }, "@electron-forge/installer-base": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.43.tgz", - "integrity": "sha512-RAopbmOHjzpxb0iTB1QIsGKnb3NC4Rj7nzD0wkqD1QTOVNAe9tLQm4uXDHps6LTIhoUAyGQlVpmENqAKM0Zsfw==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.44.tgz", + "integrity": "sha512-Zmtc/d+PbzBVuqvzT0Om/ReMNxOLC0Zuuie7zXoN65ul0NKqDAaCw6pBpbCezd0UDyrY38jCtOsgxZAM/JmZxA==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43" + "@electron-forge/async-ora": "6.0.0-beta.44" } }, "@electron-forge/installer-darwin": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.43.tgz", - "integrity": "sha512-PWOI3IhbwGu4ygOO1V4W8WlKFNtzXkhJcSayeZKOeeSx3Mr9cgXnivhhm7aYJttUJTa5/GWIkZ3kf79nTwRiWA==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.44.tgz", + "integrity": "sha512-g/hTVhflf4wNhgZmOBqGjuMeyoHUnRM/L70z1ngpSsEOFw/wTQv3xTg9ufta8IkMQSOAXun5jDhhFyBE6w7O0A==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43", - "@electron-forge/installer-base": "6.0.0-beta.43", + "@electron-forge/async-ora": "6.0.0-beta.44", + "@electron-forge/installer-base": "6.0.0-beta.44", "fs-extra": "^8.1.0", "sudo-prompt": "^9.0.0" } }, "@electron-forge/installer-deb": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.43.tgz", - "integrity": "sha512-s8GbeKKe8riS6uU/JxXj7qPKqgI1iXoydJZHGDQ7qXiHEc3boLEkhskfMejc6JOAdXR35Qa5LaD7UgBHQseA2w==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.44.tgz", + "integrity": "sha512-aaUErfzvI53vMpGxBjGeBwgWTaGJl0cC4ueZGupAtsZMcPhnaPIpHcZNpu0zcecHif1HRkMwDXuKa4MgJar/IQ==", "dev": true, "requires": { - "@electron-forge/installer-linux": "6.0.0-beta.43" + "@electron-forge/installer-linux": "6.0.0-beta.44" } }, "@electron-forge/installer-dmg": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.43.tgz", - "integrity": "sha512-diadw3tf0qbdvKLJuBpPkJui95x/I8V733TBVgjnkPbHxSllaBWZtI4LPqx5GFVTyd2ZYQp+c6Lh5nqsuHYHxg==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.44.tgz", + "integrity": "sha512-YCyGJByWM6eTKr7SDKiIx1mFs8zDvv+X1gRTqkCktl0L4/ckcCgjXBZs1YE3Gw0EdRbvkWjh5JM3MnC86i3MGg==", "dev": true, "requires": { - "@electron-forge/installer-darwin": "6.0.0-beta.43", + "@electron-forge/installer-darwin": "6.0.0-beta.44", "cross-spawn-promise": "^0.10.1", "debug": "^4.1.0", "fs-extra": "^8.1.0" @@ -214,175 +1446,176 @@ } }, "@electron-forge/installer-exe": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.43.tgz", - "integrity": "sha512-PETHsKPmu4XxsCcLKkXsRCCz2S8dpClDRfMIsXbFTGRWNIP89jgluTG4KLllpgzhU+APpgO0kSIMbIaPsTUxbQ==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.44.tgz", + "integrity": "sha512-jLxDV0iljX4M9MO+xKEo1ryFTffPpKktjHFlTYNc2VO50rUrMbF8jmtpHfeUqCoF73bX2bm1OFLXTbpKbVE7HA==", "dev": true, "requires": { - "@electron-forge/installer-base": "6.0.0-beta.43", + "@electron-forge/installer-base": "6.0.0-beta.44", "open": "^6.4.0" } }, "@electron-forge/installer-linux": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.43.tgz", - "integrity": "sha512-euBacSIF7Vva9KR9BwCIa0znZ+pH1erfMDXgECgnA4dMOqvL5HldiZYG5defrtYpwu4o/iD5LTenKqCLHeJF7A==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.44.tgz", + "integrity": "sha512-fv0pkBA1jWLfWoUa6C8jagze9X1qChcc2QMfGTO1VjR8mNjJD7YcbIO906Qi+xDWBC+aSQiw6Fu8YnAbOZmPKg==", "dev": true, "requires": { - "@electron-forge/installer-base": "6.0.0-beta.43", + "@electron-forge/installer-base": "6.0.0-beta.44", "sudo-prompt": "^9.0.0" } }, "@electron-forge/installer-rpm": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.43.tgz", - "integrity": "sha512-akoLUQAXemD2OabvJWOMM6n8TNxvtxdV27EvOI6gxmN4wCJf2va5svZckzwmGB9AiyCu0u0Zap0TRVBDOmohDg==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.44.tgz", + "integrity": "sha512-Ucj2yvN1gTOhSQa5V7GesOF5vtfKx9lkEFy/W+nHlf+joDosoYSpm+dmm2ZFZTjy8sUvIDAibE5uyEUW1bF3tg==", "dev": true, "requires": { - "@electron-forge/installer-linux": "6.0.0-beta.43" + "@electron-forge/installer-linux": "6.0.0-beta.44" } }, "@electron-forge/installer-zip": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.43.tgz", - "integrity": "sha512-NZ/lscK1FsYyr5oH/1vOUa029lUocWUj5V+Xw9PEV/tkAv4dotAtk2XnXLAkPqdP0iaUD3Z6INV86eW/sLJFgQ==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.44.tgz", + "integrity": "sha512-X1KrS+uUF28gctWmQZ9TUzqwf41G6HgSOTkrIn69hOcMN7+1MWwdX9KhgrUZn8JyC61v2JovqxP8tK//VXEPtQ==", "dev": true, "requires": { - "@electron-forge/installer-darwin": "6.0.0-beta.43", + "@electron-forge/installer-darwin": "6.0.0-beta.44", "cross-spawn-promise": "^0.10.1", "fs-extra": "^8.1.0" } }, "@electron-forge/maker-base": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.43.tgz", - "integrity": "sha512-JlUGs4jMMv+o3v6zJ9SyWRHe7IyM4RDGx7gNOObqqLSK+0r4FPWVrHJKjV4/P/Xo5G40WwjfwVmmpInHAwdAdg==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.44.tgz", + "integrity": "sha512-OK3wSxC3pAl2uKnZF6ScqdLxCB5DmHkTux8mvD+iW3ZBq9FmjXimQdx4iDszLHCad9MWWkbS1j3MsXnPjkQ9Aw==", "dev": true, "requires": { - "@electron-forge/shared-types": "6.0.0-beta.43", - "fs-extra": "^8.1.0" + "@electron-forge/shared-types": "6.0.0-beta.44", + "fs-extra": "^8.1.0", + "which": "^1.3.1" } }, "@electron-forge/maker-deb": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.43.tgz", - "integrity": "sha512-4omWF71gCtHfzqUBMd9F9+Jj0A8M4nahR5avqusxpZ1Qm2Z40dbyZe6XBfH53IBGwFKnkdxegf2usn98lE8slg==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.44.tgz", + "integrity": "sha512-0ViaQV3PFsAR2FdjOpmwY2YVcbNAfiOG+/Nz9vk6VSp2nwTRenBtM2bazUiJ4lUPrPv2hNDcVun3pg358V+A8Q==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", + "@electron-forge/maker-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", "electron-installer-debian": "^2.0.0" } }, "@electron-forge/maker-flatpak": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-6.0.0-beta.43.tgz", - "integrity": "sha512-XiPmuQ4TYbXbiCi5v5/4HfCHOz9tWSfOaESQ+ys1lVPw6buthXOqsKiCLuSgzN9GlYCnrYSvOEefvZZvoToqTw==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-6.0.0-beta.44.tgz", + "integrity": "sha512-djvqhn/84sgCxWuFvnSwMDLDrEuzC/I1yex0pjr0E7tTDo3c0bXvZbNO5J5apZXOOMfWmz+oyqvuT4YJ+7GVxA==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", + "@electron-forge/maker-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", "@malept/electron-installer-flatpak": "^0.10.0", "fs-extra": "^8.1.0" } }, "@electron-forge/maker-rpm": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-6.0.0-beta.43.tgz", - "integrity": "sha512-ovzsv/cVOu4OVR7yAEIY0Plo+Mls/X4g0szaHGxbjNFUGjo0qKQu7+sjuBwY1etD6Hn0yCDckSkBcvAe2/slMg==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-6.0.0-beta.44.tgz", + "integrity": "sha512-x5tP46wfwtfXiWEA34f4HfY5B9wBYozsEs7K8JFemgXverffd4KYp8/O3dHrtueNoU8Or1MvCrLxcmi7OJFgbg==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", + "@electron-forge/maker-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", "electron-installer-redhat": "^2.0.0" } }, "@electron-forge/maker-squirrel": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.43.tgz", - "integrity": "sha512-lsC6S5UA7ZTr4iJzsgIm/2X6n+/WMtq1Cg9b53AicsGp1qOzOqI1yWZ+IAE4oRog+BXUhgrvTqbqYMli/klGDA==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.44.tgz", + "integrity": "sha512-2NQTNUp3bEEGnUMPx/pWg2Pr20Rt9YNwTt9CbRhWRsVSmA7VcYiM0H4UkfYEsquuOY5wifKJkdWgxlN2aEjQtg==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", - "electron-winstaller": "^3.0.4", + "@electron-forge/maker-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", + "electron-winstaller": "^4.0.0", "fs-extra": "^8.1.0" } }, "@electron-forge/maker-zip": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.43.tgz", - "integrity": "sha512-n1GuOWRc9JUMRZjyViIreUim2Xsvvv6yUOlBqz31as+mc+TxKp4TRugpfB55T9AjDLsOWwklIKC0LmJRe17dKw==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.44.tgz", + "integrity": "sha512-9K5hc2ELP6BzFra0UoBwZ9Gh4E27gQcTyYIQyz7qsLVxA2D+ki6SZJvHrnQc1JwdqP6DdCOSN2Fp2hSasSKVEQ==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", + "@electron-forge/maker-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", "cross-zip": "^2.1.5", "fs-extra": "^8.1.0" } }, "@electron-forge/plugin-base": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.43.tgz", - "integrity": "sha512-bdhJ9xeoSqrsA0nL3LawmbwcsRtbWVIL3oJgpEYBXIloP9uRoC/nGEzJpFAJp3MQ9LYcJ0yqBe/lHYZNfMM7cQ==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.44.tgz", + "integrity": "sha512-1vtgo/d7/+QD55rCINIUooyqcpyeOGlvIFHLe2TetZ0176VhtLec4Utc5ABhyzmiZeJBZ5sMnKOpI9cV0W6NXA==", "dev": true, "requires": { - "@electron-forge/shared-types": "6.0.0-beta.43" + "@electron-forge/shared-types": "6.0.0-beta.44" } }, "@electron-forge/publisher-base": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.43.tgz", - "integrity": "sha512-nF+KnDuKcpQ3CFrfLms6WW1dJn/lzyKk+w/J7EtGIUlt80lUSE7bnR8hUH7x95XvNaKgYhT4I8DqcW9o0eXeMw==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.44.tgz", + "integrity": "sha512-MkAqMiasO5WnXW+ksJAOa0z7BX5+yPQFtt6DkQrV3xXOnXMrNbUK7zYgpDEITUFyegjeUQAMlXfVGZN4ZL+m2g==", "dev": true }, "@electron-forge/publisher-github": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-github/-/publisher-github-6.0.0-beta.43.tgz", - "integrity": "sha512-7Kqf55lnVMI2dVWnu92j9LS5Y2wITnwHl7z0A25ZVrVqryZSlYKJRJZzglItlZoLrRnLKbiT6TP/s0jEOvg67g==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-github/-/publisher-github-6.0.0-beta.44.tgz", + "integrity": "sha512-jhnB7R9PvM3OiKLMca2LDVfwiT9CvcDxkF/bh1ijbX40UWwAp22fqxrdiqDB2NpchQ/ZfMwzNtl0x8gz5D7RSg==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43", - "@electron-forge/publisher-base": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", - "@octokit/rest": "^16.28.3", + "@electron-forge/async-ora": "6.0.0-beta.44", + "@electron-forge/publisher-base": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", + "@octokit/rest": "^16.28.5", "fs-extra": "^8.1.0", "lodash.merge": "^4.6.2", "mime-types": "^2.1.24" } }, "@electron-forge/shared-types": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.43.tgz", - "integrity": "sha512-KEHn44zeSzZMYvfhvxLgeC+PTTGr70BTwpV08ektDmDPi33K4uxk4nSdsjY03YoVjv0odfvbz6jT5uvf3v5g4w==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.44.tgz", + "integrity": "sha512-BYYimdyBIBVksqohMRYmXyC0jlTmvxvJHVNSEL0F9DyX1JdcrbGVw6hi4j9MpkXad1eHgEBqyjlItf0r70iHyw==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43", + "@electron-forge/async-ora": "6.0.0-beta.44", "@types/electron-packager": "^14.0.0", "electron-rebuild": "^1.8.5", "ora": "^3.0.0" } }, "@electron-forge/template-webpack": { - "version": "6.0.0-beta.43", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.43.tgz", - "integrity": "sha512-ktg110Pue2n+CHoF0FDdqX58ZhwOi/skHsQnyOo+BflxMDbKsHtr/jsLrvwvtt8BYOg4yNiPMJZ4GYp5U3/etA==", + "version": "6.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.44.tgz", + "integrity": "sha512-/woI8lBsErv3Ua5QmsiArAS4GnKrEykGzMbxxCGWk3OUg6YjOlzj0qWCBjMLdLYVqz/ZTHTMg4p8plODQ/inaw==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.43", - "@electron-forge/shared-types": "6.0.0-beta.43", + "@electron-forge/async-ora": "6.0.0-beta.44", + "@electron-forge/shared-types": "6.0.0-beta.44", "fs-extra": "^8.1.0" } }, "@electron/get": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.3.1.tgz", - "integrity": "sha512-FozkPRcRbHmuXh/qnry+s/GJ84hRAaUuEYYfZHvEl8n9X7a4ndhh1tVF+w4gky69XP+KHlLEO+OR95WqDy2mfg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.4.0.tgz", + "integrity": "sha512-FN20Sj0shfHsInfYWQ2ERG/UgyTMNK92WBwl3k9qcIOCZ5Kfz+PwoO29x7lEnEEDONSwlEvHEUs0dJqfqrpEuA==", "dev": true, "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", - "fs-extra": "^7.0.1", + "fs-extra": "^8.1.0", "got": "^9.6.0", "sumchecker": "^3.0.0" }, @@ -396,17 +1629,6 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -415,6 +1637,12 @@ } } }, + "@iarna/toml": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.3.tgz", + "integrity": "sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg==", + "dev": true + }, "@malept/electron-installer-flatpak": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@malept/electron-installer-flatpak/-/electron-installer-flatpak-0.10.0.tgz", @@ -492,6 +1720,22 @@ } } }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, "@octokit/endpoint": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.3.2.tgz", @@ -505,9 +1749,9 @@ } }, "@octokit/request": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.0.1.tgz", - "integrity": "sha512-SHOk/APYpfrzV1RNf7Ux8SZi+vZXhMIB2dBr4TQR6ExMX8R4jcy/0gHw26HLe1dWV7Wxe9WzYyDSEC0XwnoCSQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.0.2.tgz", + "integrity": "sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A==", "dev": true, "requires": { "@octokit/endpoint": "^5.1.0", @@ -530,9 +1774,9 @@ } }, "@octokit/rest": { - "version": "16.28.6", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.28.6.tgz", - "integrity": "sha512-ERfzS6g6ZNPJkEUclxLenr+UEncbymCe//IBrWWdp59nslYDeJboq07Ue9brX05Uv0+SY3kwA33cdiVBVPAOMQ==", + "version": "16.28.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.28.7.tgz", + "integrity": "sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA==", "dev": true, "requires": { "@octokit/request": "^5.0.0", @@ -550,6 +1794,113 @@ "url-template": "^2.0.8" } }, + "@parcel/fs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz", + "integrity": "sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==", + "dev": true, + "requires": { + "@parcel/utils": "^1.11.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.2" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@parcel/logger": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.0.tgz", + "integrity": "sha512-lIRfDg+junbFUUeU0QtHX00gKCgEsYHZydFKwrJ8dc0D+WE2SYT1FcVCgpPAfKYgtg0QQMns8E9vzT9UjH92PQ==", + "dev": true, + "requires": { + "@parcel/workers": "^1.11.0", + "chalk": "^2.1.0", + "grapheme-breaker": "^0.3.2", + "ora": "^2.1.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cli-spinners": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "ora": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", + "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "dev": true, + "requires": { + "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" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "@parcel/utils": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz", + "integrity": "sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==", + "dev": true + }, + "@parcel/watcher": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.0.tgz", + "integrity": "sha512-yijGiAqG7Tjf5WnFwOkiNWwerfZQDNABldiiqRDtr7vDWLO+F/DIncyB7tTcaD5Loevrr5mzzGo8Ntf3d2GIPg==", + "dev": true, + "requires": { + "@parcel/utils": "^1.11.0", + "chokidar": "^2.0.3" + } + }, + "@parcel/workers": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz", + "integrity": "sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==", + "dev": true, + "requires": { + "@parcel/utils": "^1.11.0", + "physical-cpu-count": "^2.0.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -577,10 +1928,62 @@ "electron-osx-sign": "^0.4.11" } }, + "@types/fs-extra": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.0.tgz", + "integrity": "sha512-bCtL5v9zdbQW86yexOlXWTEGvLNqWxMFyi7gQA7Gcthbezr2cPSOb8SkESVKA937QD5cIwOFLDFt0MQoXOEr9Q==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/node": { - "version": "12.6.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.8.tgz", - "integrity": "sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg==", + "version": "12.7.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz", + "integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz", + "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==", + "dev": true + }, + "@types/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.1.tgz", + "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==", + "dev": true + }, + "@types/react": { + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.2.tgz", + "integrity": "sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-dom": { + "version": "16.8.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.5.tgz", + "integrity": "sha512-idCEjROZ2cqh29+trmTmZhsBAUNQuYrF92JHKzZ5+aiFM1mlSk3bb23CK7HhYuOY75Apgap5y2jTyHzaM2AJGA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", + "dev": true + }, + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", "dev": true }, "abbrev": { @@ -595,12 +1998,28 @@ "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==", "dev": true }, + "acorn-globals": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.3.tgz", + "integrity": "sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, "acorn-jsx": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", "dev": true }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, "ajv": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", @@ -613,6 +2032,12 @@ "uri-js": "^4.2.2" } }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -634,6 +2059,36 @@ "color-convert": "^1.9.0" } }, + "ansi-to-html": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.11.tgz", + "integrity": "sha512-88XZtrcwrfkyn6fGstHnkaF1kl7hGtNCYh4vSmItgEV+6JnQHryDBf7udF4f2RhTRQmYvJvPcTtqgaqrxzc9oA==", + "dev": true, + "requires": { + "entities": "^1.1.1" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -659,6 +2114,30 @@ "sprintf-js": "~1.0.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -675,6 +2154,19 @@ "es-abstract": "^1.7.0" } }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, "asar": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/asar/-/asar-2.0.1.tgz", @@ -688,6 +2180,14 @@ "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "tmp-promise": "^1.0.5" + }, + "dependencies": { + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + } } }, "asn1": { @@ -699,24 +2199,85 @@ "safer-buffer": "~2.1.0" } }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, "atob-lite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", @@ -741,16 +2302,135 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon-walk": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz", + "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=", + "dev": true, + "requires": { + "babel-runtime": "^6.11.6", + "babel-types": "^6.15.0", + "lodash.clone": "^4.5.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "bcrypt-pbkdf": { @@ -768,12 +2448,36 @@ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "bindings": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=", + "dev": true + }, "bluebird": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", "dev": true }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -784,12 +2488,190 @@ "concat-map": "0.0.1" } }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "dev": true, + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + }, + "dependencies": { + "pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", + "dev": true + } + } + }, + "browserslist": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", + "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000984", + "electron-to-chromium": "^1.3.191", + "node-releases": "^1.1.25" + } + }, "btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", "dev": true }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", @@ -806,6 +2688,12 @@ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "dev": true + }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -818,6 +2706,43 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -850,6 +2775,38 @@ } } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -880,6 +2837,24 @@ } } }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -903,6 +2878,49 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, "chownr": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", @@ -915,6 +2933,45 @@ "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", "dev": true }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -981,12 +3038,49 @@ "mimic-response": "^1.0.0" } }, + "clones": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/clones/-/clones-1.2.0.tgz", + "integrity": "sha512-FXDYw4TjR8wgPZYui2LeTqWh1BLpfQ8lB6upMtlpDF6WlOOxghmTTxWyngdKTgozqBgKnHbTVwTE+hOHqAykuQ==", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.0.tgz", + "integrity": "sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -1002,6 +3096,16 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colors": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", @@ -1017,10 +3121,16 @@ "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz", + "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw==", + "dev": true + }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.0.tgz", + "integrity": "sha512-pl3QrGOBa9RZaslQiqnnKX2J068wcQw7j9AIaBQ9/JEp5RY6je4jKTImg0Bd+rpoONSe7GUFSgkxLeo17m3Pow==", "dev": true }, "compare-version": { @@ -1029,6 +3139,12 @@ "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", "dev": true }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1047,24 +3163,147 @@ "typedarray": "^0.0.6" } }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, + "convert-source-map": { + "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" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cosmiconfig": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", + "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + }, + "dependencies": { + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", @@ -1086,14 +3325,380 @@ } }, "cross-zip": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/cross-zip/-/cross-zip-2.1.5.tgz", - "integrity": "sha1-xdGgaksaEqAzBk+UbrWubUvc8+E=", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/cross-zip/-/cross-zip-2.1.6.tgz", + "integrity": "sha512-xLIETNkzRcU6jGRzenJyRFxahbtP4628xEKMTI/Ql0Vu8m4h8M7uRLVi7E5OYHuJ6VQPsG4icJumKAFUvfm0+A==", "dev": true, "requires": { - "rimraf": "^2.5.2" + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-modules-loader-core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", + "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.1", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "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=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "css-select": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", + "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^2.1.2", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "css-tree": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", + "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + }, + "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 + } + } + }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", + "dev": true + }, + "css-url-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", + "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", + "dev": true + }, + "css-what": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", + "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", + "dev": true + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz", + "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==", + "dev": true + }, "cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", @@ -1118,6 +3723,33 @@ "assert-plus": "^1.0.0" } }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "deasync": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.15.tgz", + "integrity": "sha512-pxMaCYu8cQIbGkA4Y1R0PLSooPIpH1WgFBLeJ+zLxQgHfkZG86ViJSmZmONSjZJ/R3NjwkMcIWZAzpLB2G9/CA==", + "dev": true, + "requires": { + "bindings": "~1.2.1", + "node-addon-api": "^1.6.0" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1138,6 +3770,12 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -1197,6 +3835,53 @@ } } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "deglob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/deglob/-/deglob-3.1.0.tgz", @@ -1231,18 +3916,51 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, "deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1252,6 +3970,94 @@ "esutils": "^2.0.2" } }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz", + "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "dev": true + }, + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -1268,10 +4074,50 @@ "safer-buffer": "^2.1.0" } }, + "editorconfig": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.2.tgz", + "integrity": "sha512-GWjSI19PVJAM9IZRGOS+YKI8LN+/sjkSjNyvxL5ucqP9/IqtYNXBaQ/6c/hkPNYQHyOHra2KoXZI/JVpuqwmcQ==", + "dev": true, + "requires": { + "@types/node": "^10.11.7", + "@types/semver": "^5.5.0", + "commander": "^2.19.0", + "lru-cache": "^4.1.3", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "@types/node": { + "version": "10.14.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.15.tgz", + "integrity": "sha512-CBR5avlLcu0YCILJiDIXeU2pTw7UK/NIxfC63m7d7CVamho1qDEzXKkOtEauQRPMy6MI8mLozth+JJkas7HY6g==", + "dev": true + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, "electron": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-5.0.8.tgz", - "integrity": "sha512-wkUVE2GaYCsqQTsISSHWkIkcdpwLwZ1jhzAXSFFoSzsTgugmzhX60rJjIccotUmZ0iPzw+u4ahfcaJ0eslrPNQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-6.0.2.tgz", + "integrity": "sha512-2SV10JlUsEGZ8CePeQIllFBwrOmm1EONne3Ev7Ro1F4tuS9sF184d3/3wZjEtwOs7hsM6elceYnNuZfx93++YA==", "dev": true, "requires": { "@types/node": "^10.12.18", @@ -1280,9 +4126,9 @@ }, "dependencies": { "@types/node": { - "version": "10.14.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", - "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==", + "version": "10.14.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.15.tgz", + "integrity": "sha512-CBR5avlLcu0YCILJiDIXeU2pTw7UK/NIxfC63m7d7CVamho1qDEzXKkOtEauQRPMy6MI8mLozth+JJkas7HY6g==", "dev": true } } @@ -1337,9 +4183,9 @@ "dev": true }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "sumchecker": { @@ -1519,9 +4365,9 @@ } }, "electron-osx-sign": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", - "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.12.tgz", + "integrity": "sha512-L/+VcwO76EtP+E4Gh/HJH0exaKeYLPZlNNBFdl+Vw3il9jRBRjInpqtegLAu8t/cGGJn+tZ47Uc6mymQYNpJ6g==", "dev": true, "requires": { "bluebird": "^3.5.0", @@ -1533,9 +4379,9 @@ } }, "electron-packager": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-14.0.2.tgz", - "integrity": "sha512-QJyttK+GlgJFwjueOpGWN7gZ67WsHkstzCieAyojiw6mLzdBz54q+2oZidF7GfB8bkWVxsMUQa7WrHV13e2eQw==", + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-14.0.4.tgz", + "integrity": "sha512-YTZHPU2PESY86BAmTxJ8VVOvwsE2Tc/NUuBYoo/F8Qj4t4GNGBVy5VfusxEem9g7Fnn0uS9KFN60fn/OlzRaMw==", "dev": true, "requires": { "@electron/get": "^1.3.0", @@ -1575,20 +4421,20 @@ } }, "electron-rebuild": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz", - "integrity": "sha512-gDwRA3utfiPnFwBZ1z8M4SEMwsdsy6Bg4VGO2ohelMOIO0vxiCrDQ/FVdLk3h2g7fLb06QFUsQU+86jiTSmZxw==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.6.tgz", + "integrity": "sha512-4BAPcNG0XP6stByqvFXggrjmf/C47P2L6HFFrWdR2ako1VLiTDIeZAOmU4WEBuWdaXYNqstleszVmcNHdRDojA==", "dev": true, "requires": { "colors": "^1.3.3", "debug": "^4.1.1", "detect-libc": "^1.0.3", "fs-extra": "^7.0.1", - "node-abi": "^2.8.0", - "node-gyp": "^4.0.0", + "node-abi": "^2.9.0", + "node-gyp": "^5.0.1", "ora": "^3.4.0", "spawn-rx": "^3.0.0", - "yargs": "^13.2.2" + "yargs": "^13.2.4" }, "dependencies": { "debug": { @@ -1627,39 +4473,26 @@ "debug": "^2.2.0" } }, + "electron-to-chromium": { + "version": "1.3.235", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.235.tgz", + "integrity": "sha512-xNabEDbMIKPLQd6xgv4nyyeMaWXIKSJr6G51ZhUemHhbz6kjZAYcygA8CvfEcMF+Mt5eLmDWaLmfSOWdQxzBVQ==", + "dev": true + }, "electron-winstaller": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-3.0.4.tgz", - "integrity": "sha512-u3wTQUzBBBGWbExkKvgKt69EMoF0xC8uLQS5vTXtwr97BH8ffSW8CcHvVGWRyRDIhg2AA+togKOKWr41wgCeiA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-4.0.0.tgz", + "integrity": "sha512-Rq5YUQ/zBiGiDW3ezVaRigF3QbohVjDtfcpZpzmhJxX/1jndc96OQJw2x1HulHmhPV7n9R4WEsMkzkHObufU9g==", "dev": true, "optional": true, "requires": { - "@babel/runtime": "^7.3.4", - "asar": "^1.0.0", + "asar": "^2.0.1", "debug": "^4.1.1", "fs-extra": "^7.0.1", "lodash.template": "^4.2.2", - "pify": "^4.0.1", "temp": "^0.9.0" }, "dependencies": { - "asar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz", - "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==", - "dev": true, - "optional": true, - "requires": { - "chromium-pickle-js": "^0.2.0", - "commander": "^2.19.0", - "cuint": "^0.2.2", - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "pify": "^4.0.1", - "tmp-promise": "^1.0.5" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1688,22 +4521,36 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true } } }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -1713,12 +4560,28 @@ "once": "^1.4.0" } }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "env-paths": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -1761,12 +4624,39 @@ "is-symbol": "^1.0.2" } }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, "eslint": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", @@ -2063,6 +4953,28 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -2092,13 +5004,48 @@ } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -2114,6 +5061,42 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -2136,6 +5119,71 @@ } } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extract-zip": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", @@ -2154,12 +5202,81 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "falafel": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", + "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -2172,6 +5289,12 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -2199,6 +5322,35 @@ "flat-cache": "^2.0.1" } }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -2250,6 +5402,17 @@ "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { @@ -2296,6 +5459,18 @@ } } }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "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 + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -2313,6 +5488,21 @@ "mime-types": "^2.1.12" } }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -2338,6 +5528,554 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "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, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "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.3", + "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.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "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, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.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.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "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, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": 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.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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", + "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.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": 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.7.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, + "optional": 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, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2467,6 +6205,12 @@ "read-pkg-up": "^2.0.0" } }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -2482,6 +6226,12 @@ "pump": "^3.0.0" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -2522,6 +6272,12 @@ "is-glob": "^4.0.1" } }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -2576,6 +6332,16 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" }, + "grapheme-breaker": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", + "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=", + "dev": true, + "requires": { + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -2601,6 +6367,23 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -2619,6 +6402,83 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -2634,12 +6494,177 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-tags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz", + "integrity": "sha1-x43mW1Zjqll5id0rerSSANfk25g=", + "dev": true + }, + "htmlnano": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.4.tgz", + "integrity": "sha512-wsg7+Hjyi1gHpMUixkeOjeRUNhBBTnEDB//kzvVHR+LUK4p+/31DAyE+pEACT0SQk3W0KE7Xdylk9+uNxdHXLg==", + "dev": true, + "requires": { + "cssnano": "^4.1.10", + "normalize-html-whitespace": "^1.0.0", + "object-assign": "^4.0.1", + "posthtml": "^0.11.4", + "posthtml-render": "^1.1.5", + "svgo": "^1.2.2", + "terser": "^4.1.2", + "uncss": "^0.17.0" + }, + "dependencies": { + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.33", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz", + "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.5.3" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "svgo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz", + "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.33", + "csso": "^3.5.1", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "terser": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.4.tgz", + "integrity": "sha512-+ZwXJvdSwbd60jG0Illav0F06GDJF0R4ydZ21Q3wGAFKoBGyJGo34F63vzJHgvYxc1ukOtIjvwEvl9MkjzM6Pg==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + } + } + }, + "htmlparser2": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", + "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.0.6" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.0", + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "http-cache-semantics": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", "dev": true }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -2651,6 +6676,12 @@ "sshpk": "^1.7.0" } }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -2660,12 +6691,31 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, "import-fresh": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", @@ -2691,6 +6741,12 @@ "repeating": "^2.0.0" } }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2769,24 +6825,145 @@ } } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.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.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2820,6 +6997,41 @@ "is-extglob": "^2.1.1" } }, + "is-html": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz", + "integrity": "sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ=", + "dev": true, + "requires": { + "html-tags": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-plain-object": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", @@ -2844,12 +7056,27 @@ "has": "^1.0.1" } }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -2921,11 +7148,41 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "js-beautify": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.9.tgz", + "integrity": "sha512-MwPmLywK9RSX0SPsUJjN7i+RQY9w/yC17Lbrq9ViEefpLRgqAR2BgrMN2AbifkUuhDV8tRauLhLda/9+bE0YQA==", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.2", + "glob": "^7.1.3", + "mkdirp": "~0.5.0", + "nopt": "~4.0.1" + }, + "dependencies": { + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + } + } + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.13.1", @@ -2943,6 +7200,87 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsdom": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.1.1.tgz", + "integrity": "sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^6.1.1", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.3.6", + "cssstyle": "^1.2.2", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.4", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "escodegen": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", + "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "ws": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz", + "integrity": "sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==", + "dev": true, + "requires": { + "async-limiter": "^1.0.0" + } + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -2979,6 +7317,15 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -3024,6 +7371,37 @@ "json-buffer": "3.0.0" } }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "less": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.10.1.tgz", + "integrity": "sha512-xlPx6vt5nAm1DGDnuv06SNQba4WnMKY5vZkgCrnyKXkDbs09kl9cc2nSS7OMufLT60IWsxUSnwr1Rkh4rkMFcg==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + } + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -3074,12 +7452,24 @@ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", "dev": true }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3092,6 +7482,12 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -3130,7 +7526,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -3167,6 +7562,15 @@ "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", "dev": true }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -3176,12 +7580,44 @@ "p-defer": "^1.0.0" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + }, "mem": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", @@ -3294,6 +7730,66 @@ } } }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dev": true, + "requires": { + "source-map": "^0.5.6" + }, + "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 + } + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, "mime-db": { "version": "1.40.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", @@ -3321,6 +7817,18 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -3363,6 +7871,42 @@ "minipass": "^2.2.1" } }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -3391,6 +7935,32 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3404,40 +7974,52 @@ "dev": true }, "node-abi": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.9.0.tgz", - "integrity": "sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.11.0.tgz", + "integrity": "sha512-kuy/aEg75u40v378WRllQ4ZexaXJiCvB68D2scDXclp/I4cRq6togpbOoKhmN07tns9Zldu51NNERo0wehfX9g==", "dev": true, "requires": { "semver": "^5.4.1" }, "dependencies": { "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, + "node-addon-api": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz", + "integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==", + "dev": true + }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", "dev": true }, + "node-forge": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", + "dev": true + }, "node-gyp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", - "integrity": "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.0.3.tgz", + "integrity": "sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ==", "dev": true, "requires": { + "env-paths": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", @@ -3445,6 +8027,21 @@ "which": "1" }, "dependencies": { + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", @@ -3453,6 +8050,62 @@ } } }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.27.tgz", + "integrity": "sha512-9iXUqHKSGo6ph/tdXVbHFbhRVQln4ZDTIBJCzsa90HimnBYc5jw8RWYt4wBYFHehGyC3koIz5O4mb2fHrbPOuA==", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -3462,6 +8115,12 @@ "abbrev": "1" } }, + "normalize-html-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz", + "integrity": "sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA==", + "dev": true + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -3482,6 +8141,12 @@ } } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "normalize-url": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", @@ -3509,6 +8174,15 @@ "set-blocking": "~2.0.0" } }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, "nugget": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", @@ -3530,6 +8204,12 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, + "nwsapi": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", + "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==", + "dev": true + }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -3539,7 +8219,43 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", "dev": true }, "object-keys": { @@ -3548,6 +8264,23 @@ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", @@ -3592,6 +8325,33 @@ "has": "^1.0.1" } }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "object.values": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", @@ -3610,6 +8370,15 @@ "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", "dev": true }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3637,6 +8406,15 @@ "is-wsl": "^1.1.0" } }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -3676,6 +8454,12 @@ } } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -3756,6 +8540,119 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parcel-bundler": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.3.tgz", + "integrity": "sha512-8bq6lj0hhQeGxD9f9xEkFMXQ3d8TIlf2+isKxoi9bciB0KVEILRGllaPkUgp++5t0anToBh9+tG6ZyInXOC1/A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0 <7.4.0", + "@babel/core": "^7.0.0 <7.4.0", + "@babel/generator": "^7.0.0 <7.4.0", + "@babel/parser": "^7.0.0 <7.4.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0 <7.4.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0 <7.4.0", + "@babel/plugin-transform-react-jsx": "^7.0.0 <7.4.0", + "@babel/preset-env": "^7.0.0 <7.4.0", + "@babel/runtime": "^7.0.0 <7.4.0", + "@babel/template": "^7.0.0 <7.4.0", + "@babel/traverse": "^7.0.0 <7.4.0", + "@babel/types": "^7.0.0 <7.4.0", + "@iarna/toml": "^2.2.0", + "@parcel/fs": "^1.11.0", + "@parcel/logger": "^1.11.0", + "@parcel/utils": "^1.11.0", + "@parcel/watcher": "^1.12.0", + "@parcel/workers": "^1.11.0", + "ansi-to-html": "^0.6.4", + "babylon-walk": "^1.0.2", + "browserslist": "^4.1.0", + "chalk": "^2.1.0", + "clone": "^2.1.1", + "command-exists": "^1.2.6", + "commander": "^2.11.0", + "cross-spawn": "^6.0.4", + "css-modules-loader-core": "^1.1.0", + "cssnano": "^4.0.0", + "deasync": "^0.1.14", + "dotenv": "^5.0.0", + "dotenv-expand": "^4.2.0", + "fast-glob": "^2.2.2", + "filesize": "^3.6.0", + "get-port": "^3.2.0", + "htmlnano": "^0.2.2", + "is-glob": "^4.0.0", + "is-url": "^1.2.2", + "js-yaml": "^3.10.0", + "json5": "^1.0.1", + "micromatch": "^3.0.4", + "mkdirp": "^0.5.1", + "node-forge": "^0.7.1", + "node-libs-browser": "^2.0.0", + "opn": "^5.1.0", + "postcss": "^7.0.11", + "postcss-value-parser": "^3.3.1", + "posthtml": "^0.11.2", + "posthtml-parser": "^0.4.0", + "posthtml-render": "^1.1.3", + "resolve": "^1.4.0", + "semver": "^5.4.1", + "serialize-to-js": "^1.1.1", + "serve-static": "^1.12.4", + "source-map": "0.6.1", + "terser": "^3.7.3", + "v8-compile-cache": "^2.0.0", + "ws": "^5.1.1" + }, + "dependencies": { + "@babel/code-frame": { + "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" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3765,6 +8662,19 @@ "callsites": "^3.0.0" } }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, "parse-author": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", @@ -3795,6 +8705,36 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -3828,6 +8768,19 @@ "pify": "^2.0.0" } }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -3840,6 +8793,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "physical-cpu-count": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", + "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3995,6 +8954,518 @@ "xmldom": "0.1.x" } }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", + "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + } + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "posthtml": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.11.4.tgz", + "integrity": "sha512-ezlzBkoPoRgh0jkmT1dsM8eT+lr2azyZ546kbda8oHnVnzvyaB3Ywo6UxUz8wPSOkFAAflCxZJhvvpQH1F6qcA==", + "dev": true, + "requires": { + "posthtml-parser": "^0.4.1", + "posthtml-render": "^1.1.5" + } + }, + "posthtml-parser": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.1.tgz", + "integrity": "sha512-h7vXIQ21Ikz2w5wPClPakNP6mJeJCK6BT0GpqnQrNNABdR7/TchNlFyryL1Bz6Ww53YWCKkr6tdZuHlxY1AVdQ==", + "dev": true, + "requires": { + "htmlparser2": "^3.9.2", + "object-assign": "^4.1.1" + } + }, + "posthtml-render": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.1.5.tgz", + "integrity": "sha512-yvt54j0zCBHQVEFAuR+yHld8CZrCa/E1Z/OcFNCV1IEWTLVxT8O7nYnM4IIw1CD4r8kaRd3lc42+0lgCKgm87w==", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -4007,6 +9478,12 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "prettier": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", + "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", + "dev": true + }, "pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -4026,6 +9503,18 @@ "parse-ms": "^2.1.0" } }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -4048,17 +9537,39 @@ "through2": "~0.2.3" } }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" } }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -4066,11 +9577,25 @@ "dev": true }, "psl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", - "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", + "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==", "dev": true }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -4087,12 +9612,84 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -4111,11 +9708,32 @@ "integrity": "sha512-XcFGyEBjhWSsud+R8elwQtGBbVkCf7tAiad+nXo5jc6l2rMf46NfGNwjnmBNneBIZDfq+Npf8lwP371JTONfrw==", "dev": true }, + "react": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz", + "integrity": "sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.12.0" + } + }, + "react-dom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.7.0.tgz", + "integrity": "sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.12.0" + } + }, "react-is": { "version": "16.8.6", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", - "dev": true + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, "read-pkg": { "version": "2.0.0", @@ -4198,6 +9816,17 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -4208,12 +9837,51 @@ "strip-indent": "^1.0.1" } }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", "dev": true, - "optional": true + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp-tree": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz", + "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==", + "dev": true }, "regexpp": { "version": "2.0.1", @@ -4221,6 +9889,61 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "regexpu-core": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.5.tgz", + "integrity": "sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -4258,6 +9981,26 @@ "uuid": "^3.3.2" } }, + "request-promise-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", + "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "request-promise-native": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", + "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "dev": true, + "requires": { + "request-promise-core": "1.1.2", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4304,6 +10047,12 @@ "get-installed-path": "^2.0.3" } }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -4323,15 +10072,43 @@ "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", "dev": true, "requires": { "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -4362,33 +10139,192 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "safe-regex": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "safer-eval": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/safer-eval/-/safer-eval-1.3.0.tgz", + "integrity": "sha512-4qkBS8VzJatFR7F0eZfKoJyjqo43jY1jBvRhB5WXM0eJNjx9fiSmph5NApJefqKqpASKWPfaIJCJMMeWePSzfw==", + "dev": true, + "requires": { + "clones": "^1.2.0" + } + }, "sanitize-filename": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", - "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.2.tgz", + "integrity": "sha512-cmTzND7RMxUB+f7gI+4+KAVHWEg0lfXvQJdko+FXDP5bNbGIdx4KMP5pX6lv5jfT9jSf6OBbjyxjFtZQwYA/ig==", "dev": true, "requires": { "truncate-utf8-bytes": "^1.0.0" } }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, + "scheduler": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.12.0.tgz", + "integrity": "sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-to-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-1.2.2.tgz", + "integrity": "sha512-mUc8vA5iJghe+O+3s0YDGFLMJcqitVFk787YKiv8a4sf6RX5W0u81b+gcHrp15O0fFa010dRBVZvwcKXOWsL9Q==", + "dev": true, + "requires": { + "js-beautify": "^1.8.9", + "safer-eval": "^1.3.0" + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "dev": true + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -4404,12 +10340,35 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, "single-line-log": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", @@ -4438,22 +10397,160 @@ } } }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "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" + } + }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, "spawn-rx": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz", @@ -4503,6 +10600,15 @@ "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", "dev": true }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4526,6 +10632,12 @@ "tweetnacl": "~0.14.0" } }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "standard": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/standard/-/standard-13.1.0.tgz", @@ -4563,6 +10675,119 @@ } } }, + "static-eval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.0.tgz", + "integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==", + "dev": true, + "requires": { + "escodegen": "^1.8.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "dev": true, + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -4636,6 +10861,30 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "stylehacks": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.1.tgz", + "integrity": "sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, "sudo-prompt": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.0.0.tgz", @@ -4677,6 +10926,42 @@ "has-flag": "^3.0.0" } }, + "svgo": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.1.1.tgz", + "integrity": "sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==", + "dev": true, + "requires": { + "coa": "~2.0.1", + "colors": "~1.1.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "~0.1.0", + "css-tree": "1.0.0-alpha.28", + "css-url-regex": "^1.1.0", + "csso": "^3.5.0", + "js-yaml": "^3.12.0", + "mkdirp": "~0.5.1", + "object.values": "^1.0.4", + "sax": "~1.2.4", + "stable": "~0.1.6", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + } + } + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, "table": { "version": "5.4.4", "resolved": "https://registry.npmjs.org/table/-/table-5.4.4.tgz", @@ -4739,6 +11024,37 @@ "optional": true, "requires": { "rimraf": "~2.6.2" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + } } }, "text-table": { @@ -4795,6 +11111,21 @@ } } }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, "tiny-each-async": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", @@ -4802,6 +11133,12 @@ "dev": true, "optional": true }, + "tiny-inflate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.2.tgz", + "integrity": "sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c=", + "dev": true + }, "tmp": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", @@ -4809,6 +11146,17 @@ "dev": true, "requires": { "rimraf": "^2.6.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "tmp-promise": { @@ -4821,12 +11169,72 @@ "tmp": "0.1.0" } }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -4845,12 +11253,27 @@ } } }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -4863,7 +11286,12 @@ "tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "tunnel-agent": { @@ -4902,12 +11330,160 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + }, + "uncss": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.0.tgz", + "integrity": "sha512-ZFFHCpAUEC0kJkuJelLYjrr0/bHBlgrN8XRDQN+wt9VVqap8Avj4fxt2WDJJZi0aSzYVaWCQoX19ZM+JZ5lqnw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "glob": "^7.1.4", + "is-absolute-url": "^3.0.0", + "is-html": "^1.1.0", + "jsdom": "^15.1.0", + "lodash": "^4.17.11", + "postcss": "^7.0.16", + "postcss-selector-parser": "6.0.2", + "request": "^2.88.0" + }, + "dependencies": { + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.1.tgz", + "integrity": "sha512-c2QjUwuMxLsld90sj3xYzpFYWJtuxkIn1f5ua9RTEYJt/vV2IsM+Py00/6qjV7qExgifUvt7qfyBGBBKm+2iBg==", + "dev": true + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, "universal-user-agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-3.0.0.tgz", @@ -4922,6 +11498,64 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, "update-electron-app": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/update-electron-app/-/update-electron-app-1.5.0.tgz", @@ -4949,6 +11583,30 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -4964,6 +11622,12 @@ "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", "dev": true }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, "username": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", @@ -4980,16 +11644,43 @@ "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", "dev": true }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", "dev": true }, "v8-compile-cache": { @@ -5008,6 +11699,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -5019,6 +11716,38 @@ "extsprintf": "^1.2.0" } }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -5028,6 +11757,38 @@ "defaults": "^1.0.3" } }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -5119,12 +11880,33 @@ "mkdirp": "^0.5.1" } }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, + "xmlchars": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.1.1.tgz", + "integrity": "sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w==", + "dev": true + }, "xmldom": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", @@ -5209,12 +11991,43 @@ } }, "yarn-or-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/yarn-or-npm/-/yarn-or-npm-2.0.4.tgz", - "integrity": "sha1-RuOKr850w1DmwMynJxL8p0EPrZg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/yarn-or-npm/-/yarn-or-npm-3.0.0.tgz", + "integrity": "sha512-bXCGEGh2B9ScBiND5Jg+E4t7zpuip56C0EKeuoVrCldxtapQjhWB9QUBXB4yWLrtjPpQizDjzwtTI1ir+kN3gg==", "dev": true, "requires": { - "cross-spawn": "^5.0.0" + "cross-spawn": "^6.0.5", + "pkg-dir": "^4.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.2.9" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "yauzl": { diff --git a/package.json b/package.json index fdd89b2..668ac44 100644 --- a/package.json +++ b/package.json @@ -3,13 +3,14 @@ "productName": "windows95", "version": "2.1.1", "description": "Windows 95, in an app. I'm sorry.", - "main": "src/index.js", + "main": "./dist/src/main/main", "scripts": { - "start": "electron-forge start", + "start": "rimraf ./dist && electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", - "lint": "standard \"src/**/*.js\"" + "lint": "standard \"src/**/*.js\"", + "less": "node ./tools/lessc.js" }, "keywords": [], "author": "Felix Rieseberg, felix@felixrieseberg.com", @@ -30,18 +31,30 @@ "dependencies": { "electron-squirrel-startup": "^1.0.0", "fs-extra": "^8.1.0", + "react": "^16.7.0", + "react-dom": "^16.7.0", + "tslib": "^1.10.0", "update-electron-app": "^1.5.0" }, "devDependencies": { - "@electron-forge/cli": "^6.0.0-beta.43", - "@electron-forge/maker-deb": "^6.0.0-beta.43", - "@electron-forge/maker-flatpak": "^6.0.0-beta.43", - "@electron-forge/maker-rpm": "^6.0.0-beta.43", - "@electron-forge/maker-squirrel": "^6.0.0-beta.43", - "@electron-forge/maker-zip": "^6.0.0-beta.43", - "@electron-forge/publisher-github": "^6.0.0-beta.43", - "electron": "5.0.8", - "node-abi": "^2.9.0", - "standard": "^13.1.0" + "@electron-forge/cli": "^6.0.0-beta.44", + "@electron-forge/maker-deb": "^6.0.0-beta.44", + "@electron-forge/maker-flatpak": "^6.0.0-beta.44", + "@electron-forge/maker-rpm": "^6.0.0-beta.44", + "@electron-forge/maker-squirrel": "^6.0.0-beta.44", + "@electron-forge/maker-zip": "^6.0.0-beta.44", + "@electron-forge/publisher-github": "^6.0.0-beta.44", + "@types/fs-extra": "^8.0.0", + "@types/node": "^12.7.2", + "@types/react": "^16.9.2", + "@types/react-dom": "^16.8.5", + "electron": "6.0.2", + "less": "^3.10.1", + "node-abi": "^2.11.0", + "parcel-bundler": "^1.12.3", + "prettier": "^1.18.2", + "rimraf": "^3.0.0", + "standard": "^13.1.0", + "typescript": "^3.5.3" } } From 6b7bb0f4601ea1a366af389ef96532f9bcf89088 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Mon, 19 Aug 2019 17:33:18 -0400 Subject: [PATCH 07/19] chore: Move bios --- {src/renderer/bios => bios}/COPYING.LESSER | 0 {src/renderer/bios => bios}/bochs-bios.bin | Bin {src/renderer/bios => bios}/bochs-vgabios.bin | Bin {src/renderer/bios => bios}/seabios.bin | Bin {src/renderer/bios => bios}/vgabios.bin | Bin src/renderer/bios/.gitignore | 1 - 6 files changed, 1 deletion(-) rename {src/renderer/bios => bios}/COPYING.LESSER (100%) rename {src/renderer/bios => bios}/bochs-bios.bin (100%) rename {src/renderer/bios => bios}/bochs-vgabios.bin (100%) rename {src/renderer/bios => bios}/seabios.bin (100%) rename {src/renderer/bios => bios}/vgabios.bin (100%) delete mode 100644 src/renderer/bios/.gitignore diff --git a/src/renderer/bios/COPYING.LESSER b/bios/COPYING.LESSER similarity index 100% rename from src/renderer/bios/COPYING.LESSER rename to bios/COPYING.LESSER diff --git a/src/renderer/bios/bochs-bios.bin b/bios/bochs-bios.bin similarity index 100% rename from src/renderer/bios/bochs-bios.bin rename to bios/bochs-bios.bin diff --git a/src/renderer/bios/bochs-vgabios.bin b/bios/bochs-vgabios.bin similarity index 100% rename from src/renderer/bios/bochs-vgabios.bin rename to bios/bochs-vgabios.bin diff --git a/src/renderer/bios/seabios.bin b/bios/seabios.bin similarity index 100% rename from src/renderer/bios/seabios.bin rename to bios/seabios.bin diff --git a/src/renderer/bios/vgabios.bin b/bios/vgabios.bin similarity index 100% rename from src/renderer/bios/vgabios.bin rename to bios/vgabios.bin diff --git a/src/renderer/bios/.gitignore b/src/renderer/bios/.gitignore deleted file mode 100644 index 10d00b5..0000000 --- a/src/renderer/bios/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.gz From b7aa6a760d297bebf0d99e405346ee88e5082115 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Mon, 19 Aug 2019 17:37:35 -0400 Subject: [PATCH 08/19] build: Move to less for styles --- src/less/emulator.less | 16 ++++ src/less/floppy.less | 15 ++++ src/less/info.less | 7 ++ src/less/root.less | 77 ++++++++++++++++++ src/{renderer/style => less}/start.png | Bin .../style/status.css => less/status.less} | 0 src/{renderer/style => less}/vendor/95.ttf | Bin src/{renderer/style => less}/vendor/95css.css | 0 src/{renderer/style => less}/vendor/LICENSE | 0 .../style => less}/vendor/bg-pattern.png | Bin .../style => less}/vendor/dropdown.png | Bin .../style => less}/vendor/windows.woff | Bin .../style => less}/vendor/windows.woff2 | Bin src/renderer/style/resets.css | 33 -------- src/renderer/style/style.css | 75 ----------------- 15 files changed, 115 insertions(+), 108 deletions(-) create mode 100644 src/less/emulator.less create mode 100644 src/less/floppy.less create mode 100644 src/less/info.less create mode 100644 src/less/root.less rename src/{renderer/style => less}/start.png (100%) rename src/{renderer/style/status.css => less/status.less} (100%) rename src/{renderer/style => less}/vendor/95.ttf (100%) rename src/{renderer/style => less}/vendor/95css.css (100%) rename src/{renderer/style => less}/vendor/LICENSE (100%) rename src/{renderer/style => less}/vendor/bg-pattern.png (100%) rename src/{renderer/style => less}/vendor/dropdown.png (100%) rename src/{renderer/style => less}/vendor/windows.woff (100%) rename src/{renderer/style => less}/vendor/windows.woff2 (100%) delete mode 100644 src/renderer/style/resets.css delete mode 100644 src/renderer/style/style.css diff --git a/src/less/emulator.less b/src/less/emulator.less new file mode 100644 index 0000000..c457743 --- /dev/null +++ b/src/less/emulator.less @@ -0,0 +1,16 @@ +#emulator { + height: 100vh; + width: 100vw; + display: flex; + + > div { + white-space: pre; + font: 14px monospace; + line-height: 14px + } + + > canvas { + display: none; + margin: auto; + } +} diff --git a/src/less/floppy.less b/src/less/floppy.less new file mode 100644 index 0000000..1318db4 --- /dev/null +++ b/src/less/floppy.less @@ -0,0 +1,15 @@ +#floppy-path { + font-size: .6rem; + width: 100%; + height: 30px; + padding-left: 8px; + border-color: #000 #fff #fff #000; + border-style: solid; + border-width: 2px; + background-color: #c3c3c3; + line-height: 27px; +} + +#file-input { + display: none; +} diff --git a/src/less/info.less b/src/less/info.less new file mode 100644 index 0000000..de264f1 --- /dev/null +++ b/src/less/info.less @@ -0,0 +1,7 @@ +#information { + text-align: center; + position: absolute; + width: 100vw; + bottom: 50px; + font-size: 18px; +} diff --git a/src/less/root.less b/src/less/root.less new file mode 100644 index 0000000..9061eb0 --- /dev/null +++ b/src/less/root.less @@ -0,0 +1,77 @@ +@import "./status.less"; +@import "./emulator.less"; +@import "./info.less"; +@import "./floppy.less"; + +/* GENERAL RESETS */ + +html, body { + margin: 0; + padding: 0; +} + +body { + background: #000; +} + +body.paused > #emulator { + display: none; +} + +body.paused { + background: #008080; + font-family: Courier; +} + +#buttons { + user-select: none; +} + +section { + display: flex; + position: absolute; + width: 100vw; + height: 100vh; + align-items: center; + justify-content: center; +} + +.card { + width: 75%; + max-width: 700px; + min-width: 400px; +} + +.windows95 { + nav .nav-link, + nav .nav-logo { + height: 30px; + line-height: 1.5; + } + + nav .nav-logo img { + margin-left: 2px; + max-height: 20px; + } + + nav .nav-logo > span { + position: absolute; + top: 9px; + left: 37px; + font-weight: bold; + } + + .btn:focus { + border-color: #fff #000 #000 #fff; + outline: 5px auto -webkit-focus-ring-color; + } + + .btn.active:before, + .btn:focus:before, + button.active:before, + button:focus:before, + input[type=submit].active:before, + input[type=submit]:focus:before { + border-color: #dedede grey grey #dedede; + } +} diff --git a/src/renderer/style/start.png b/src/less/start.png similarity index 100% rename from src/renderer/style/start.png rename to src/less/start.png diff --git a/src/renderer/style/status.css b/src/less/status.less similarity index 100% rename from src/renderer/style/status.css rename to src/less/status.less diff --git a/src/renderer/style/vendor/95.ttf b/src/less/vendor/95.ttf similarity index 100% rename from src/renderer/style/vendor/95.ttf rename to src/less/vendor/95.ttf diff --git a/src/renderer/style/vendor/95css.css b/src/less/vendor/95css.css similarity index 100% rename from src/renderer/style/vendor/95css.css rename to src/less/vendor/95css.css diff --git a/src/renderer/style/vendor/LICENSE b/src/less/vendor/LICENSE similarity index 100% rename from src/renderer/style/vendor/LICENSE rename to src/less/vendor/LICENSE diff --git a/src/renderer/style/vendor/bg-pattern.png b/src/less/vendor/bg-pattern.png similarity index 100% rename from src/renderer/style/vendor/bg-pattern.png rename to src/less/vendor/bg-pattern.png diff --git a/src/renderer/style/vendor/dropdown.png b/src/less/vendor/dropdown.png similarity index 100% rename from src/renderer/style/vendor/dropdown.png rename to src/less/vendor/dropdown.png diff --git a/src/renderer/style/vendor/windows.woff b/src/less/vendor/windows.woff similarity index 100% rename from src/renderer/style/vendor/windows.woff rename to src/less/vendor/windows.woff diff --git a/src/renderer/style/vendor/windows.woff2 b/src/less/vendor/windows.woff2 similarity index 100% rename from src/renderer/style/vendor/windows.woff2 rename to src/less/vendor/windows.woff2 diff --git a/src/renderer/style/resets.css b/src/renderer/style/resets.css deleted file mode 100644 index 077fe1f..0000000 --- a/src/renderer/style/resets.css +++ /dev/null @@ -1,33 +0,0 @@ -/* GENERAL RESETS */ - -.windows95 nav .nav-link, -.windows95 nav .nav-logo { - height: 30px; - line-height: 1.5; -} - -.windows95 nav .nav-logo img { - margin-left: 2px; - max-height: 20px; -} - -.windows95 nav .nav-logo > span { - position: absolute; - top: 9px; - left: 37px; - font-weight: bold; -} - -.windows95 .btn:focus { - border-color: #fff #000 #000 #fff; - outline: 5px auto -webkit-focus-ring-color; -} - -.windows95 .btn.active:before, -.windows95 .btn:focus:before, -.windows95 button.active:before, -.windows95 button:focus:before, -.windows95 input[type=submit].active:before, -.windows95 input[type=submit]:focus:before { - border-color: #dedede grey grey #dedede; -} diff --git a/src/renderer/style/style.css b/src/renderer/style/style.css deleted file mode 100644 index ab853c5..0000000 --- a/src/renderer/style/style.css +++ /dev/null @@ -1,75 +0,0 @@ -@import "./resets.css"; -@import "./status.css"; - -html, body { - margin: 0; - padding: 0; -} - -body { - background: #000; -} - -body.paused > #emulator { - display: none; -} - -body.paused { - background: #008080; - font-family: Courier; -} - -#buttons { - user-select: none; -} - -#floppy-path { - font-size: .6rem; - width: 100%; - height: 30px; - padding-left: 8px; - border-color: #000 #fff #fff #000; - border-style: solid; - border-width: 2px; - background-color: #c3c3c3; - line-height: 27px; -} - -#information { - text-align: center; - position: absolute; - width: 100vw; - bottom: 50px; - font-size: 18px; -} - -#emulator { - display: flex -} - -#emulator canvas { - margin: auto; -} - -#file-input { - display: none; -} - -section { - display: none; -} - -section.visible { - display: flex; - position: absolute; - width: 100vw; - height: 100vh; - align-items: center; - justify-content: center; -} - -.card { - width: 75%; - max-width: 700px; - min-width: 400px; -} From 241606d0973d193935b49d7925df225373217d14 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 21 Aug 2019 09:48:49 +0200 Subject: [PATCH 09/19] feat: Move to TypeScript --- package.json | 2 +- src/cache.js | 25 --- src/cache.ts | 25 +++ src/{constants.js => constants.ts} | 17 +- src/es6.js | 36 --- src/index.js | 55 ----- src/main/about-panel.ts | 28 +++ src/main/main.ts | 67 ++++++ src/main/menu.ts | 197 ++++++++++++++++ src/main/squirrel.ts | 3 + src/main/update.ts | 10 + src/main/windows.ts | 21 ++ src/menu.js | 182 --------------- src/preload.js | 42 ---- src/renderer/app-state.js | 9 - src/renderer/app.tsx | 34 +++ src/renderer/buttons.js | 56 ----- src/renderer/card-floppy.tsx | 78 +++++++ src/renderer/card-start.tsx | 23 ++ src/renderer/card-state.tsx | 47 ++++ src/renderer/emulator-info.tsx | 166 ++++++++++++++ src/renderer/emulator.tsx | 350 +++++++++++++++++++++++++++++ src/renderer/global.d.ts | 2 + src/renderer/index.html | 75 ------- src/renderer/info.js | 94 -------- src/renderer/ipc.js | 44 ---- src/renderer/listeners.js | 47 ---- src/renderer/renderer.js | 72 ------ src/renderer/start-menu.tsx | 39 ++++ src/renderer/status.tsx | 0 src/state.js | 81 ------- src/utils/devmode.ts | 8 + src/utils/disk-image-size.js | 26 --- src/utils/disk-image-size.ts | 22 ++ static/index.html | 16 ++ {src/less => static}/start.png | Bin tools/generateAssets.js | 7 + tools/parcel-build.js | 47 ++++ tools/parcel-watch.js | 11 + tools/run-bin.js | 30 +++ tools/tsc.js | 13 ++ tsconfig.json | 43 ++++ 42 files changed, 1294 insertions(+), 856 deletions(-) delete mode 100644 src/cache.js create mode 100644 src/cache.ts rename src/{constants.js => constants.ts} (52%) delete mode 100644 src/es6.js delete mode 100644 src/index.js create mode 100644 src/main/about-panel.ts create mode 100644 src/main/main.ts create mode 100644 src/main/menu.ts create mode 100644 src/main/squirrel.ts create mode 100644 src/main/update.ts create mode 100644 src/main/windows.ts delete mode 100644 src/menu.js delete mode 100644 src/preload.js delete mode 100644 src/renderer/app-state.js create mode 100644 src/renderer/app.tsx delete mode 100644 src/renderer/buttons.js create mode 100644 src/renderer/card-floppy.tsx create mode 100644 src/renderer/card-start.tsx create mode 100644 src/renderer/card-state.tsx create mode 100644 src/renderer/emulator-info.tsx create mode 100644 src/renderer/emulator.tsx create mode 100644 src/renderer/global.d.ts delete mode 100644 src/renderer/index.html delete mode 100644 src/renderer/info.js delete mode 100644 src/renderer/ipc.js delete mode 100644 src/renderer/listeners.js delete mode 100644 src/renderer/renderer.js create mode 100644 src/renderer/start-menu.tsx create mode 100644 src/renderer/status.tsx delete mode 100644 src/state.js create mode 100644 src/utils/devmode.ts delete mode 100644 src/utils/disk-image-size.js create mode 100644 src/utils/disk-image-size.ts create mode 100644 static/index.html rename {src/less => static}/start.png (100%) create mode 100644 tools/generateAssets.js create mode 100644 tools/parcel-build.js create mode 100644 tools/parcel-watch.js create mode 100644 tools/run-bin.js create mode 100644 tools/tsc.js create mode 100644 tsconfig.json diff --git a/package.json b/package.json index 668ac44..8d690e6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", - "lint": "standard \"src/**/*.js\"", + "lint": "prettier --write src/**/*.{ts,tsx}", "less": "node ./tools/lessc.js" }, "keywords": [], diff --git a/src/cache.js b/src/cache.js deleted file mode 100644 index 1c5ebfd..0000000 --- a/src/cache.js +++ /dev/null @@ -1,25 +0,0 @@ -const { session } = require('electron') - -const clearCaches = async () => { - await clearCache() - await clearStorageData() -} - -const clearCache = () => { - return new Promise((resolve) => { - session.defaultSession.clearCache(resolve) - }) -} - -const clearStorageData = () => { - return new Promise((resolve) => { - session.defaultSession.clearStorageData({ - storages: 'appcache, cookies, filesystem, indexdb, localstorage, shadercache, websql, serviceworkers', - quotas: 'temporary, persistent, syncable' - }, resolve) - }) -} - -module.exports = { - clearCaches -} diff --git a/src/cache.ts b/src/cache.ts new file mode 100644 index 0000000..fd56d93 --- /dev/null +++ b/src/cache.ts @@ -0,0 +1,25 @@ +import { session } from 'electron'; + +export async function clearCaches() { + await clearCache() + await clearStorageData() +} + +export async function clearCache() { + if (session.defaultSession) { + await session.defaultSession.clearCache(); + } +} + +export function clearStorageData() { + return new Promise((resolve) => { + if (!session.defaultSession) { + return resolve(); + } + + session.defaultSession.clearStorageData({ + storages: [ 'appcache', 'cookies', 'filesystem', 'indexdb', 'localstorage', 'shadercache', 'websql', 'serviceworkers' ], + quotas: [ 'temporary', 'persistent', 'syncable' ] + }, resolve) + }) +} diff --git a/src/constants.js b/src/constants.ts similarity index 52% rename from src/constants.js rename to src/constants.ts index 882c5d1..998b586 100644 --- a/src/constants.js +++ b/src/constants.ts @@ -1,24 +1,19 @@ -const { remote, app } = require('electron') -const path = require('path') +import { remote, app } from 'electron'; +import * as path from 'path'; const _app = app || remote.app -const CONSTANTS = { - IMAGE_PATH: path.join(__dirname, 'images/windows95.img'), +export const CONSTANTS = { + IMAGE_PATH: path.join(__dirname, '../../images/windows95.img'), IMAGE_DEFAULT_SIZE: 1073741824, // 1GB - DEFAULT_STATE_PATH: path.join(__dirname, 'images/default-state.bin'), + DEFAULT_STATE_PATH: path.join(__dirname, '../../images/default-state.bin'), STATE_PATH: path.join(_app.getPath('userData'), 'state-v2.bin') } -const IPC_COMMANDS = { +export const IPC_COMMANDS = { TOGGLE_INFO: 'TOGGLE_INFO', MACHINE_RESTART: 'MACHINE_RESTART', MACHINE_RESET: 'MACHINE_RESET', MACHINE_CTRL_ALT_DEL: 'MACHINE_CTRL_ALT_DEL', SHOW_DISK_IMAGE: 'SHOW_DISK_IMAGE' } - -module.exports = { - CONSTANTS, - IPC_COMMANDS -} diff --git a/src/es6.js b/src/es6.js deleted file mode 100644 index aed1ea0..0000000 --- a/src/es6.js +++ /dev/null @@ -1,36 +0,0 @@ -const { protocol } = require('electron') -const fs = require('fs-extra') -const path = require('path') - -const ES6_PATH = path.join(__dirname, 'renderer') - -protocol.registerSchemesAsPrivileged([ - { - scheme: 'es6', - privileges: { - standard: true - } - } -]) - -async function setupProtocol () { - protocol.registerBufferProtocol('es6', async (req, cb) => { - console.log(req) - - try { - const filePath = path.join(ES6_PATH, req.url.replace('es6://', '')) - .replace('.js/', '.js') - .replace('.js\\', '.js') - - const fileContent = await fs.readFile(filePath) - - cb({ mimeType: 'text/javascript', data: fileContent }) // eslint-disable-line - } catch (error) { - console.warn(error) - } - }) -} - -module.exports = { - setupProtocol -} diff --git a/src/index.js b/src/index.js deleted file mode 100644 index b2d044c..0000000 --- a/src/index.js +++ /dev/null @@ -1,55 +0,0 @@ -const { app, BrowserWindow } = require('electron') -const path = require('path') - -const { createMenu } = require('./menu') -const { setupProtocol } = require('./es6') - -if (require('electron-squirrel-startup')) { // eslint-disable-line global-require - app.quit() -} - -if (app.isPackaged) { - require('update-electron-app')({ - repo: 'felixrieseberg/windows95', - updateInterval: '1 hour' - }) -} - -let mainWindow - -const createWindow = () => { - // Create the browser window. - mainWindow = new BrowserWindow({ - width: 1024, - height: 768, - useContentSize: true, - webPreferences: { - nodeIntegration: false, - preload: path.join(__dirname, 'preload.js') - } - }) - - mainWindow.loadURL(`file://${__dirname}/renderer/index.html`) - - mainWindow.on('closed', () => { - mainWindow = null - }) -} - -app.on('ready', async () => { - await setupProtocol() - await createMenu() - - createWindow() -}) - -// Quit when all windows are closed. -app.on('window-all-closed', () => { - app.quit() -}) - -app.on('activate', () => { - if (mainWindow === null) { - createWindow() - } -}) diff --git a/src/main/about-panel.ts b/src/main/about-panel.ts new file mode 100644 index 0000000..498275b --- /dev/null +++ b/src/main/about-panel.ts @@ -0,0 +1,28 @@ +import { AboutPanelOptionsOptions, app } from "electron"; + +/** + * Sets Fiddle's About panel options on Linux and macOS + * + * @returns + */ +export function setupAboutPanel(): void { + if (process.platform === "win32") return; + + const options: AboutPanelOptionsOptions = { + applicationName: "windows95", + applicationVersion: app.getVersion(), + version: process.versions.electron, + copyright: "Felix Rieseberg" + }; + + switch (process.platform) { + case "linux": + options.website = "https://github.com/felixrieseberg/windows95"; + case "darwin": + options.credits = "https://github.com/felixrieseberg/windows95"; + default: + // fallthrough + } + + app.setAboutPanelOptions(options); +} diff --git a/src/main/main.ts b/src/main/main.ts new file mode 100644 index 0000000..409de82 --- /dev/null +++ b/src/main/main.ts @@ -0,0 +1,67 @@ +import { app } from "electron"; + +import { isDevMode } from "../utils/devmode"; +import { setupAboutPanel } from "./about-panel"; +import { shouldQuit } from "./squirrel"; +import { setupUpdates } from "./update"; +import { createWindow } from "./windows"; +import { setupMenu } from "./menu"; + +/** + * Handle the app's "ready" event. This is essentially + * the method that takes care of booting the application. + */ +export async function onReady() { + if (!isDevMode()) process.env.NODE_ENV = "production"; + + createWindow(); + setupAboutPanel(); + setupMenu(); + setupUpdates(); +} + +/** + * Handle the "before-quit" event + * + * @export + */ +export function onBeforeQuit() { + (global as any).isQuitting = true; +} + +/** + * All windows have been closed, quit on anything but + * macOS. + */ +export function onWindowsAllClosed() { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== "darwin") { + app.quit(); + } +} + +/** + * The main method - and the first function to run + * when Fiddle is launched. + * + * Exported for testing purposes. + */ +export function main() { + // Handle creating/removing shortcuts on Windows when + // installing/uninstalling. + if (shouldQuit()) { + app.quit(); + return; + } + + // Set the app's name + app.setName("windows95"); + + // Launch + app.on("ready", onReady); + app.on("before-quit", onBeforeQuit); + app.on("window-all-closed", onWindowsAllClosed); +} + +main(); diff --git a/src/main/menu.ts b/src/main/menu.ts new file mode 100644 index 0000000..f4216f1 --- /dev/null +++ b/src/main/menu.ts @@ -0,0 +1,197 @@ +import { app, shell, Menu, BrowserWindow } from "electron"; + +import { clearCaches } from "../cache"; +import { IPC_COMMANDS } from "../constants"; +import { isDevMode } from "../utils/devmode"; + +const LINKS = { + homepage: "https://www.twitter.com/felixrieseberg", + repo: "https://github.com/felixrieseberg/windows95", + credits: "https://github.com/felixrieseberg/windows95/blob/master/CREDITS.md", + help: "https://github.com/felixrieseberg/windows95/blob/master/HELP.md" +}; + +function send(cmd: string) { + const windows = BrowserWindow.getAllWindows(); + + if (windows[0]) { + windows[0].webContents.send(cmd); + } +} + +export async function setupMenu() { + const template: Array = [ + { + label: "View", + submenu: [ + { + label: "Toggle Full Screen", + accelerator: (function() { + if (process.platform === "darwin") { + return "Ctrl+Command+F"; + } else { + return "F11"; + } + })(), + click: function(_item, focusedWindow) { + if (focusedWindow) { + focusedWindow.setFullScreen(!focusedWindow.isFullScreen()); + } + } + }, + { + label: "Toggle Developer Tools", + accelerator: (function() { + if (process.platform === "darwin") { + return "Alt+Command+I"; + } else { + return "Ctrl+Shift+I"; + } + })(), + click: function(_item, focusedWindow) { + if (focusedWindow) { + focusedWindow.webContents.toggleDevTools(); + } + } + }, + { + type: "separator" + }, + { + label: "Toggle Emulator Info", + click: () => send(IPC_COMMANDS.TOGGLE_INFO) + }, + { + type: "separator" + }, + { + role: "reload" + } + ] + }, + { + role: "editMenu", + visible: isDevMode() + }, + { + label: "Window", + role: "window", + submenu: [ + { + label: "Minimize", + accelerator: "CmdOrCtrl+M", + role: "minimize" + }, + { + label: "Close", + accelerator: "CmdOrCtrl+W", + role: "close" + } + ] + }, + { + label: "Machine", + submenu: [ + { + label: "Send Ctrl+Alt+Del", + click: () => send(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL) + }, + { + label: "Restart", + click: () => send(IPC_COMMANDS.MACHINE_RESTART) + }, + { + label: "Reset", + click: () => send(IPC_COMMANDS.MACHINE_RESET) + }, + { + type: "separator" + }, + { + label: "Go to Disk Image", + click: () => send(IPC_COMMANDS.SHOW_DISK_IMAGE) + } + ] + }, + { + label: "Help", + role: "help", + submenu: [ + { + label: "Author", + click: () => shell.openExternal(LINKS.homepage) + }, + { + label: "windows95 on GitHub", + click: () => shell.openExternal(LINKS.repo) + }, + { + label: "Help", + click: () => shell.openExternal(LINKS.help) + }, + { + type: "separator" + }, + { + label: "Troubleshooting", + submenu: [ + { + label: "Clear Cache and Restart", + async click() { + await clearCaches(); + + app.relaunch(); + app.quit(); + } + } + ] + } + ] + } + ]; + + if (process.platform === "darwin") { + template.unshift({ + label: "windows95", + submenu: [ + { + role: "about" + }, + { + type: "separator" + }, + { + role: "services" + }, + { + type: "separator" + }, + { + label: "Hide windows95", + accelerator: "Command+H", + role: "hide" + }, + { + label: "Hide Others", + accelerator: "Command+Shift+H", + role: "hideothers" + }, + { + role: "unhide" + }, + { + type: "separator" + }, + { + label: "Quit", + accelerator: "Command+Q", + click() { + app.quit(); + } + } + ] + } as any); + } + + Menu.setApplicationMenu(Menu.buildFromTemplate(template as any)); +} diff --git a/src/main/squirrel.ts b/src/main/squirrel.ts new file mode 100644 index 0000000..f41be24 --- /dev/null +++ b/src/main/squirrel.ts @@ -0,0 +1,3 @@ +export function shouldQuit() { + return require("electron-squirrel-startup"); +} diff --git a/src/main/update.ts b/src/main/update.ts new file mode 100644 index 0000000..a012b62 --- /dev/null +++ b/src/main/update.ts @@ -0,0 +1,10 @@ +import { app } from "electron"; + +export function setupUpdates() { + if (app.isPackaged) { + require("update-electron-app")({ + repo: "felixrieseberg/windows95", + updateInterval: "1 hour" + }); + } +} diff --git a/src/main/windows.ts b/src/main/windows.ts new file mode 100644 index 0000000..81f7ea5 --- /dev/null +++ b/src/main/windows.ts @@ -0,0 +1,21 @@ +import { BrowserWindow } from "electron"; + +let mainWindow; + +export function createWindow() { + // Create the browser window. + mainWindow = new BrowserWindow({ + width: 1024, + height: 768, + useContentSize: true, + webPreferences: { + nodeIntegration: true + } + }); + + mainWindow.loadFile("./dist/static/index.html"); + + mainWindow.on("closed", () => { + mainWindow = null; + }); +} diff --git a/src/menu.js b/src/menu.js deleted file mode 100644 index 0ab6d49..0000000 --- a/src/menu.js +++ /dev/null @@ -1,182 +0,0 @@ -const { app, shell, Menu, BrowserWindow } = require('electron') - -const { clearCaches } = require('./cache') -const { IPC_COMMANDS } = require('./constants') - -const LINKS = { - homepage: 'https://www.twitter.com/felixrieseberg', - repo: 'https://github.com/felixrieseberg/windows95', - credits: 'https://github.com/felixrieseberg/windows95/blob/master/CREDITS.md', - help: 'https://github.com/felixrieseberg/windows95/blob/master/HELP.md' -} - -function send (cmd) { - const windows = BrowserWindow.getAllWindows() - - if (windows[0]) { - windows[0].webContents.send(cmd) - } -} - -async function createMenu () { - const template = [ - { - label: 'View', - submenu: [ - { - label: 'Toggle Full Screen', - accelerator: (function () { - if (process.platform === 'darwin') { return 'Ctrl+Command+F' } else { return 'F11' } - })(), - click: function (_item, focusedWindow) { - if (focusedWindow) { focusedWindow.setFullScreen(!focusedWindow.isFullScreen()) } - } - }, - { - label: 'Toggle Developer Tools', - accelerator: (function () { - if (process.platform === 'darwin') { return 'Alt+Command+I' } else { return 'Ctrl+Shift+I' } - })(), - click: function (_item, focusedWindow) { - if (focusedWindow) { focusedWindow.toggleDevTools() } - } - }, - { - type: 'separator' - }, - { - label: 'Toggle Emulator Info', - click: () => send(IPC_COMMANDS.TOGGLE_INFO) - } - ] - }, - { - label: 'Window', - role: 'window', - submenu: [ - { - label: 'Minimize', - accelerator: 'CmdOrCtrl+M', - role: 'minimize' - }, - { - label: 'Close', - accelerator: 'CmdOrCtrl+W', - role: 'close' - } - ] - }, - { - label: 'Machine', - submenu: [ - { - label: 'Send Ctrl+Alt+Del', - click: () => send(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL) - }, - { - label: 'Restart', - click: () => send(IPC_COMMANDS.MACHINE_RESTART) - }, - { - label: 'Reset', - click: () => send(IPC_COMMANDS.MACHINE_RESET) - }, - { - type: 'separator' - }, - { - label: 'Go to Disk Image', - click: () => send(IPC_COMMANDS.SHOW_DISK_IMAGE) - } - ] - }, - { - label: 'Help', - role: 'help', - submenu: [ - { - label: 'Author', - click: () => shell.openExternal(LINKS.homepage) - }, - { - label: 'windows95 on GitHub', - click: () => shell.openExternal(LINKS.repo) - }, - { - label: 'Help', - click: () => shell.openExternal(LINKS.help) - }, - { - type: 'separator' - }, - { - label: 'Troubleshooting', - submenu: [ - { - label: 'Clear Cache and Restart', - async click () { - await clearCaches() - - app.relaunch() - app.quit() - } - } - ] - } - ] - } - ] - - if (process.platform === 'darwin') { - template.unshift({ - label: 'windows95', - submenu: [ - { - label: 'About windows95', - role: 'about' - }, - { - type: 'separator' - }, - { - label: 'Services', - role: 'services', - submenu: [] - }, - { - type: 'separator' - }, - { - label: 'Hide windows95', - accelerator: 'Command+H', - role: 'hide' - }, - { - label: 'Hide Others', - accelerator: 'Command+Shift+H', - role: 'hideothers' - }, - { - label: 'Show All', - role: 'unhide' - }, - { - type: 'separator' - }, - { - label: 'Quit', - accelerator: 'Command+Q', - click () { - app.quit() - } - } - ] - }) - } - - Menu.setApplicationMenu(Menu.buildFromTemplate(template)) -} - -module.exports = { - createMenu -} diff --git a/src/preload.js b/src/preload.js deleted file mode 100644 index 1ec1176..0000000 --- a/src/preload.js +++ /dev/null @@ -1,42 +0,0 @@ -const { remote, shell, ipcRenderer } = require('electron') -const path = require('path') -const EventEmitter = require('events') - -const { resetState, restoreState, saveState } = require('./state') -const { getDiskImageSize } = require('./utils/disk-image-size') -const { IPC_COMMANDS, CONSTANTS } = require('./constants') - -class Windows95 extends EventEmitter { - constructor () { - super() - - // Constants - this.CONSTANTS = CONSTANTS - this.IPC_COMMANDS = IPC_COMMANDS - - // Methods - this.getDiskImageSize = getDiskImageSize - this.restoreState = restoreState - this.resetState = resetState - this.saveState = saveState - - Object.keys(IPC_COMMANDS).forEach((command) => { - ipcRenderer.on(command, (...args) => { - this.emit(command, args) - }) - }) - } - - showDiskImage () { - const imagePath = path.join(__dirname, 'images/windows95.img') - .replace('app.asar', 'app.asar.unpacked') - - shell.showItemInFolder(imagePath) - } - - quit () { - remote.app.quit() - } -} - -window.windows95 = new Windows95() diff --git a/src/renderer/app-state.js b/src/renderer/app-state.js deleted file mode 100644 index a1b8ef3..0000000 --- a/src/renderer/app-state.js +++ /dev/null @@ -1,9 +0,0 @@ -export function setupState () { - window.appState = { - isResetting: false, - isQuitting: false, - cursorCaptured: false, - floppyFile: null, - bootFresh: false - } -} diff --git a/src/renderer/app.tsx b/src/renderer/app.tsx new file mode 100644 index 0000000..668dfff --- /dev/null +++ b/src/renderer/app.tsx @@ -0,0 +1,34 @@ +/** + * The top-level class controlling the whole app. This is *not* a React component, + * but it does eventually render all components. + * + * @class App + */ +export class App { + /** + * Initial setup call, loading Monaco and kicking off the React + * render process. + */ + public async setup(): Promise { + const React = await import("react"); + const { render } = await import("react-dom"); + const { Emulator } = await import("./emulator"); + + const className = `${process.platform}`; + const app = ( +

+ +
+ ); + + const rendered = render(app, document.getElementById("app")); + + return rendered; + } +} + +window["win95"] = window["win95"] || { + app: new App() +}; + +window["win95"].app.setup(); diff --git a/src/renderer/buttons.js b/src/renderer/buttons.js deleted file mode 100644 index cc2f582..0000000 --- a/src/renderer/buttons.js +++ /dev/null @@ -1,56 +0,0 @@ -const $ = document.querySelector.bind(document) -const $$ = document.querySelectorAll.bind(document) - -export function setupButtons (start) { - // Sections - $('a#start').addEventListener('click', () => setVisibleSection('start')) - $('a#floppy').addEventListener('click', () => setVisibleSection('floppy')) - $('a#state').addEventListener('click', () => setVisibleSection('state')) - $('a#disk').addEventListener('click', () => setVisibleSection('disk')) - - // Start - $('.btn-start').addEventListener('click', start) - - // Disk Image - $('#disk-image-show').addEventListener('click', () => windows95.showDiskImage()) - - // Reset - $('#reset').addEventListener('click', () => windows95.resetState()) - - $('#discard-state').addEventListener('click', () => { - window.appState.bootFresh = true - - start() - }) - - // Floppy - $('#floppy-select').addEventListener('click', () => { - $('#floppy-input').click() - }) - - // Floppy (Hidden Input) - $('#floppy-input').addEventListener('change', (event) => { - window.appState.floppyFile = event.target.files && event.target.files.length > 0 - ? event.target.files[0] - : null - - if (window.appState.floppyFile) { - $('#floppy-path').innerHTML = `Inserted Floppy Disk: ${window.appState.floppyFile.path}` - } - }) -} - -export function toggleSetup (forceTo) { - const buttonElements = $('#setup') - - if (buttonElements.style.display !== 'none' || forceTo === false) { - buttonElements.style.display = 'none' - } else { - buttonElements.style.display = undefined - } -} - -function setVisibleSection(id = '') { - $$(`section`).forEach((s) => s.classList.remove('visible')) - $(`section#section-${id}`).classList.add('visible') -} diff --git a/src/renderer/card-floppy.tsx b/src/renderer/card-floppy.tsx new file mode 100644 index 0000000..9b316ec --- /dev/null +++ b/src/renderer/card-floppy.tsx @@ -0,0 +1,78 @@ +import * as React from "react"; + +export interface CardFloppyProps { + setFloppyPath: (path: string) => void; + floppyPath?: string; +} + +export class CardFloppy extends React.Component { + constructor(props: CardFloppyProps) { + super(props); + + this.onChange = this.onChange.bind(this); + } + + public render() { + return ( +
+
+
+

Floppy Drive

+
+
+ +

+ windows95 comes with a virtual floppy drive. If you have floppy + disk images in the "img" format, you can mount them here. +

+

+ Back in the 90s and before CD-ROM became a popular format, + software was typically distributed on floppy disks. Some + developers have since released their apps or games for free, + usually on virtual floppy disks using the "img" format. +

+

+ Once you've mounted a disk image, you might have to reboot your + virtual windows95 machine from scratch. +

+

+ {this.props.floppyPath + ? `Inserted Floppy Disk: ${this.props.floppyPath}` + : `No floppy mounted`} +

+ + +
+
+
+ ); + } + + public onChange(event: React.ChangeEvent) { + const floppyFile = + event.target.files && event.target.files.length > 0 + ? event.target.files[0] + : null; + + if (floppyFile) { + this.props.setFloppyPath(floppyFile.path); + } else { + console.log(`Floppy: Input changed but no file selected`); + } + } +} diff --git a/src/renderer/card-start.tsx b/src/renderer/card-start.tsx new file mode 100644 index 0000000..96d9612 --- /dev/null +++ b/src/renderer/card-start.tsx @@ -0,0 +1,23 @@ +import * as React from "react"; + +export interface CardStartProps { + startEmulator: () => void; +} + +export class CardStart extends React.Component { + public render() { + return ( +
+
+ Start Windows 95 +
+ Hit ESC to lock or unlock your mouse +
+
+ ); + } +} diff --git a/src/renderer/card-state.tsx b/src/renderer/card-state.tsx new file mode 100644 index 0000000..92d3d2e --- /dev/null +++ b/src/renderer/card-state.tsx @@ -0,0 +1,47 @@ +import * as React from "react"; +import * as fs from "fs-extra"; + +import { CONSTANTS } from "../constants"; + +export interface CardStateProps { + bootFromScratch: () => void; +} + +export class CardState extends React.Component { + constructor(props: CardStateProps) { + super(props); + + this.onReset = this.onReset.bind(this); + } + + public render() { + return ( +
+
+
+

Machine State

+
+
+

+ windows95 stores any changes to your machine (like saved files) in + a state file. If you encounter any trouble, you can either reset + your state or boot Windows 95 from scratch. +

+ + +
+
+
+ ); + } + + public async onReset() { + if (fs.existsSync(CONSTANTS.STATE_PATH)) { + await fs.remove(CONSTANTS.STATE_PATH); + } + } +} diff --git a/src/renderer/emulator-info.tsx b/src/renderer/emulator-info.tsx new file mode 100644 index 0000000..40f7ae6 --- /dev/null +++ b/src/renderer/emulator-info.tsx @@ -0,0 +1,166 @@ +import * as React from "react"; + +interface EmulatorInfoProps { + toggleInfo: () => void; + emulator: any; +} + +interface EmulatorInfoState { + cpu: number; + disk: string; + lastCounter: number; + lastTick: number; +} + +export class EmulatorInfo extends React.Component< + EmulatorInfoProps, + EmulatorInfoState +> { + private cpuInterval = -1; + + constructor(props: EmulatorInfoProps) { + super(props); + + this.cpuCount = this.cpuCount.bind(this); + this.onIDEReadStart = this.onIDEReadStart.bind(this); + this.onIDEReadWriteEnd = this.onIDEReadWriteEnd.bind(this); + + this.state = { + cpu: 0, + disk: "Idle", + lastCounter: 0, + lastTick: 0 + }; + } + + public render() { + const { cpu, disk } = this.state; + + return ( +
+ Disk: {disk}| CPU Speed: {cpu}|{" "} + + Hide + +
+ ); + } + + public componentWillUnmount() { + this.uninstallListeners(); + } + + /** + * The emulator starts whenever, so install or uninstall listeners + * at the right time + * + * @param newProps + */ + public componentDidUpdate(prevProps: EmulatorInfoProps) { + if (prevProps.emulator !== this.props.emulator) { + if (this.props.emulator) { + this.installListeners(); + } else { + this.uninstallListeners(); + } + } + } + + /** + * Let's start listening to what the emulator is up to. + */ + private installListeners() { + const { emulator } = this.props; + + if (!emulator) { + console.log( + `Emulator info: Tried to install listeners, but emulator not defined yet.` + ); + return; + } + + // CPU + if (this.cpuInterval > -1) { + clearInterval(this.cpuInterval); + } + + // TypeScript think's we're using a Node.js setInterval. We're not. + this.cpuInterval = (setInterval(this.cpuCount, 500) as unknown) as number; + + // Disk + emulator.add_listener("ide-read-start", this.onIDEReadStart); + emulator.add_listener("ide-read-end", this.onIDEReadWriteEnd); + emulator.add_listener("ide-write-end", this.onIDEReadWriteEnd); + + // Screen + emulator.add_listener("screen-set-size-graphical", console.log); + } + + /** + * Stop listening to the emulator. + */ + private uninstallListeners() { + const { emulator } = this.props; + + if (!emulator) { + console.log( + `Emulator info: Tried to uninstall listeners, but emulator not defined yet.` + ); + return; + } + + // CPU + if (this.cpuInterval > -1) { + clearInterval(this.cpuInterval); + } + + // Disk + emulator.remove_listener("ide-read-start", this.onIDEReadStart); + emulator.remove_listener("ide-read-end", this.onIDEReadWriteEnd); + emulator.remove_listener("ide-write-end", this.onIDEReadWriteEnd); + + // Screen + emulator.remove_listener("screen-set-size-graphical", console.log); + } + + /** + * The virtual IDE is handling read (start). + */ + private onIDEReadStart() { + this.requestIdle(() => this.setState({ disk: "Read" })); + } + + /** + * The virtual IDE is handling read/write (end). + */ + private onIDEReadWriteEnd() { + this.requestIdle(() => this.setState({ disk: "Idle" })); + } + + /** + * Request an idle callback with a 3s timeout. + * + * @param fn + */ + private requestIdle(fn: () => void) { + (window as any).requestIdleCallback(fn, { timeout: 3000 }); + } + + /** + * Calculates what's up with the virtual cpu. + */ + private cpuCount() { + const { lastCounter, lastTick } = this.state; + + const now = Date.now(); + const instructionCounter = this.props.emulator.get_instruction_counter(); + const ips = instructionCounter - lastCounter; + const deltaTime = now - lastTick; + + this.setState({ + lastTick: now, + lastCounter: instructionCounter, + cpu: Math.round(ips / deltaTime) + }); + } +} diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx new file mode 100644 index 0000000..ad0f8bc --- /dev/null +++ b/src/renderer/emulator.tsx @@ -0,0 +1,350 @@ +import * as React from "react"; +import * as fs from "fs-extra"; +import * as path from "path"; +import { ipcRenderer, remote, shell } from "electron"; + +import { CONSTANTS, IPC_COMMANDS } from "../constants"; +import { getDiskImageSize } from "../utils/disk-image-size"; +import { CardStart } from "./card-start"; +import { StartMenu } from "./start-menu"; +import { CardFloppy } from "./card-floppy"; +import { CardState } from "./card-state"; +import { EmulatorInfo } from "./emulator-info"; + +export interface EmulatorState { + currentUiCard: string; + emulator?: any; + floppyFile?: string; + isBootingFresh: boolean; + isCursorCaptured: boolean; + isInfoDisplayed: boolean; + isRunning: boolean; +} + +export class Emulator extends React.Component<{}, EmulatorState> { + private isQuitting = false; + private isResetting = false; + + constructor(props: {}) { + super(props); + + this.startEmulator = this.startEmulator.bind(this); + + this.state = { + isBootingFresh: false, + isCursorCaptured: false, + isRunning: false, + currentUiCard: "start", + isInfoDisplayed: true + }; + + this.setupInputListeners(); + this.setupIpcListeners(); + this.setupUnloadListeners(); + + if (document.location.hash.includes("AUTO_START")) { + this.startEmulator(); + } + } + + /** + * We want to capture and release the mouse at appropriate times. + */ + public setupInputListeners() { + // ESC + document.onkeydown = evt => { + const { emulator, isCursorCaptured } = this.state; + + evt = evt || window.event; + + if (evt.keyCode === 27) { + if (isCursorCaptured) { + this.setState({ isCursorCaptured: false }); + + if (emulator) { + emulator.mouse_set_status(false); + } + + document.exitPointerLock(); + } else { + this.setState({ isCursorCaptured: true }); + + if (emulator) { + emulator.lock_mouse(); + } + } + } + }; + + // Click + document.addEventListener("click", () => { + if (!this.state.isCursorCaptured) { + this.setState({ isCursorCaptured: true }); + this.state.emulator.mouse_set_status(true); + this.state.emulator.lock_mouse(); + } + }); + } + + /** + * Save the emulator's state to disk during exit. + */ + public setupUnloadListeners() { + const handleClose = async () => { + await this.saveState(); + this.isQuitting = true; + remote.app.quit(); + }; + + window.onbeforeunload = event => { + if (this.isQuitting) return; + if (this.isResetting) return; + + handleClose(); + event.preventDefault(); + event.returnValue = false; + }; + } + + /** + * Setup the various IPC messages sent to the renderer + * from the main process + */ + public setupIpcListeners() { + ipcRenderer.on(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL, () => { + if (this.state.emulator && this.state.isRunning) { + this.state.emulator.keyboard_send_scancodes([ + 0x1d, // ctrl + 0x38, // alt + 0x53, // delete + + // break codes + 0x1d | 0x80, + 0x38 | 0x80, + 0x53 | 0x80 + ]); + } + }); + + ipcRenderer.on(IPC_COMMANDS.MACHINE_RESTART, () => { + if (this.state.emulator && this.state.isRunning) { + this.state.emulator.restart(); + } + }); + + ipcRenderer.on(IPC_COMMANDS.TOGGLE_INFO, () => { + this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); + }); + + ipcRenderer.on(IPC_COMMANDS.SHOW_DISK_IMAGE, () => { + this.showDiskImage(); + }); + } + + /** + * If the emulator isn't running, this is rendering the, erm, UI. + * + * 🤡 + */ + public renderUI() { + const { isRunning, currentUiCard } = this.state; + + if (isRunning) { + return null; + } + + let card; + + if (currentUiCard === "floppy") { + card = ( + this.setState({ floppyFile })} + floppyPath={this.state.floppyFile} + /> + ); + } else if (currentUiCard === "state") { + card = ; + } else { + card = ; + } + + return ( + <> + {card} + this.setState({ currentUiCard: target })} + /> + + ); + } + + /** + * Yaknow, render things and stuff. + */ + public render() { + return ( + <> + { + this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); + }} + /> + {this.renderUI()} +
+
+ +
+ + ); + } + + /** + * Boot the emulator without restoring state + */ + public bootFromScratch() { + this.setState({ isBootingFresh: true }); + this.startEmulator(); + } + + /** + * Show the disk image on disk + */ + public showDiskImage() { + const imagePath = path + .join(__dirname, "images/windows95.img") + .replace("app.asar", "app.asar.unpacked"); + + shell.showItemInFolder(imagePath); + } + + /** + * Start the actual emulator + */ + public async startEmulator() { + document.body.classList.remove("paused"); + + const imageSize = await getDiskImageSize(); + const options = { + memory_size: 128 * 1024 * 1024, + video_memory_size: 32 * 1024 * 1024, + screen_container: document.getElementById("emulator"), + bios: { + url: "../../bios/seabios.bin" + }, + vga_bios: { + url: "../../bios/vgabios.bin" + }, + hda: { + url: "../../images/windows95.img", + async: true, + size: imageSize + }, + fda: { + buffer: this.state.floppyFile + }, + boot_order: 0x132 + }; + + console.log(`Starting emulator with options`, options); + + // New v86 instance + this.setState({ + emulator: new V86Starter(options), + isRunning: true + }); + + // Restore state. We can't do this right away + // and randomly chose 500ms as the appropriate + // wait time (lol) + setTimeout(async () => { + if (!this.state.isBootingFresh) { + this.restoreState(); + } + + this.state.emulator.lock_mouse(); + this.state.emulator.run(); + }, 500); + } + + /** + * Reset the emulator by reloading the whole page (lol) + */ + public async resetEmulator() { + this.isResetting = true; + document.location.hash = `#AUTO_START`; + document.location.reload(); + } + + /** + * Take the emulators state and write it to disk. This is possibly + * a fairly big file. + */ + public async saveState(): Promise { + const { emulator } = this.state; + + if (!emulator || !emulator.save_state) { + console.log(`restoreState: No emulator present`); + return; + } + + return new Promise(resolve => { + emulator.save_state(async (error: Error, newState: ArrayBuffer) => { + if (error) { + console.warn(`saveState: Could not save state`, error); + return; + } + + await fs.outputFile(CONSTANTS.STATE_PATH, Buffer.from(newState)); + + console.log(`saveState: Saved state to ${CONSTANTS.STATE_PATH}`); + + resolve(); + }); + }); + } + + /** + * Restores state to the emulator. + */ + public restoreState() { + const { emulator } = this.state; + const state = this.getState(); + + // Nothing to do with if we don't have a state + if (!state) { + console.log(`restoreState: No state present, not restoring.`); + } + + if (!emulator) { + console.log(`restoreState: No emulator present`); + } + + try { + this.state.emulator.restore_state(state); + } catch (error) { + console.log( + `State: Could not read state file. Maybe none exists?`, + error + ); + } + } + + /** + * Returns the current machine's state - either what + * we have saved or alternatively the default state. + * + * @returns {ArrayBuffer} + */ + public getState(): ArrayBuffer | null { + const statePath = fs.existsSync(CONSTANTS.STATE_PATH) + ? CONSTANTS.STATE_PATH + : CONSTANTS.DEFAULT_STATE_PATH; + + if (fs.existsSync(statePath)) { + return fs.readFileSync(statePath).buffer; + } + + return null; + } +} diff --git a/src/renderer/global.d.ts b/src/renderer/global.d.ts new file mode 100644 index 0000000..8c4a2d0 --- /dev/null +++ b/src/renderer/global.d.ts @@ -0,0 +1,2 @@ +declare const V86Starter: any; +declare const win95: any; diff --git a/src/renderer/index.html b/src/renderer/index.html deleted file mode 100644 index 348bbf8..0000000 --- a/src/renderer/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - Windows - - - - - - -
- Disk: Idle - | CPU Speed: 0 - | Hide -
-
-
-
- Start Windows 95 -
- - Hit ESC to lock or unlock your mouse -
-
-
-
-
-

Floppy Drive

-
-
- -

windows95 comes with a virtual floppy drive. If you have floppy disk images in the "img" format, you can - mount them here.

-

Back in the 90s and before CD-ROM became a popular format, software was typically distributed on floppy - disks. Some developers have since released their apps or games for free, usually on virtual floppy disks - using the "img" format.

-

Once you've mounted a disk image, you might have to reboot your virtual windows95 machine from scratch.

-

No floppy mounted

- - -
-
-
-
- -
-
- -
- - -
-
-
- -
- - - - \ No newline at end of file diff --git a/src/renderer/info.js b/src/renderer/info.js deleted file mode 100644 index a37ad5e..0000000 --- a/src/renderer/info.js +++ /dev/null @@ -1,94 +0,0 @@ -const $ = document.querySelector.bind(document) -const status = $('#status') -const diskStatus = $('#disk-status') -const cpuStatus = $('#cpu-status') -const toggleStatus = $('#toggle-status') - -let lastCounter = 0 -let lastTick = 0 -let infoInterval = null - -const onIDEReadStart = () => { - diskStatus.innerHTML = 'Read' -} - -const onIDEReadWriteEnd = () => { - diskStatus.innerHTML = 'Idle' -} - -toggleStatus.onclick = toggleInfo - -/** - * Toggle the information display - */ -export function toggleInfo () { - if (status.style.display !== 'none') { - disableInfo() - } else { - enableInfo() - } -} - -/** - * Start information gathering, but only if the panel is visible - */ -export function startInfoMaybe () { - if (status.style.display !== 'none') { - enableInfo() - } -} - -/** - * Enable the gathering of information (and hide the little information tab) - */ -export function enableInfo () { - // Show the info thingy - status.style.display = 'block' - - // We can only do the rest with an emulator - if (!window.emulator.add_listener) { - return - } - - // Set listeners - window.emulator.add_listener('ide-read-start', onIDEReadStart) - window.emulator.add_listener('ide-read-end', onIDEReadWriteEnd) - window.emulator.add_listener('ide-write-end', onIDEReadWriteEnd) - window.emulator.add_listener('screen-set-size-graphical', console.log) - - // Set an interval - infoInterval = setInterval(() => { - const now = Date.now() - const instructionCounter = window.emulator.get_instruction_counter() - const ips = instructionCounter - lastCounter - const deltaTime = now - lastTick - - lastTick = now - lastCounter = instructionCounter - - cpuStatus.innerHTML = Math.round(ips / deltaTime) - }, 500) -} - -/** - * Disable the gathering of information (and hide the little information tab) - */ -export function disableInfo () { - // Hide the info thingy - status.style.display = 'none' - - // Clear the interval - clearInterval(infoInterval) - infoInterval = null - - // We can only do the rest with an emulator - if (!window.emulator.remove_listener) { - return - } - - // Unset the listeners - window.emulator.remove_listener('ide-read-start', onIDEReadStart) - window.emulator.remove_listener('ide-read-end', onIDEReadWriteEnd) - window.emulator.remove_listener('ide-write-end', onIDEReadWriteEnd) - window.emulator.remove_listener('screen-set-size-graphical', console.log) -} diff --git a/src/renderer/ipc.js b/src/renderer/ipc.js deleted file mode 100644 index 0befbc7..0000000 --- a/src/renderer/ipc.js +++ /dev/null @@ -1,44 +0,0 @@ -import { toggleInfo } from 'es6://info.js' - -export function setupIpcListeners (start) { - const { windows95 } = window - - windows95.addListener(windows95.IPC_COMMANDS.TOGGLE_INFO, () => { - toggleInfo() - }) - - windows95.addListener(windows95.IPC_COMMANDS.MACHINE_RESTART, () => { - console.log(`Restarting machine`) - - if (!window.emulator || !window.emulator.is_running) return - - window.emulator.restart() - }) - - windows95.addListener(windows95.IPC_COMMANDS.MACHINE_RESET, () => { - console.log(`Resetting machine`) - - window.appState.isResetting = true - document.location.hash = `#AUTO_START` - document.location.reload() - }) - - windows95.addListener(windows95.IPC_COMMANDS.MACHINE_CTRL_ALT_DEL, () => { - if (!window.emulator || !window.emulator.is_running) return - - window.emulator.keyboard_send_scancodes([ - 0x1D, // ctrl - 0x38, // alt - 0x53, // delete - - // break codes - 0x1D | 0x80, - 0x38 | 0x80, - 0x53 | 0x80 - ]) - }) - - windows95.addListener(windows95.IPC_COMMANDS.SHOW_DISK_IMAGE, () => { - windows95.showDiskImage() - }) -} diff --git a/src/renderer/listeners.js b/src/renderer/listeners.js deleted file mode 100644 index 4f46041..0000000 --- a/src/renderer/listeners.js +++ /dev/null @@ -1,47 +0,0 @@ -export function setupCloseListener () { - window.appState.isQuitting = false - - const handleClose = async () => { - await windows95.saveState() - window.appState.isQuitting = true - windows95.quit() - } - - window.onbeforeunload = (event) => { - if (window.appState.isQuitting) return - if (window.appState.isResetting) return - - handleClose() - event.preventDefault() - event.returnValue = false - } -} - -export function setupEscListener () { - document.onkeydown = function (evt) { - evt = evt || window.event - if (evt.keyCode === 27) { - if (window.appState.cursorCaptured) { - window.appState.cursorCaptured = false - window.emulator.mouse_set_status(false) - document.exitPointerLock() - } else { - window.appState.cursorCaptured = true - window.emulator.lock_mouse() - } - } - } -} - -function onDocumentClick () { - if (!window.appState.cursorCaptured) { - window.appState.cursorCaptured = true - window.emulator.mouse_set_status(true) - window.emulator.lock_mouse() - } -} - -export function setupClickListener () { - document.removeEventListener('click', onDocumentClick) - document.addEventListener('click', onDocumentClick) -} diff --git a/src/renderer/renderer.js b/src/renderer/renderer.js deleted file mode 100644 index 3a6396f..0000000 --- a/src/renderer/renderer.js +++ /dev/null @@ -1,72 +0,0 @@ -/* We're using modern esm imports here */ -import { setupState } from 'es6://app-state.js' -import { setupClickListener, setupEscListener, setupCloseListener } from 'es6://listeners.js' -import { toggleSetup, setupButtons } from 'es6://buttons.js' -import { startInfoMaybe } from 'es6://info.js' -import { setupIpcListeners } from 'es6://ipc.js' - -setupState() - -/** - * The main method executing the VM. - */ -async function main () { - const imageSize = await window.windows95.getDiskImageSize() - const options = { - memory_size: 128 * 1024 * 1024, - video_memory_size: 32 * 1024 * 1024, - screen_container: document.getElementById('emulator'), - bios: { - url: './bios/seabios.bin' - }, - vga_bios: { - url: './bios/vgabios.bin' - }, - hda: { - url: '../images/windows95.img', - async: true, - size: imageSize - }, - fda: { - buffer: window.appState.floppyFile || undefined - }, - boot_order: 0x132 - } - - console.log(`Starting emulator with options`, options) - - // New v86 instance - window.emulator = new V86Starter(options) - - // Restore state. We can't do this right away - // and randomly chose 500ms as the appropriate - // wait time (lol) - setTimeout(async () => { - if (!window.appState.bootFresh) { - windows95.restoreState() - } - - startInfoMaybe() - - window.appState.cursorCaptured = true - window.emulator.lock_mouse() - window.emulator.run() - }, 500) -} - -function start () { - document.body.className = '' - - toggleSetup(false) - setupClickListener() - main() -} - -setupIpcListeners(start) -setupEscListener() -setupCloseListener() -setupButtons(start) - -if (document.location.hash.includes('AUTO_START')) { - start() -} diff --git a/src/renderer/start-menu.tsx b/src/renderer/start-menu.tsx new file mode 100644 index 0000000..38c0f55 --- /dev/null +++ b/src/renderer/start-menu.tsx @@ -0,0 +1,39 @@ +import * as React from "react"; + +export interface StartMenuProps { + navigate: (to: string) => void; +} + +export class StartMenu extends React.Component { + constructor(props: StartMenuProps) { + super(props); + + this.navigate = this.navigate.bind(this); + } + + public render() { + return ( + + ); + } + + private navigate(event: React.SyntheticEvent) { + this.props.navigate(event.currentTarget.id); + } +} diff --git a/src/renderer/status.tsx b/src/renderer/status.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/state.js b/src/state.js deleted file mode 100644 index aa07f0a..0000000 --- a/src/state.js +++ /dev/null @@ -1,81 +0,0 @@ -const fs = require('fs-extra') - -const { CONSTANTS } = require('./constants') - -/** - * Returns the current machine's state - either what - * we have saved or alternatively the default state. - * - * @returns {ArrayBuffer} - */ -function getState () { - const statePath = fs.existsSync(CONSTANTS.STATE_PATH) - ? CONSTANTS.STATE_PATH - : CONSTANTS.DEFAULT_STATE_PATH - - if (fs.existsSync(statePath)) { - return fs.readFileSync(statePath).buffer - } -} - -/** - * Resets a saved state by simply deleting it. - * - * @returns {Promise} - */ -async function resetState () { - if (fs.existsSync(CONSTANTS.STATE_PATH)) { - return fs.remove(CONSTANTS.STATE_PATH) - } -} - -/** - * Saves the current VM's state. - * - * @returns {Promise} - */ -async function saveState () { - return new Promise((resolve) => { - if (!window.emulator || !window.emulator.save_state) { - return resolve() - } - - window.emulator.save_state(async (error, newState) => { - if (error) { - console.warn(`State: Could not save state`, error) - return - } - - await fs.outputFile(CONSTANTS.STATE_PATH, Buffer.from(newState)) - - console.log(`State: Saved state to ${CONSTANTS.STATE_PATH}`) - - resolve() - }) - }) -} - -/** - * Restores the VM's state. - */ -function restoreState () { - const state = getState() - - // Nothing to do with if we don't have a state - if (!state) { - console.log(`State: No state present, not restoring.`) - } - - try { - window.emulator.restore_state(state) - } catch (error) { - console.log(`State: Could not read state file. Maybe none exists?`, error) - } -} - -module.exports = { - saveState, - restoreState, - resetState, - getState -} diff --git a/src/utils/devmode.ts b/src/utils/devmode.ts new file mode 100644 index 0000000..d936a68 --- /dev/null +++ b/src/utils/devmode.ts @@ -0,0 +1,8 @@ +/** + * Are we currently running in development mode? + * + * @returns {boolean} + */ +export function isDevMode() { + return !!process.defaultApp; +} diff --git a/src/utils/disk-image-size.js b/src/utils/disk-image-size.js deleted file mode 100644 index fc6f7d1..0000000 --- a/src/utils/disk-image-size.js +++ /dev/null @@ -1,26 +0,0 @@ -const fs = require('fs-extra') - -const { CONSTANTS } = require('../constants') - -/** - * Get the size of the disk image - * - * @returns {number} - */ -async function getDiskImageSize () { - try { - const stats = await fs.stat(CONSTANTS.IMAGE_PATH) - - if (stats) { - return stats.size - } - } catch (error) { - console.warn(`Could not determine image size`, error) - } - - return CONSTANTS.IMAGE_DEFAULT_SIZE -} - -module.exports = { - getDiskImageSize -} diff --git a/src/utils/disk-image-size.ts b/src/utils/disk-image-size.ts new file mode 100644 index 0000000..fece5ff --- /dev/null +++ b/src/utils/disk-image-size.ts @@ -0,0 +1,22 @@ +import * as fs from "fs-extra"; + +import { CONSTANTS } from "../constants"; + +/** + * Get the size of the disk image + * + * @returns {number} + */ +export async function getDiskImageSize() { + try { + const stats = await fs.stat(CONSTANTS.IMAGE_PATH); + + if (stats) { + return stats.size; + } + } catch (error) { + console.warn(`Could not determine image size`, error); + } + + return CONSTANTS.IMAGE_DEFAULT_SIZE; +} diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..cb7b4a5 --- /dev/null +++ b/static/index.html @@ -0,0 +1,16 @@ + + + + + + windows95 + + + + + + +
+ + + \ No newline at end of file diff --git a/src/less/start.png b/static/start.png similarity index 100% rename from src/less/start.png rename to static/start.png diff --git a/tools/generateAssets.js b/tools/generateAssets.js new file mode 100644 index 0000000..241d2e0 --- /dev/null +++ b/tools/generateAssets.js @@ -0,0 +1,7 @@ +/* tslint:disable */ + +const { compileParcel } = require('./parcel-build') + +module.exports = async () => { + await Promise.all([compileParcel()]) +} diff --git a/tools/parcel-build.js b/tools/parcel-build.js new file mode 100644 index 0000000..b3bac78 --- /dev/null +++ b/tools/parcel-build.js @@ -0,0 +1,47 @@ +/* tslint:disable */ + +const Bundler = require('parcel-bundler') +const path = require('path') + +async function compileParcel (options = {}) { + const entryFiles = [ + path.join(__dirname, '../static/index.html'), + path.join(__dirname, '../src/main/main.ts') + ] + + const bundlerOptions = { + outDir: './dist', // The out directory to put the build files in, defaults to dist + outFile: undefined, // The name of the outputFile + publicUrl: '../', // The url to server on, defaults to dist + watch: false, // whether to watch the files and rebuild them on change, defaults to process.env.NODE_ENV !== 'production' + cache: false, // Enabled or disables caching, defaults to true + cacheDir: '.cache', // The directory cache gets put in, defaults to .cache + contentHash: false, // Disable content hash from being included on the filename + minify: false, // Minify files, enabled if process.env.NODE_ENV === 'production' + scopeHoist: false, // turn on experimental scope hoisting/tree shaking flag, for smaller production bundles + target: 'electron', // browser/node/electron, defaults to browser + // https: { // Define a custom {key, cert} pair, use true to generate one or false to use http + // cert: './ssl/c.crt', // path to custom certificate + // key: './ssl/k.key' // path to custom key + // }, + logLevel: 3, // 3 = log everything, 2 = log warnings & errors, 1 = log errors + hmr: true, // Enable or disable HMR while watching + hmrPort: 0, // The port the HMR socket runs on, defaults to a random free port (0 in node.js resolves to a random free port) + sourceMaps: true, // Enable or disable sourcemaps, defaults to enabled (minified builds currently always create sourcemaps) + hmrHostname: '', // A hostname for hot module reload, default to '' + detailedReport: false, // Prints a detailed report of the bundles, assets, filesizes and times, defaults to false, reports are only printed if watch is disabled, + ...options + } + + const bundler = new Bundler(entryFiles, bundlerOptions) + + // Run the bundler, this returns the main bundle + // Use the events if you're using watch mode as this promise will only trigger once and not for every rebuild + await bundler.bundle() +} + +module.exports = { + compileParcel +} + +if (require.main === module) compileParcel() diff --git a/tools/parcel-watch.js b/tools/parcel-watch.js new file mode 100644 index 0000000..1eda750 --- /dev/null +++ b/tools/parcel-watch.js @@ -0,0 +1,11 @@ +const { compileParcel } = require('./parcel-build') + +async function watchParcel () { + return compileParcel({ watch: true }) +} + +module.exports = { + watchParcel +} + +if (require.main === module) watchParcel() diff --git a/tools/run-bin.js b/tools/run-bin.js new file mode 100644 index 0000000..89a92e1 --- /dev/null +++ b/tools/run-bin.js @@ -0,0 +1,30 @@ +/* tslint:disable */ + +const childProcess = require('child_process') +const path = require('path') + +async function run (name, bin, args = []) { + await new Promise((resolve, reject) => { + console.info(`Running ${name}`) + + const cmd = process.platform === 'win32' ? `${bin}.cmd` : bin + const child = childProcess.spawn( + path.resolve(__dirname, '..', 'node_modules', '.bin', cmd), + args, + { + cwd: path.resolve(__dirname, '..'), + stdio: 'inherit' + } + ) + + child.on('exit', (code) => { + console.log('') + if (code === 0) return resolve() + reject(new Error(`${name} failed`)) + }) + }) +}; + +module.exports = { + run +} diff --git a/tools/tsc.js b/tools/tsc.js new file mode 100644 index 0000000..ffa0894 --- /dev/null +++ b/tools/tsc.js @@ -0,0 +1,13 @@ +/* tslint:disable */ + +const { run } = require('./run-bin') + +async function compileTypeScript () { + await run('TypeScript', 'tsc', ['-p', 'tsconfig.json']) +}; + +module.exports = { + compileTypeScript +} + +if (require.main === module) compileTypeScript() diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2fc3ca1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,43 @@ +{ + "compilerOptions": { + "outDir": "./dist", + "allowJs": true, + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "removeComments": false, + "preserveConstEnums": true, + "sourceMap": true, + "lib": [ + "es2017", + "dom" + ], + "noImplicitAny": true, + "noImplicitReturns": true, + "suppressImplicitAnyIndexErrors": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "importHelpers": true, + "noEmitHelpers": false, + "module": "commonjs", + "moduleResolution": "node", + "pretty": true, + "target": "es2017", + "jsx": "react", + "typeRoots": [ + "./node_modules/@types" + ], + "baseUrl": "." + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules" + ], + "formatCodeOptions": { + "indentSize": 2, + "tabSize": 2 + } +} From dcc3e72bcf48ca663b6a5e3358b8e00089ca8c60 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 21 Aug 2019 10:37:04 +0200 Subject: [PATCH 10/19] feat: Allow stopping the emulator --- src/constants.ts | 2 + src/less/emulator.less | 8 ++++ src/main/menu.ts | 7 ++++ src/renderer/emulator.tsx | 88 ++++++++++++++++++++++++++++----------- 4 files changed, 81 insertions(+), 24 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index 998b586..4bd303e 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -13,7 +13,9 @@ export const CONSTANTS = { export const IPC_COMMANDS = { TOGGLE_INFO: 'TOGGLE_INFO', MACHINE_RESTART: 'MACHINE_RESTART', + MACHINE_STOP: 'MACHINE_STOP', MACHINE_RESET: 'MACHINE_RESET', + MACHINE_ALTF4: 'MACHINE_ALTF4', MACHINE_CTRL_ALT_DEL: 'MACHINE_CTRL_ALT_DEL', SHOW_DISK_IMAGE: 'SHOW_DISK_IMAGE' } diff --git a/src/less/emulator.less b/src/less/emulator.less index c457743..5d3d631 100644 --- a/src/less/emulator.less +++ b/src/less/emulator.less @@ -14,3 +14,11 @@ margin: auto; } } + +.paused { + canvas { + opacity: 0.2; + filter: blur(2px); + z-index: -100; + } +} diff --git a/src/main/menu.ts b/src/main/menu.ts index f4216f1..72b0f87 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -96,6 +96,13 @@ export async function setupMenu() { label: "Send Ctrl+Alt+Del", click: () => send(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL) }, + { + type: "separator" + }, + { + label: "Stop", + click: () => send(IPC_COMMANDS.MACHINE_STOP) + }, { label: "Restart", click: () => send(IPC_COMMANDS.MACHINE_RESTART) diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index ad0f8bc..2f03b0a 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -53,35 +53,25 @@ export class Emulator extends React.Component<{}, EmulatorState> { public setupInputListeners() { // ESC document.onkeydown = evt => { - const { emulator, isCursorCaptured } = this.state; + const { isCursorCaptured } = this.state; evt = evt || window.event; if (evt.keyCode === 27) { if (isCursorCaptured) { - this.setState({ isCursorCaptured: false }); - - if (emulator) { - emulator.mouse_set_status(false); - } - - document.exitPointerLock(); + this.unlockMouse(); } else { - this.setState({ isCursorCaptured: true }); - - if (emulator) { - emulator.lock_mouse(); - } + this.lockMouse(); } } }; // Click document.addEventListener("click", () => { - if (!this.state.isCursorCaptured) { - this.setState({ isCursorCaptured: true }); - this.state.emulator.mouse_set_status(true); - this.state.emulator.lock_mouse(); + const { isRunning } = this.state; + + if (isRunning) { + this.lockMouse(); } }); } @@ -126,6 +116,10 @@ export class Emulator extends React.Component<{}, EmulatorState> { } }); + ipcRenderer.on(IPC_COMMANDS.MACHINE_STOP, () => { + this.stopEmulator(); + }); + ipcRenderer.on(IPC_COMMANDS.MACHINE_RESTART, () => { if (this.state.emulator && this.state.isRunning) { this.state.emulator.restart(); @@ -221,7 +215,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { /** * Start the actual emulator */ - public async startEmulator() { + private async startEmulator() { document.body.classList.remove("paused"); const imageSize = await getDiskImageSize(); @@ -248,9 +242,11 @@ export class Emulator extends React.Component<{}, EmulatorState> { console.log(`Starting emulator with options`, options); + window["emulator"] = new V86Starter(options); + // New v86 instance this.setState({ - emulator: new V86Starter(options), + emulator: window["emulator"], isRunning: true }); @@ -262,15 +258,33 @@ export class Emulator extends React.Component<{}, EmulatorState> { this.restoreState(); } - this.state.emulator.lock_mouse(); + this.lockMouse(); this.state.emulator.run(); }, 500); } + /** + * Stop the emulator + */ + private async stopEmulator() { + const { emulator } = this.state; + + if (!emulator) { + return; + } + + await this.saveState(); + this.unlockMouse(); + emulator.stop(); + this.setState({ isRunning: false }); + + document.body.classList.add("paused"); + } + /** * Reset the emulator by reloading the whole page (lol) */ - public async resetEmulator() { + private async resetEmulator() { this.isResetting = true; document.location.hash = `#AUTO_START`; document.location.reload(); @@ -280,7 +294,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { * Take the emulators state and write it to disk. This is possibly * a fairly big file. */ - public async saveState(): Promise { + private async saveState(): Promise { const { emulator } = this.state; if (!emulator || !emulator.save_state) { @@ -307,7 +321,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { /** * Restores state to the emulator. */ - public restoreState() { + private restoreState() { const { emulator } = this.state; const state = this.getState(); @@ -336,7 +350,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { * * @returns {ArrayBuffer} */ - public getState(): ArrayBuffer | null { + private getState(): ArrayBuffer | null { const statePath = fs.existsSync(CONSTANTS.STATE_PATH) ? CONSTANTS.STATE_PATH : CONSTANTS.DEFAULT_STATE_PATH; @@ -347,4 +361,30 @@ export class Emulator extends React.Component<{}, EmulatorState> { return null; } + + private unlockMouse() { + const { emulator } = this.state; + + this.setState({ isCursorCaptured: false }); + + if (emulator) { + emulator.mouse_set_status(false); + } + + document.exitPointerLock(); + } + + private lockMouse() { + const { emulator } = this.state; + + if (emulator) { + this.setState({ isCursorCaptured: true }); + emulator.mouse_set_status(true); + emulator.lock_mouse(); + } else { + console.warn( + `Emulator: Tried to lock mouse, but no emulator or not running` + ); + } + } } From c7f765df03c531d869d20d3c3b31e9e079632a89 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 21 Aug 2019 11:26:56 +0200 Subject: [PATCH 11/19] feat: More menu options --- src/constants.ts | 7 ++++++- src/main/menu.ts | 40 ++++++++++++++++++++++++++++++--------- src/renderer/emulator.tsx | 39 ++++++++++++++++++++++++++------------ 3 files changed, 64 insertions(+), 22 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index 4bd303e..d1b89ea 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -12,10 +12,15 @@ export const CONSTANTS = { export const IPC_COMMANDS = { TOGGLE_INFO: 'TOGGLE_INFO', + SHOW_DISK_IMAGE: 'SHOW_DISK_IMAGE', + // Machine instructions + MACHINE_START: 'MACHINE_START', MACHINE_RESTART: 'MACHINE_RESTART', MACHINE_STOP: 'MACHINE_STOP', MACHINE_RESET: 'MACHINE_RESET', MACHINE_ALTF4: 'MACHINE_ALTF4', MACHINE_CTRL_ALT_DEL: 'MACHINE_CTRL_ALT_DEL', - SHOW_DISK_IMAGE: 'SHOW_DISK_IMAGE' + // Machine events + MACHINE_STARTED: 'MACHINE_STARTED', + MACHINE_STOPPED: 'MACHINE_STOPPED' } diff --git a/src/main/menu.ts b/src/main/menu.ts index 72b0f87..8dbaeff 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -1,4 +1,4 @@ -import { app, shell, Menu, BrowserWindow } from "electron"; +import { app, shell, Menu, BrowserWindow, ipcMain } from "electron"; import { clearCaches } from "../cache"; import { IPC_COMMANDS } from "../constants"; @@ -11,15 +11,29 @@ const LINKS = { help: "https://github.com/felixrieseberg/windows95/blob/master/HELP.md" }; +export async function setupMenu() { + await createMenu(); + + ipcMain.on(IPC_COMMANDS.MACHINE_STARTED, () => + createMenu({ isRunning: true }) + ); + ipcMain.on(IPC_COMMANDS.MACHINE_STOPPED, () => + createMenu({ isRunning: false }) + ); +} + function send(cmd: string) { const windows = BrowserWindow.getAllWindows(); if (windows[0]) { + console.log(`Sending "${cmd}"`); windows[0].webContents.send(cmd); + } else { + console.log(`Tried to send "${cmd}", but could not find window`); } } -export async function setupMenu() { +async function createMenu({ isRunning } = { isRunning: false }) { const template: Array = [ { label: "View", @@ -94,22 +108,30 @@ export async function setupMenu() { submenu: [ { label: "Send Ctrl+Alt+Del", - click: () => send(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL) + click: () => send(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL), + enabled: isRunning }, { type: "separator" }, - { - label: "Stop", - click: () => send(IPC_COMMANDS.MACHINE_STOP) - }, + isRunning + ? { + label: "Stop", + click: () => send(IPC_COMMANDS.MACHINE_STOP) + } + : { + label: "Start", + click: () => send(IPC_COMMANDS.MACHINE_START) + }, { label: "Restart", - click: () => send(IPC_COMMANDS.MACHINE_RESTART) + click: () => send(IPC_COMMANDS.MACHINE_RESTART), + enabled: isRunning }, { label: "Reset", - click: () => send(IPC_COMMANDS.MACHINE_RESET) + click: () => send(IPC_COMMANDS.MACHINE_RESET), + enabled: isRunning }, { type: "separator" diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index 2f03b0a..3dc18e9 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -29,6 +29,9 @@ export class Emulator extends React.Component<{}, EmulatorState> { super(props); this.startEmulator = this.startEmulator.bind(this); + this.stopEmulator = this.stopEmulator.bind(this); + this.restartEmulator = this.restartEmulator.bind(this); + this.resetEmulator = this.resetEmulator.bind(this); this.state = { isBootingFresh: false, @@ -116,15 +119,10 @@ export class Emulator extends React.Component<{}, EmulatorState> { } }); - ipcRenderer.on(IPC_COMMANDS.MACHINE_STOP, () => { - this.stopEmulator(); - }); - - ipcRenderer.on(IPC_COMMANDS.MACHINE_RESTART, () => { - if (this.state.emulator && this.state.isRunning) { - this.state.emulator.restart(); - } - }); + ipcRenderer.on(IPC_COMMANDS.MACHINE_STOP, this.stopEmulator); + ipcRenderer.on(IPC_COMMANDS.MACHINE_RESET, this.resetEmulator); + ipcRenderer.on(IPC_COMMANDS.MACHINE_START, this.startEmulator); + ipcRenderer.on(IPC_COMMANDS.MACHINE_RESTART, this.restartEmulator); ipcRenderer.on(IPC_COMMANDS.TOGGLE_INFO, () => { this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); @@ -240,7 +238,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { boot_order: 0x132 }; - console.log(`Starting emulator with options`, options); + console.log(`🚜 Starting emulator with options`, options); window["emulator"] = new V86Starter(options); @@ -250,6 +248,8 @@ export class Emulator extends React.Component<{}, EmulatorState> { isRunning: true }); + ipcRenderer.send(IPC_COMMANDS.MACHINE_STARTED); + // Restore state. We can't do this right away // and randomly chose 500ms as the appropriate // wait time (lol) @@ -263,22 +263,37 @@ export class Emulator extends React.Component<{}, EmulatorState> { }, 500); } + /** + * Restart emulator + */ + private restartEmulator() { + if (this.state.emulator && this.state.isRunning) { + console.log(`🚜 Restarting emulator`); + this.state.emulator.restart(); + } else { + console.log(`🚜 Restarting emulator failed: Emulator not running`); + } + } + /** * Stop the emulator */ private async stopEmulator() { - const { emulator } = this.state; + const { emulator, isRunning } = this.state; - if (!emulator) { + if (!emulator || !isRunning) { return; } + console.log(`🚜 Stopping emulator`); + await this.saveState(); this.unlockMouse(); emulator.stop(); this.setState({ isRunning: false }); document.body.classList.add("paused"); + ipcRenderer.send(IPC_COMMANDS.MACHINE_STOPPED); } /** From ea134d046e4fd7025f7e4ebafd989bdc56913737 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 21 Aug 2019 11:34:55 +0200 Subject: [PATCH 12/19] feat: More keyboard shortcuts --- src/constants.ts | 3 ++- src/main/menu.ts | 10 ++++++++++ src/renderer/emulator.tsx | 26 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/constants.ts b/src/constants.ts index d1b89ea..1aac189 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -18,7 +18,8 @@ export const IPC_COMMANDS = { MACHINE_RESTART: 'MACHINE_RESTART', MACHINE_STOP: 'MACHINE_STOP', MACHINE_RESET: 'MACHINE_RESET', - MACHINE_ALTF4: 'MACHINE_ALTF4', + MACHINE_ALT_F4: 'MACHINE_ALT_F4', + MACHINE_ALT_ENTER: 'MACHINE_ALT_ENTER', MACHINE_CTRL_ALT_DEL: 'MACHINE_CTRL_ALT_DEL', // Machine events MACHINE_STARTED: 'MACHINE_STARTED', diff --git a/src/main/menu.ts b/src/main/menu.ts index 8dbaeff..be7a1f4 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -111,6 +111,16 @@ async function createMenu({ isRunning } = { isRunning: false }) { click: () => send(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL), enabled: isRunning }, + { + label: "Send Alt+F4", + click: () => send(IPC_COMMANDS.MACHINE_ALT_F4), + enabled: isRunning + }, + { + label: "Send Alt+Enter", + click: () => send(IPC_COMMANDS.MACHINE_ALT_ENTER), + enabled: isRunning + }, { type: "separator" }, diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index 3dc18e9..779a250 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -119,6 +119,32 @@ export class Emulator extends React.Component<{}, EmulatorState> { } }); + ipcRenderer.on(IPC_COMMANDS.MACHINE_ALT_F4, () => { + if (this.state.emulator && this.state.isRunning) { + this.state.emulator.keyboard_send_scancodes([ + 0x38, // alt + 0x3E, // f4 + + // break codes + 0x38 | 0x80, + 0x3E | 0x80 + ]); + } + }); + + ipcRenderer.on(IPC_COMMANDS.MACHINE_ALT_ENTER, () => { + if (this.state.emulator && this.state.isRunning) { + this.state.emulator.keyboard_send_scancodes([ + 0x38, // alt + 0, // enter + + // break codes + 0x38 | 0x80, + 0 | 0x80 + ]); + } + }); + ipcRenderer.on(IPC_COMMANDS.MACHINE_STOP, this.stopEmulator); ipcRenderer.on(IPC_COMMANDS.MACHINE_RESET, this.resetEmulator); ipcRenderer.on(IPC_COMMANDS.MACHINE_START, this.startEmulator); From 33ef8abcc8d247d543652073bde5635798a528e7 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Wed, 21 Aug 2019 19:43:21 +0200 Subject: [PATCH 13/19] feat: Zoom in/out/reset --- src/constants.ts | 3 +++ src/main/main.ts | 4 ++-- src/main/menu.ts | 21 ++++++++++++++++++++- src/main/windows.ts | 8 ++++++-- src/renderer/emulator.tsx | 32 ++++++++++++++++++++++++++++---- 5 files changed, 59 insertions(+), 9 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index 1aac189..75e63ea 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -13,6 +13,9 @@ export const CONSTANTS = { export const IPC_COMMANDS = { TOGGLE_INFO: 'TOGGLE_INFO', SHOW_DISK_IMAGE: 'SHOW_DISK_IMAGE', + ZOOM_IN: 'ZOOM_IN', + ZOOM_OUT: 'ZOOM_OUT', + ZOOM_RESET: 'ZOOM_RESET', // Machine instructions MACHINE_START: 'MACHINE_START', MACHINE_RESTART: 'MACHINE_RESTART', diff --git a/src/main/main.ts b/src/main/main.ts index 409de82..da79325 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -4,7 +4,7 @@ import { isDevMode } from "../utils/devmode"; import { setupAboutPanel } from "./about-panel"; import { shouldQuit } from "./squirrel"; import { setupUpdates } from "./update"; -import { createWindow } from "./windows"; +import { getOrCreateWindow } from "./windows"; import { setupMenu } from "./menu"; /** @@ -14,7 +14,7 @@ import { setupMenu } from "./menu"; export async function onReady() { if (!isDevMode()) process.env.NODE_ENV = "production"; - createWindow(); + getOrCreateWindow(); setupAboutPanel(); setupMenu(); setupUpdates(); diff --git a/src/main/menu.ts b/src/main/menu.ts index be7a1f4..ca86c62 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -1,8 +1,9 @@ -import { app, shell, Menu, BrowserWindow, ipcMain } from "electron"; +import { app, shell, Menu, BrowserWindow, ipcMain, webFrame } from "electron"; import { clearCaches } from "../cache"; import { IPC_COMMANDS } from "../constants"; import { isDevMode } from "../utils/devmode"; +import { getOrCreateWindow } from "./windows"; const LINKS = { homepage: "https://www.twitter.com/felixrieseberg", @@ -100,6 +101,24 @@ async function createMenu({ isRunning } = { isRunning: false }) { label: "Close", accelerator: "CmdOrCtrl+W", role: "close" + }, + { + type: "separator" + }, + { + label: "Zoom in", + click: () => send(IPC_COMMANDS.ZOOM_IN), + enabled: isRunning + }, + { + label: "Zoom out", + click: () => send(IPC_COMMANDS.ZOOM_OUT), + enabled: isRunning + }, + { + label: "Reset zoom", + click: () => send(IPC_COMMANDS.ZOOM_RESET), + enabled: isRunning } ] }, diff --git a/src/main/windows.ts b/src/main/windows.ts index 81f7ea5..641a5e7 100644 --- a/src/main/windows.ts +++ b/src/main/windows.ts @@ -1,8 +1,10 @@ import { BrowserWindow } from "electron"; -let mainWindow; +let mainWindow: BrowserWindow | null = null; + +export function getOrCreateWindow(): BrowserWindow { + if (mainWindow) return mainWindow; -export function createWindow() { // Create the browser window. mainWindow = new BrowserWindow({ width: 1024, @@ -18,4 +20,6 @@ export function createWindow() { mainWindow.on("closed", () => { mainWindow = null; }); + + return mainWindow; } diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index 779a250..d33c6b6 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -1,7 +1,7 @@ import * as React from "react"; import * as fs from "fs-extra"; import * as path from "path"; -import { ipcRenderer, remote, shell } from "electron"; +import { ipcRenderer, remote, shell, webFrame } from "electron"; import { CONSTANTS, IPC_COMMANDS } from "../constants"; import { getDiskImageSize } from "../utils/disk-image-size"; @@ -14,6 +14,7 @@ import { EmulatorInfo } from "./emulator-info"; export interface EmulatorState { currentUiCard: string; emulator?: any; + scale: number; floppyFile?: string; isBootingFresh: boolean; isCursorCaptured: boolean; @@ -38,7 +39,8 @@ export class Emulator extends React.Component<{}, EmulatorState> { isCursorCaptured: false, isRunning: false, currentUiCard: "start", - isInfoDisplayed: true + isInfoDisplayed: true, + scale: 1 }; this.setupInputListeners(); @@ -123,11 +125,11 @@ export class Emulator extends React.Component<{}, EmulatorState> { if (this.state.emulator && this.state.isRunning) { this.state.emulator.keyboard_send_scancodes([ 0x38, // alt - 0x3E, // f4 + 0x3e, // f4 // break codes 0x38 | 0x80, - 0x3E | 0x80 + 0x3e | 0x80 ]); } }); @@ -157,6 +159,14 @@ export class Emulator extends React.Component<{}, EmulatorState> { ipcRenderer.on(IPC_COMMANDS.SHOW_DISK_IMAGE, () => { this.showDiskImage(); }); + + ipcRenderer.on(IPC_COMMANDS.ZOOM_IN, () => { + this.setScale(this.state.scale * 1.2); + }); + + ipcRenderer.on(IPC_COMMANDS.ZOOM_OUT, () => { + this.setScale(this.state.scale * 0.8); + }); } /** @@ -428,4 +438,18 @@ export class Emulator extends React.Component<{}, EmulatorState> { ); } } + + /** + * Set the emulator's scale + * + * @param target + */ + private setScale(target: number) { + const { emulator, isRunning } = this.state; + + if (emulator && isRunning) { + emulator.screen_set_scale(target); + this.setState({ scale: target }); + } + } } From 7653d7294c165bbfb67cfeaa673e39bd388e6d26 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Fri, 23 Aug 2019 22:58:56 +0200 Subject: [PATCH 14/19] feat: Icons, better UI --- src/less/root.less | 31 ++++- src/less/{floppy.less => settings.less} | 6 + src/renderer/card-drive.tsx | 111 ++++++++++++++++ src/renderer/card-floppy.tsx | 78 ------------ src/renderer/card-settings.tsx | 161 ++++++++++++++++++++++++ src/renderer/card-start.tsx | 4 +- src/renderer/card-state.tsx | 47 ------- src/renderer/emulator.tsx | 55 +++++--- src/renderer/start-menu.tsx | 22 ++-- static/boot-fresh.png | Bin 0 -> 2038 bytes static/drive.png | Bin 0 -> 1899 bytes static/floppy.png | Bin 0 -> 1810 bytes static/index.html | 10 ++ static/reset-state.png | Bin 0 -> 2118 bytes static/reset.png | Bin 0 -> 2052 bytes static/run.png | Bin 0 -> 1923 bytes static/select-floppy.png | Bin 0 -> 2037 bytes static/settings.png | Bin 0 -> 2025 bytes static/show-disk-image.png | Bin 0 -> 1983 bytes 19 files changed, 368 insertions(+), 157 deletions(-) rename src/less/{floppy.less => settings.less} (81%) create mode 100644 src/renderer/card-drive.tsx delete mode 100644 src/renderer/card-floppy.tsx create mode 100644 src/renderer/card-settings.tsx delete mode 100644 src/renderer/card-state.tsx create mode 100644 static/boot-fresh.png create mode 100644 static/drive.png create mode 100644 static/floppy.png create mode 100644 static/reset-state.png create mode 100644 static/reset.png create mode 100644 static/run.png create mode 100644 static/select-floppy.png create mode 100644 static/settings.png create mode 100644 static/show-disk-image.png diff --git a/src/less/root.less b/src/less/root.less index 9061eb0..1fc57fb 100644 --- a/src/less/root.less +++ b/src/less/root.less @@ -1,7 +1,7 @@ @import "./status.less"; @import "./emulator.less"; @import "./info.less"; -@import "./floppy.less"; +@import "./settings.less"; /* GENERAL RESETS */ @@ -40,13 +40,35 @@ section { width: 75%; max-width: 700px; min-width: 400px; + + .card-title { + img { + margin-right: 5px; + } + } +} + +.nav-link > img, +.btn > img { + height: 24px; + margin-top: -3px; + margin-right: 4px; } .windows95 { + * { + user-select: none; + } + + *:focus { + outline: none; + } + nav .nav-link, nav .nav-logo { - height: 30px; + height: 33px; line-height: 1.5; + display: flex; } nav .nav-logo img { @@ -61,6 +83,11 @@ section { font-weight: bold; } + .btn { + height: 40px; + padding-top: 6px; + } + .btn:focus { border-color: #fff #000 #000 #fff; outline: 5px auto -webkit-focus-ring-color; diff --git a/src/less/floppy.less b/src/less/settings.less similarity index 81% rename from src/less/floppy.less rename to src/less/settings.less index 1318db4..c04a124 100644 --- a/src/less/floppy.less +++ b/src/less/settings.less @@ -13,3 +13,9 @@ #file-input { display: none; } + +.settings { + legend > img { + margin-right: 5px; + } +} diff --git a/src/renderer/card-drive.tsx b/src/renderer/card-drive.tsx new file mode 100644 index 0000000..0277a92 --- /dev/null +++ b/src/renderer/card-drive.tsx @@ -0,0 +1,111 @@ +import * as React from "react"; +import { shell } from "electron"; + +interface CardDriveProps { + showDiskImage: () => void; +} + +interface CardDriveState {} + +export class CardDrive extends React.Component { + constructor(props: CardDriveProps) { + super(props); + + this.state = {}; + } + + public render() { + let advice: JSX.Element | null = null; + + if (process.platform === "win32") { + advice = this.renderAdviceWindows(); + } else if (process.platform === "darwin") { + advice = this.renderAdviceMac(); + } else { + advice = this.renderAdviceLinux(); + } + + return ( +
+
+
+

+ + Modify C: Drive +

+
+
+

+ windows95 (this app) uses a raw disk image. Windows 95 (the + operating system) is fragile, so adding or removing files is + risky. +

+ {advice} +
+
+
+ ); + } + + public renderAdviceWindows(): JSX.Element { + return ( +
+ Changing the disk on Windows +

+ Windows 10 cannot mount raw disk images (ironically, macOS and Linux + can). However, tools exist that let you mount this drive, like the + freeware tool{" "} + + shell.openExternal( + "https://www.osforensics.com/tools/mount-disk-images.html" + ) + } + > + OSFMount + + . I am not affiliated with it, so please use it at your own risk. +

+ {this.renderMountButton("Windows Explorer")} +
+ ); + } + + public renderAdviceMac(): JSX.Element { + return ( +
+ Changing the disk on macOS +

+ macOS can mount the disk image directly. Click the button below to see + the disk image in Finder. Then, double-click the image to mount it. +

+ {this.renderMountButton("Finder")} +
+ ); + } + + public renderAdviceLinux(): JSX.Element { + return ( +
+ Changing the disk on Linux +

+ There are plenty of tools that enable Linux users to mount and modify + disk images. The disk image used by windows95 is a raw "img" disk + image and can probably be mounted using the mount tool, + which is likely installed on your machine. +

+ {this.renderMountButton("file viewer")} +
+ ); + } + + public renderMountButton(explorer: string) { + return ( + + ); + } +} diff --git a/src/renderer/card-floppy.tsx b/src/renderer/card-floppy.tsx deleted file mode 100644 index 9b316ec..0000000 --- a/src/renderer/card-floppy.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import * as React from "react"; - -export interface CardFloppyProps { - setFloppyPath: (path: string) => void; - floppyPath?: string; -} - -export class CardFloppy extends React.Component { - constructor(props: CardFloppyProps) { - super(props); - - this.onChange = this.onChange.bind(this); - } - - public render() { - return ( -
-
-
-

Floppy Drive

-
-
- -

- windows95 comes with a virtual floppy drive. If you have floppy - disk images in the "img" format, you can mount them here. -

-

- Back in the 90s and before CD-ROM became a popular format, - software was typically distributed on floppy disks. Some - developers have since released their apps or games for free, - usually on virtual floppy disks using the "img" format. -

-

- Once you've mounted a disk image, you might have to reboot your - virtual windows95 machine from scratch. -

-

- {this.props.floppyPath - ? `Inserted Floppy Disk: ${this.props.floppyPath}` - : `No floppy mounted`} -

- - -
-
-
- ); - } - - public onChange(event: React.ChangeEvent) { - const floppyFile = - event.target.files && event.target.files.length > 0 - ? event.target.files[0] - : null; - - if (floppyFile) { - this.props.setFloppyPath(floppyFile.path); - } else { - console.log(`Floppy: Input changed but no file selected`); - } - } -} diff --git a/src/renderer/card-settings.tsx b/src/renderer/card-settings.tsx new file mode 100644 index 0000000..93962a3 --- /dev/null +++ b/src/renderer/card-settings.tsx @@ -0,0 +1,161 @@ +import * as React from "react"; +import * as fs from "fs-extra"; + +import { CONSTANTS } from "../constants"; + +interface CardSettingsProps { + bootFromScratch: () => void; + setFloppy: (file: File) => void; + floppy?: File; +} + +interface CardSettingsState { + isStateReset: boolean; +} + +export class CardSettings extends React.Component< + CardSettingsProps, + CardSettingsState +> { + constructor(props: CardSettingsProps) { + super(props); + + this.onChangeFloppy = this.onChangeFloppy.bind(this); + this.onResetState = this.onResetState.bind(this); + + this.state = { + isStateReset: false + }; + } + + public render() { + return ( +
+
+
+

+ + Settings +

+
+
+ {this.renderFloppy()} +
+ {this.renderState()} +
+
+
+ ); + } + + public renderFloppy() { + const { floppy } = this.props; + + return ( +
+ + + Floppy + + +

+ windows95 comes with a virtual floppy drive. It can mount floppy disk + images in the "img" format. +

+

+ Back in the 90s and before CD-ROMs became a popular, software was + typically distributed on floppy disks. Some developers have since + released their apps or games for free, usually on virtual floppy disks + using the "img" format. +

+

+ Once you've mounted a disk image, you might have to boot your virtual + windows95 machine from scratch. +

+

+ {floppy + ? `Inserted Floppy Disk: ${floppy.path}` + : `No floppy mounted`} +

+ +
+ ); + } + + public renderState() { + const { isStateReset } = this.state; + const { bootFromScratch } = this.props; + + return ( +
+ + + Reset machine state + +
+

+ windows95 stores changes to your machine (like saved files) in a + state file. If you encounter any trouble, you can reset your state + or boot Windows 95 from scratch.{" "} + All your changes will be lost. +

+ + +
+
+ ); + } + + /** + * Handle a change in the floppy input + * + * @param event + */ + private onChangeFloppy(event: React.ChangeEvent) { + const floppyFile = + event.target.files && event.target.files.length > 0 + ? event.target.files[0] + : null; + + if (floppyFile) { + this.props.setFloppy(floppyFile); + } else { + console.log(`Floppy: Input changed but no file selected`); + } + } + + /** + * Handle the state reset + */ + private async onResetState() { + if (fs.existsSync(CONSTANTS.STATE_PATH)) { + await fs.remove(CONSTANTS.STATE_PATH); + } + + this.setState({ isStateReset: true }); + } +} diff --git a/src/renderer/card-start.tsx b/src/renderer/card-start.tsx index 96d9612..fdcce69 100644 --- a/src/renderer/card-start.tsx +++ b/src/renderer/card-start.tsx @@ -13,7 +13,9 @@ export class CardStart extends React.Component { id="win95" onClick={this.props.startEmulator} > - Start Windows 95 + + Start Windows 95 +

Hit ESC to lock or unlock your mouse
diff --git a/src/renderer/card-state.tsx b/src/renderer/card-state.tsx deleted file mode 100644 index 92d3d2e..0000000 --- a/src/renderer/card-state.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import * as React from "react"; -import * as fs from "fs-extra"; - -import { CONSTANTS } from "../constants"; - -export interface CardStateProps { - bootFromScratch: () => void; -} - -export class CardState extends React.Component { - constructor(props: CardStateProps) { - super(props); - - this.onReset = this.onReset.bind(this); - } - - public render() { - return ( -
-
-
-

Machine State

-
-
-

- windows95 stores any changes to your machine (like saved files) in - a state file. If you encounter any trouble, you can either reset - your state or boot Windows 95 from scratch. -

- - -
-
-
- ); - } - - public async onReset() { - if (fs.existsSync(CONSTANTS.STATE_PATH)) { - await fs.remove(CONSTANTS.STATE_PATH); - } - } -} diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index d33c6b6..46780bd 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -1,21 +1,21 @@ import * as React from "react"; import * as fs from "fs-extra"; import * as path from "path"; -import { ipcRenderer, remote, shell, webFrame } from "electron"; +import { ipcRenderer, remote, shell } from "electron"; import { CONSTANTS, IPC_COMMANDS } from "../constants"; import { getDiskImageSize } from "../utils/disk-image-size"; import { CardStart } from "./card-start"; import { StartMenu } from "./start-menu"; -import { CardFloppy } from "./card-floppy"; -import { CardState } from "./card-state"; +import { CardSettings } from "./card-settings"; import { EmulatorInfo } from "./emulator-info"; +import { CardDrive } from "./card-drive"; export interface EmulatorState { currentUiCard: string; emulator?: any; scale: number; - floppyFile?: string; + floppyFile?: File; isBootingFresh: boolean; isCursorCaptured: boolean; isInfoDisplayed: boolean; @@ -33,6 +33,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { this.stopEmulator = this.stopEmulator.bind(this); this.restartEmulator = this.restartEmulator.bind(this); this.resetEmulator = this.resetEmulator.bind(this); + this.bootFromScratch = this.bootFromScratch.bind(this); this.state = { isBootingFresh: false, @@ -87,13 +88,22 @@ export class Emulator extends React.Component<{}, EmulatorState> { public setupUnloadListeners() { const handleClose = async () => { await this.saveState(); + + console.log(`Unload: Now done, quitting again.`); this.isQuitting = true; - remote.app.quit(); + + setImmediate(() => { + remote.app.quit(); + }); }; window.onbeforeunload = event => { - if (this.isQuitting) return; - if (this.isResetting) return; + if (this.isQuitting || this.isResetting) { + console.log(`Unload: Not preventing`); + return; + } + + console.log(`Unload: Preventing to first save state`); handleClose(); event.preventDefault(); @@ -167,6 +177,10 @@ export class Emulator extends React.Component<{}, EmulatorState> { ipcRenderer.on(IPC_COMMANDS.ZOOM_OUT, () => { this.setScale(this.state.scale * 0.8); }); + + ipcRenderer.on(IPC_COMMANDS.ZOOM_RESET, () => { + this.setScale(1); + }); } /** @@ -175,7 +189,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { * 🤡 */ public renderUI() { - const { isRunning, currentUiCard } = this.state; + const { isRunning, currentUiCard, floppyFile } = this.state; if (isRunning) { return null; @@ -183,15 +197,16 @@ export class Emulator extends React.Component<{}, EmulatorState> { let card; - if (currentUiCard === "floppy") { + if (currentUiCard === "settings") { card = ( - this.setState({ floppyFile })} - floppyPath={this.state.floppyFile} + this.setState({ floppyFile })} + bootFromScratch={this.bootFromScratch} + floppy={floppyFile} /> ); - } else if (currentUiCard === "state") { - card = ; + } else if (currentUiCard === "drive") { + card = ; } else { card = ; } @@ -348,16 +363,16 @@ export class Emulator extends React.Component<{}, EmulatorState> { private async saveState(): Promise { const { emulator } = this.state; - if (!emulator || !emulator.save_state) { - console.log(`restoreState: No emulator present`); - return; - } - return new Promise(resolve => { + if (!emulator || !emulator.save_state) { + console.log(`restoreState: No emulator present`); + return resolve(); + } + emulator.save_state(async (error: Error, newState: ArrayBuffer) => { if (error) { console.warn(`saveState: Could not save state`, error); - return; + return resolve(); } await fs.outputFile(CONSTANTS.STATE_PATH, Buffer.from(newState)); diff --git a/src/renderer/start-menu.tsx b/src/renderer/start-menu.tsx index 38c0f55..b9b599e 100644 --- a/src/renderer/start-menu.tsx +++ b/src/renderer/start-menu.tsx @@ -14,19 +14,23 @@ export class StartMenu extends React.Component { public render() { return ( diff --git a/static/boot-fresh.png b/static/boot-fresh.png new file mode 100644 index 0000000000000000000000000000000000000000..bb1a384dc4e731f673ae2236a1452336f17dc40c GIT binary patch literal 2038 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 literal 0 HcmV?d00001 diff --git a/static/index.html b/static/index.html index cb7b4a5..336f952 100644 --- a/static/index.html +++ b/static/index.html @@ -12,5 +12,15 @@
+ + + + + + + + + + \ No newline at end of file diff --git a/static/reset-state.png b/static/reset-state.png new file mode 100644 index 0000000000000000000000000000000000000000..6cc0a4b7c243ce4045b16afa062582e4687e19fb GIT binary patch literal 2118 zcmY*Z2{;s58=e`Bku14FM8=?0%w%M2V{Bu~PS)&9)>+IUO`6K20`85Dwmu#4snPY^Rr5Q1jNOmCw1mP@k1ROam$l1~q0MO0OcJ&FBcio3+ zrGzM}47o&}xIn#aB&sTU#qC5Tt0if25=AJqMvcSfgSj7viu;CiwOThT9n2l$H5beF zbvFxR3Fx<(zAAA0LKr!1E8Q zJqmO80i{dtYRDj`DfFB)!(*3I=?odcN_QuPV?K9mK`4hk(T%6ynLUm3d;M~9tD?5q zLO}`|r5M=o;r5=i9N?#0uKnkL=ht%;jTXHQas%g^HI2Iv=O0W3{oP5yBxZ-5nN^>D zkp^~k2~R89n={b;)k1`)dH@;G=2VXTmY$GD0GpcAKy|kX<%-F^@WRjEbc?#AzWo0{zYdl;hB3R8>@SXHn=pCAvAaY;rKG_Vv$}=(t*zM@g`mB<{j<%=y zTfM!0v~LfFSVx2DnBS%Awt_7$wGg7O&j(_T61%wkU&^$ z2HK8$MZR7#n6o~1GSb`^t@CR0QI?i-Rhjvu9;=n%zpZuD*4yQ8rn*?uMdkh@Jh0E> zjc0y!-V5qFPEFIY_(>?>j4Tk}DC65(PN%p&l5_%}CM`)n+8jkZQ-sXsoPptkw! z@nFL9gu#TNgbp82u0enKOxqNkq)735#tmPU^LiI29lO6dWT7yEc~VI^QtF^I`6+73 zDFFHTu!vBQsnb|WVeJx6x&m>{P(dt6@xv{icN^Rdn9i#Mt=Vn4x}I7fP%KZm>p>#nAb*H3gPts~<$f!vlhefjD>! zp2Yt|004B1K0n0cr~%Lzd?bOQA7cpnj?m}FJ81+A`W-@zFob#7IYP~dWE@l*egb|R zh7pEBp=fgO8GUE0#m{p7$`BSxrIPd!i0J5Oc(fLrNDe`0>gnkrjw2CBqy`_ML5U?$ z17b7?6y+Zz|KY*nC_&^f5;crSfbQ@H1QO3u4Pmeyp=4|xghW#gfg$Lb!6%4TA_XXSfUv0joJ zK7C65f7)lCDlNH2*Y-vGe_0D^IXPKt`G*^GlAv=}Xw{Ujx)vhnPzD15RINE$QEA!rL?) zrccqsOC82heNCIpFFoeBD(a15dTu<=W>vLIKuCw^%PpMhyAfy62c>$go(w3w5CAbv z)yKfm9mdoDOuD=_JmfqG0tg zY+lQNYI=;gu&$H+!_uk}JK`f*(!`&N_KTaX+b0F8S3Y#sJIqxd74QLTLB)*~FLrF? zuh+!A!CHTkw<=)Hp}Z+V*!xu($yv2RL_Lw}5h+qpEn_4)GbvL>!r$3umx`m(o($pS ztZN1rA&g8jK7F#XHUym-x5egWIz1^*lwI&unwc#a5nE`xopJQj{fF-15iTZ>^a-N_ z%2U9OyaH8!KzZb&z~cEE)TbFuuUp%}`JNPvY#HBki;+}+acj#}1Z1A881-8ExWrvI zkZ&z$R{;{D*4NjdXBcV%FK#OWAR)MX06W=zu%umS_s8|(6RNmviRg2Jw%g5LsxdDQ zel_iih2Ko3a6`efK)30cDW{e!`=rs>XT`OE{(g5>?z&!%<%*55kG(ahSU@54othUA znCCbZLMzi5>silXsHEu8Vm%i+fw_Pw(@s5*ZJahNVz+m;)sd7y7=;rB|H`$JOLvA2 sX3gi6%=PN|3tD*o6`Mk(pLP8hA~0ZR9@+?z*m>F3=JwdTrvAVG8^qAT_y7O^ literal 0 HcmV?d00001 diff --git a/static/reset.png b/static/reset.png new file mode 100644 index 0000000000000000000000000000000000000000..4d785026bfdd928bcb985eeaa6bf9296e56ec39f GIT binary patch literal 2052 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 TyPsdQ`4AoL4x?|{96R+dPf3#< literal 0 HcmV?d00001 diff --git a/static/settings.png b/static/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..90e5340a4abe70eb4342bc9fed07afd02304764a GIT binary patch literal 2025 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 MxcK0zo%SC42grbZ-T(jq literal 0 HcmV?d00001 From 186a2a8ba93e5c63ff483fb123c9be5e284549de Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Sat, 24 Aug 2019 16:58:21 +0200 Subject: [PATCH 15/19] chore: Improve build --- forge.config.js | 12 +++++++ src/constants.ts | 1 + src/less/root.less | 7 ++-- src/less/start.less | 9 +++++ src/main/menu.ts | 5 +++ src/main/windows.ts | 4 ++- src/renderer/card-start.tsx | 14 +++----- src/renderer/emulator.tsx | 70 +++++++++++++++++++++---------------- static/index.html | 10 ------ tools/parcel-build.js | 2 +- 10 files changed, 77 insertions(+), 57 deletions(-) create mode 100644 src/less/start.less diff --git a/forge.config.js b/forge.config.js index 4b81e00..8e51e26 100644 --- a/forge.config.js +++ b/forge.config.js @@ -17,6 +17,18 @@ module.exports = { osxSign: { identity: 'Developer ID Application: Felix Rieseberg (LT94ZKYDCJ)' }, + ignore: [ + /\/assets(\/?)/, + /\/docs(\/?)/, + /\/tools(\/?)/, + /\/src\/.*\.ts/, + /package-lock\.json/, + /README\.md/, + /tsconfig\.json/, + /Dockerfile/, + /issue_template\.md/, + /HELP\.md/, + ] }, makers: [ { diff --git a/src/constants.ts b/src/constants.ts index 75e63ea..8859339 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -22,6 +22,7 @@ export const IPC_COMMANDS = { MACHINE_STOP: 'MACHINE_STOP', MACHINE_RESET: 'MACHINE_RESET', MACHINE_ALT_F4: 'MACHINE_ALT_F4', + MACHINE_ESC: 'MACHINE_ESC', MACHINE_ALT_ENTER: 'MACHINE_ALT_ENTER', MACHINE_CTRL_ALT_DEL: 'MACHINE_CTRL_ALT_DEL', // Machine events diff --git a/src/less/root.less b/src/less/root.less index 1fc57fb..7a5e482 100644 --- a/src/less/root.less +++ b/src/less/root.less @@ -2,6 +2,7 @@ @import "./emulator.less"; @import "./info.less"; @import "./settings.less"; +@import "./start.less"; /* GENERAL RESETS */ @@ -51,7 +52,6 @@ section { .nav-link > img, .btn > img { height: 24px; - margin-top: -3px; margin-right: 4px; } @@ -66,8 +66,7 @@ section { nav .nav-link, nav .nav-logo { - height: 33px; - line-height: 1.5; + height: 37px; display: flex; } @@ -85,7 +84,7 @@ section { .btn { height: 40px; - padding-top: 6px; + padding-top: 3px; } .btn:focus { diff --git a/src/less/start.less b/src/less/start.less new file mode 100644 index 0000000..88e3c33 --- /dev/null +++ b/src/less/start.less @@ -0,0 +1,9 @@ +#section-start { + display: flex; + flex-direction: column; + + > small { + margin-top: 25px; + font-size: .8rem; + } +} diff --git a/src/main/menu.ts b/src/main/menu.ts index ca86c62..e1addd3 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -140,6 +140,11 @@ async function createMenu({ isRunning } = { isRunning: false }) { click: () => send(IPC_COMMANDS.MACHINE_ALT_ENTER), enabled: isRunning }, + { + label: "Send Esc", + click: () => send(IPC_COMMANDS.MACHINE_ESC), + enabled: isRunning + }, { type: "separator" }, diff --git a/src/main/windows.ts b/src/main/windows.ts index 641a5e7..0d89f31 100644 --- a/src/main/windows.ts +++ b/src/main/windows.ts @@ -11,7 +11,9 @@ export function getOrCreateWindow(): BrowserWindow { height: 768, useContentSize: true, webPreferences: { - nodeIntegration: true + nodeIntegration: true, + sandbox: false, + webviewTag: false } }); diff --git a/src/renderer/card-start.tsx b/src/renderer/card-start.tsx index fdcce69..546147c 100644 --- a/src/renderer/card-start.tsx +++ b/src/renderer/card-start.tsx @@ -7,18 +7,12 @@ export interface CardStartProps { export class CardStart extends React.Component { public render() { return ( -
-
+
+
+ + Hit ESC to lock or unlock your mouse
); } diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index 46780bd..8efc3e1 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -69,6 +69,8 @@ export class Emulator extends React.Component<{}, EmulatorState> { } else { this.lockMouse(); } + + evt.stopPropagation(); } }; @@ -117,44 +119,31 @@ export class Emulator extends React.Component<{}, EmulatorState> { */ public setupIpcListeners() { ipcRenderer.on(IPC_COMMANDS.MACHINE_CTRL_ALT_DEL, () => { - if (this.state.emulator && this.state.isRunning) { - this.state.emulator.keyboard_send_scancodes([ - 0x1d, // ctrl - 0x38, // alt - 0x53, // delete - - // break codes - 0x1d | 0x80, - 0x38 | 0x80, - 0x53 | 0x80 - ]); - } + this.sendKeys([ + 0x1d, // ctrl + 0x38, // alt + 0x53 // delete + ]); }); ipcRenderer.on(IPC_COMMANDS.MACHINE_ALT_F4, () => { - if (this.state.emulator && this.state.isRunning) { - this.state.emulator.keyboard_send_scancodes([ - 0x38, // alt - 0x3e, // f4 - - // break codes - 0x38 | 0x80, - 0x3e | 0x80 - ]); - } + this.sendKeys([ + 0x38, // alt + 0x3e // f4 + ]); }); ipcRenderer.on(IPC_COMMANDS.MACHINE_ALT_ENTER, () => { - if (this.state.emulator && this.state.isRunning) { - this.state.emulator.keyboard_send_scancodes([ - 0x38, // alt - 0, // enter + this.sendKeys([ + 0x38, // alt + 0 // enter + ]); + }); - // break codes - 0x38 | 0x80, - 0 | 0x80 - ]); - } + ipcRenderer.on(IPC_COMMANDS.MACHINE_ESC, () => { + this.sendKeys([ + 0x18 // alt + ]); }); ipcRenderer.on(IPC_COMMANDS.MACHINE_STOP, this.stopEmulator); @@ -467,4 +456,23 @@ export class Emulator extends React.Component<{}, EmulatorState> { this.setState({ scale: target }); } } + + /** + * Send keys to the emulator (including the key-up), + * if it's running + * + * @param {Array} codes + */ + private sendKeys(codes: Array) { + if (this.state.emulator && this.state.isRunning) { + const scancodes = codes; + + // Push break codes (key-up) + for (const scancode of scancodes) { + scancodes.push(scancode | 0x80); + } + + this.state.emulator.keyboard_send_scancodes(scancodes); + } + } } diff --git a/static/index.html b/static/index.html index 336f952..cb7b4a5 100644 --- a/static/index.html +++ b/static/index.html @@ -12,15 +12,5 @@
- - - - - - - - - - \ No newline at end of file diff --git a/tools/parcel-build.js b/tools/parcel-build.js index b3bac78..985bda2 100644 --- a/tools/parcel-build.js +++ b/tools/parcel-build.js @@ -25,7 +25,7 @@ async function compileParcel (options = {}) { // key: './ssl/k.key' // path to custom key // }, logLevel: 3, // 3 = log everything, 2 = log warnings & errors, 1 = log errors - hmr: true, // Enable or disable HMR while watching + hmr: false, // Enable or disable HMR while watching hmrPort: 0, // The port the HMR socket runs on, defaults to a random free port (0 in node.js resolves to a random free port) sourceMaps: true, // Enable or disable sourcemaps, defaults to enabled (minified builds currently always create sourcemaps) hmrHostname: '', // A hostname for hot module reload, default to '' From 658fed75da5698ff5cc57eb9f7e55e2c8e0803f2 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Sat, 24 Aug 2019 17:03:56 +0200 Subject: [PATCH 16/19] docs: Update the docs --- HELP.md | 11 +++++------ LICENSE.md | 2 +- README.md | 11 ++++++++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/HELP.md b/HELP.md index b86458b..d14647a 100644 --- a/HELP.md +++ b/HELP.md @@ -8,20 +8,19 @@ back to a window mode. (Thanks to @DisplacedGamer for that wisdom) ## Windows 95 is stuck in a bad state -Restart the application and click on the "Reset machine & delete state" button. -You can find it in the lower left of the screen. Then, hit the "Start Windows 95" -button to start your virtual machine again. +On the app's home screen, select "Settings" in the lower menu. Then, delete your +machine's state before starting it again - this time hopefully without issues. ## I want to install additional apps or games If you are running macOS, or Linux, you can probably "mount" the -virtual hard drive used by `windows95` to add files. Hit the "Show Disk Image" -button in the lower right of the app, which will take you to the disk image. +virtual hard drive used by `windows95` to add files. Hit the "Modify C: Drive" +button, which will take you to the disk image. On macOS, double-click the disk image to open it. On Windows 10, Windows will _think_ that it can open up the image, but will -actually fail to do so. Use a tool [like OSFMount][osfmount] to mount your +actually fail to do so. Use a tool [like OSFMount][osfmount] to mount your disk image. On Linux, search the Internet for instructions on how to mount an `img` disk diff --git a/LICENSE.md b/LICENSE.md index 9896e7a..4ed44f7 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright 2018 Felix Rieseberg +Copyright 2019 Felix Rieseberg Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.md b/README.md index 137ee7d..8b73080 100644 --- a/README.md +++ b/README.md @@ -23,18 +23,23 @@ You'll likely be better off with an actual virtualization app, but the short ans ## Credits -99.999% of the work was done over at [v86](https://github.com/copy/v86/) by Copy. +99% of the work was done over at [v86](https://github.com/copy/v86/) by Copy. ## Contributing Before you can run this from source, you'll need the disk image. It's not part of the repository, but you can grab it using the `Show Disk Image` button from the packaged -release, which does include the disk image. +release, which does include the disk image. You can find that button in the +`Modify C: Drive` section. Unpack the `images` folder into the `src` folder, creating this layout: ``` -./src/images/windows95.img +- /images/windows95.img +- /images/default-state.bin +- /assets/... +- /bios/... +- /docs/... ``` Once you've done so, run `npm install` and `npm start` to run your local build. From 51d0011ed09fef2a84c72bdf4a654425f11f6543 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Sat, 24 Aug 2019 17:14:22 +0200 Subject: [PATCH 17/19] fix: Hide info if requested --- src/renderer/emulator-info.tsx | 2 +- src/renderer/emulator.tsx | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/renderer/emulator-info.tsx b/src/renderer/emulator-info.tsx index 40f7ae6..ad1bc61 100644 --- a/src/renderer/emulator-info.tsx +++ b/src/renderer/emulator-info.tsx @@ -38,7 +38,7 @@ export class EmulatorInfo extends React.Component< return (
- Disk: {disk}| CPU Speed: {cpu}|{" "} + Disk: {disk} | CPU Speed: {cpu} |{" "} Hide diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index 8efc3e1..d8aaec4 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -216,12 +216,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { public render() { return ( <> - { - this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); - }} - /> + {this.renderInfo()} {this.renderUI()}
@@ -231,6 +226,22 @@ export class Emulator extends React.Component<{}, EmulatorState> { ); } + /** + * Render the little info thingy + */ + public renderInfo() { + if (!this.state.isInfoDisplayed) { + return null; + } + + return { + this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); + }} + /> + } + /** * Boot the emulator without restoring state */ From 0c2149b756ec7e66d33a759ad84e00450545023a Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Sat, 24 Aug 2019 17:15:51 +0200 Subject: [PATCH 18/19] fix: Show image in explorer --- src/renderer/emulator.tsx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index d8aaec4..7c0e10e 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -234,12 +234,14 @@ export class Emulator extends React.Component<{}, EmulatorState> { return null; } - return { - this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); - }} - /> + return ( + { + this.setState({ isInfoDisplayed: !this.state.isInfoDisplayed }); + }} + /> + ); } /** @@ -254,9 +256,11 @@ export class Emulator extends React.Component<{}, EmulatorState> { * Show the disk image on disk */ public showDiskImage() { + // Contents/Resources/app/dist/static const imagePath = path - .join(__dirname, "images/windows95.img") - .replace("app.asar", "app.asar.unpacked"); + .join(__dirname, "../../images/windows95.img"); + + console.log(`Showing disk image in ${imagePath}`);`` shell.showItemInFolder(imagePath); } From 8d8fc949cd0ead9799504735dae0f7b8ac50541a Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Sat, 24 Aug 2019 17:39:04 +0200 Subject: [PATCH 19/19] build: Put images in right location --- .appveyor.yml | 4 ++-- .travis.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 7875015..2a94c9b 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -17,15 +17,15 @@ install: - ps: Install-Product node $env:nodejs_version x64 - node --version - npm ci - - ps: cd ./src/ - ps: mkdir images - ps: cd images - ps: Start-FileDownload 'https://1drv.ws/u/s!AkfaAw_EaahOkulh8rA41x2phgfYXQ' -FileName images.zip -Timeout 600000 - ps: 7z x images.zip -y -aoa - ps: Remove-Item images.zip - ps: Remove-Item __MACOSX -Recurse -ErrorAction Ignore - - ps: cd ../.. + - ps: cd .. - ps: Tree ./src /F + - ps: Tree ./images /F cache: - '%APPDATA%\npm-cache -> appveyor.yml' diff --git a/.travis.yml b/.travis.yml index 1d90589..3c680e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ install: - rm -r __MACOSX - cd ../.. - ls src -- ls src/images +- ls images - | if [[ "$TRAVIS_OS_NAME" == "osx" && "$TRAVIS_SECURE_ENV_VARS" == "true" ]]; then export CERTIFICATE_P12=cert.p12;