diff --git a/CHANGELOG.md b/CHANGELOG.md index cb2370358..94ddd5a42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## Added +- [main] Added npm script to watch and auto-restart the main process in PR [1450](https://github.com/Microsoft/BotFramework-Emulator/pull/1450) + ## Fixed - [luis / client] Fixed several styling issues within the LUIS inspector, and enabled log deep link to configure missing LUIS service in PR [#1399](https://github.com/Microsoft/BotFramework-Emulator/pull/1399) - [client] Fixed secret prompt dialog's opaque background so that it is now transparent in PR [1407](https://github.com/Microsoft/BotFramework-Emulator/pull/1407) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9f0b36a8..b539b797f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,14 +72,13 @@ Open 2 terminals: `packages/app/shared` and rebuild the `shared` package - One in `packages/app/main` (will be responsible for the node process) - - run `npm run start:electron:dev` - - this starts a new instance of the electron app with the most recently compiled `packages/app/main` files - - **To see app/main file changes:** `Ctrl + C` to kill the electron app, `npm run build` to rebuild the main side, and then `npm start:electron:dev` to restart it with your reflected changes + - run `npm run start:watch` + - this starts a new instance of the electron app with the most recently compiled `packages/app/main` files, and will continue to watch for any changes before recompiling and restarting the electron instance ### Debugging #### The Main Process -Running `npm run start:electron:dev` opens up port 7777 for debugging the main node process. Startup is non-blocking +Running `npm run start:watch` opens up port 7777 for debugging the main node process. Startup is non-blocking by default which means code could be executed before you have time to attach your debugger and set breakpoints. To prevent this, change `--inspect=7777` to `--inspect-brk=7777` in the `start:electron` script in the `package.json` located in `packages\app\main`. This will prevent code from running until after a debug process has been attached and will require you to start diff --git a/package-lock.json b/package-lock.json index daf27c768..e7c6c1213 100644 --- a/package-lock.json +++ b/package-lock.json @@ -998,14 +998,14 @@ }, "dependencies": { "browserslist": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz", - "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.5.tgz", + "integrity": "sha512-0QFO1r/2c792Ohkit5XI8Cm8pDtZxgNl2H6HU4mHrpYz7314pEYcsAVVatM0l/YmxPnEzh9VygXouj4gkFUTKA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000955", - "electron-to-chromium": "^1.3.122", - "node-releases": "^1.1.13" + "caniuse-lite": "^1.0.30000960", + "electron-to-chromium": "^1.3.124", + "node-releases": "^1.1.14" } } } @@ -1075,13 +1075,13 @@ } }, "@lerna/add": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.13.1.tgz", - "integrity": "sha512-cXk42YbuhzEnADCK8Qte5laC9Qo03eJLVnr0qKY85jQUM/T4URe3IIUemqpg0CpVATrB+Vz+iNdeqw9ng1iALw==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.13.3.tgz", + "integrity": "sha512-T3/Lsbo9ZFq+vL3ssaHxA8oKikZAPTJTGFe4CRuQgWCDd/M61+51jeWsngdaHpwzSSRDRjxg8fJTG10y10pnfA==", "requires": { - "@lerna/bootstrap": "3.13.1", - "@lerna/command": "3.13.1", - "@lerna/filter-options": "3.13.0", + "@lerna/bootstrap": "3.13.3", + "@lerna/command": "3.13.3", + "@lerna/filter-options": "3.13.3", "@lerna/npm-conf": "3.13.0", "@lerna/validation-error": "3.13.0", "dedent": "^0.7.0", @@ -1102,18 +1102,18 @@ } }, "@lerna/bootstrap": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.13.1.tgz", - "integrity": "sha512-mKdi5Ds5f82PZwEFyB9/W60I3iELobi1i87sTeVrbJh/um7GvqpSPy7kG/JPxyOdMpB2njX6LiJgw+7b6BEPWw==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.13.3.tgz", + "integrity": "sha512-2XzijnLHRZOVQh8pwS7+5GR3cG4uh+EiLrWOishCq2TVzkqgjaS3GGBoef7KMCXfWHoLqAZRr/jEdLqfETLVqg==", "requires": { "@lerna/batch-packages": "3.13.0", - "@lerna/command": "3.13.1", - "@lerna/filter-options": "3.13.0", - "@lerna/has-npm-version": "3.13.0", - "@lerna/npm-install": "3.13.0", + "@lerna/command": "3.13.3", + "@lerna/filter-options": "3.13.3", + "@lerna/has-npm-version": "3.13.3", + "@lerna/npm-install": "3.13.3", "@lerna/package-graph": "3.13.0", "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.13.0", + "@lerna/rimraf-dir": "3.13.3", "@lerna/run-lifecycle": "3.13.0", "@lerna/run-parallel-batches": "3.13.0", "@lerna/symlink-binary": "3.13.0", @@ -1133,30 +1133,30 @@ } }, "@lerna/changed": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.13.2.tgz", - "integrity": "sha512-mcmkxUMR0J4ZyRyVUrdDJl4ZsdHDgdA1xQcbdB4LZvAE/E2lNlPcEfAfbfs08VnRiqvFOqcczbzBq10hvSFg4w==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.13.3.tgz", + "integrity": "sha512-REMZ/1UvYrizUhN7ktlbfMUa0vhMf1ogAe97WQC4I8r3s973Orfhs3aselo1GwudUwM4tMHBH8A9vnll9or3iA==", "requires": { - "@lerna/collect-updates": "3.13.0", - "@lerna/command": "3.13.1", + "@lerna/collect-updates": "3.13.3", + "@lerna/command": "3.13.3", "@lerna/listable": "3.13.0", "@lerna/output": "3.13.0", - "@lerna/version": "3.13.2" + "@lerna/version": "3.13.3" } }, "@lerna/check-working-tree": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.13.0.tgz", - "integrity": "sha512-dsdO15NXX5To+Q53SYeCrBEpiqv4m5VkaPZxbGQZNwoRen1MloXuqxSymJANQn+ZLEqarv5V56gydebeROPH5A==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.13.3.tgz", + "integrity": "sha512-LoGZvTkne+V1WpVdCTU0XNzFKsQa2AiAFKksGRT0v8NQj6VAPp0jfVYDayTqwaWt2Ne0OGKOFE79Y5LStOuhaQ==", "requires": { - "@lerna/describe-ref": "3.13.0", + "@lerna/describe-ref": "3.13.3", "@lerna/validation-error": "3.13.0" } }, "@lerna/child-process": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.13.0.tgz", - "integrity": "sha512-0iDS8y2jiEucD4fJHEzKoc8aQJgm7s+hG+0RmDNtfT0MM3n17pZnf5JOMtS1FJp+SEXOjMKQndyyaDIPFsnp6A==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.13.3.tgz", + "integrity": "sha512-3/e2uCLnbU+bydDnDwyadpOmuzazS01EcnOleAnuj9235CU2U97DH6OyoG1EW/fU59x11J+HjIqovh5vBaMQjQ==", "requires": { "chalk": "^2.3.1", "execa": "^1.0.0", @@ -1197,15 +1197,15 @@ } }, "@lerna/clean": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.13.1.tgz", - "integrity": "sha512-myGIaXv7RUO2qCFZXvx8SJeI+eN6y9SUD5zZ4/LvNogbOiEIlujC5lUAqK65rAHayQ9ltSa/yK6Xv510xhZXZQ==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.13.3.tgz", + "integrity": "sha512-xmNauF1PpmDaKdtA2yuRc23Tru4q7UMO6yB1a/TTwxYPYYsAWG/CBK65bV26J7x4RlZtEv06ztYGMa9zh34UXA==", "requires": { - "@lerna/command": "3.13.1", - "@lerna/filter-options": "3.13.0", + "@lerna/command": "3.13.3", + "@lerna/filter-options": "3.13.3", "@lerna/prompt": "3.13.0", "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.13.0", + "@lerna/rimraf-dir": "3.13.3", "p-map": "^1.2.0", "p-map-series": "^1.0.0", "p-waterfall": "^1.0.0" @@ -1223,23 +1223,23 @@ } }, "@lerna/collect-updates": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.13.0.tgz", - "integrity": "sha512-uR3u6uTzrS1p46tHQ/mlHog/nRJGBqskTHYYJbgirujxm6FqNh7Do+I1Q/7zSee407G4lzsNxZdm8IL927HemQ==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.13.3.tgz", + "integrity": "sha512-sTpALOAxli/ZS+Mjq6fbmjU9YXqFJ2E4FrE1Ijl4wPC5stXEosg2u0Z1uPY+zVKdM+mOIhLxPVdx83rUgRS+Cg==", "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/describe-ref": "3.13.0", + "@lerna/child-process": "3.13.3", + "@lerna/describe-ref": "3.13.3", "minimatch": "^3.0.4", "npmlog": "^4.1.2", "slash": "^1.0.0" } }, "@lerna/command": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.13.1.tgz", - "integrity": "sha512-SYWezxX+iheWvzRoHCrbs8v5zHPaxAx3kWvZhqi70vuGsdOVAWmaG4IvHLn11ztS+Vpd5PM+ztBWSbnykpLFKQ==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.13.3.tgz", + "integrity": "sha512-WHFIQCubJV0T8gSLRNr6exZUxTswrh+iAtJCb86SE0Sa+auMPklE8af7w2Yck5GJfewmxSjke3yrjNxQrstx7w==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "@lerna/package-graph": "3.13.0", "@lerna/project": "3.13.1", "@lerna/validation-error": "3.13.0", @@ -1336,12 +1336,12 @@ } }, "@lerna/create": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.13.1.tgz", - "integrity": "sha512-pLENMXgTkQuvKxAopjKeoLOv9fVUCnpTUD7aLrY5d95/1xqSZlnsOcQfUYcpMf3GpOvHc8ILmI5OXkPqjAf54g==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.13.3.tgz", + "integrity": "sha512-4M5xT1AyUMwt1gCDph4BfW3e6fZmt0KjTa3FoXkUotf/w/eqTsc2IQ+ULz2+gOFQmtuNbqIZEOK3J4P9ArJJ/A==", "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.1", + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.13.3", "@lerna/npm-conf": "3.13.0", "@lerna/validation-error": "3.13.0", "camelcase": "^5.0.0", @@ -1438,44 +1438,44 @@ } }, "@lerna/describe-ref": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.13.0.tgz", - "integrity": "sha512-UJefF5mLxLae9I2Sbz5RLYGbqbikRuMqdgTam0MS5OhXnyuuKYBUpwBshCURNb1dPBXTQhSwc7+oUhORx8ojCg==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.13.3.tgz", + "integrity": "sha512-5KcLTvjdS4gU5evW8ESbZ0BF44NM5HrP3dQNtWnOUSKJRgsES8Gj0lq9AlB2+YglZfjEftFT03uOYOxnKto4Uw==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "npmlog": "^4.1.2" } }, "@lerna/diff": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.13.1.tgz", - "integrity": "sha512-cKqmpONO57mdvxtp8e+l5+tjtmF04+7E+O0QEcLcNUAjC6UR2OSM77nwRCXDukou/1h72JtWs0jjcdYLwAmApg==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.13.3.tgz", + "integrity": "sha512-/DRS2keYbnKaAC+5AkDyZRGkP/kT7v1GlUS0JGZeiRDPQ1H6PzhX09EgE5X6nj0Ytrm0sUasDeN++CDVvgaI+A==", "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.1", + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.13.3", "@lerna/validation-error": "3.13.0", "npmlog": "^4.1.2" } }, "@lerna/exec": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.13.1.tgz", - "integrity": "sha512-I34wEP9lrAqqM7tTXLDxv/6454WFzrnXDWpNDbiKQiZs6SIrOOjmm6I4FiQsx+rU3o9d+HkC6tcUJRN5mlJUgA==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.13.3.tgz", + "integrity": "sha512-c0bD4XqM96CTPV8+lvkxzE7mkxiFyv/WNM4H01YvvbFAJzk+S4Y7cBtRkIYFTfkFZW3FLo8pEgtG1ONtIdM+tg==", "requires": { "@lerna/batch-packages": "3.13.0", - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.1", - "@lerna/filter-options": "3.13.0", + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.13.3", + "@lerna/filter-options": "3.13.3", "@lerna/run-parallel-batches": "3.13.0", "@lerna/validation-error": "3.13.0" } }, "@lerna/filter-options": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.13.0.tgz", - "integrity": "sha512-SRp7DCo9zrf+7NkQxZMkeyO1GRN6GICoB9UcBAbXhLbWisT37Cx5/6+jh49gYB63d/0/WYHSEPMlheUrpv1Srw==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.13.3.tgz", + "integrity": "sha512-DbtQX4eRgrBz1wCFWRP99JBD7ODykYme9ykEK79+RrKph40znhJQRlLg4idogj6IsUEzwo1OHjihCzSfnVo6Cg==", "requires": { - "@lerna/collect-updates": "3.13.0", + "@lerna/collect-updates": "3.13.3", "@lerna/filter-packages": "3.13.0", "dedent": "^0.7.0" } @@ -1548,11 +1548,11 @@ } }, "@lerna/github-client": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.13.1.tgz", - "integrity": "sha512-iPLUp8FFoAKGURksYEYZzfuo9TRA+NepVlseRXFaWlmy36dCQN20AciINpoXiXGoHcEUHXUKHQvY3ARFdMlf3w==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.13.3.tgz", + "integrity": "sha512-fcJkjab4kX0zcLLSa/DCUNvU3v8wmy2c1lhdIbL7s7gABmDcV0QZq93LhnEee3VkC9UpnJ6GKG4EkD7eIifBnA==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "@octokit/plugin-enterprise-rest": "^2.1.1", "@octokit/rest": "^16.16.0", "git-url-parse": "^11.1.2", @@ -1565,21 +1565,21 @@ "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==" }, "@lerna/has-npm-version": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.13.0.tgz", - "integrity": "sha512-Oqu7DGLnrMENPm+bPFGOHnqxK8lCnuYr6bk3g/CoNn8/U0qgFvHcq6Iv8/Z04TsvleX+3/RgauSD2kMfRmbypg==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.13.3.tgz", + "integrity": "sha512-mQzoghRw4dBg0R9FFfHrj0TH0glvXyzdEZmYZ8Isvx5BSuEEwpsryoywuZSdppcvLu8o7NAdU5Tac8cJ/mT52w==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "semver": "^5.5.0" } }, "@lerna/import": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.13.1.tgz", - "integrity": "sha512-A1Vk1siYx1XkRl6w+zkaA0iptV5TIynVlHPR9S7NY0XAfhykjztYVvwtxarlh6+VcNrO9We6if0+FXCrfDEoIg==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.13.3.tgz", + "integrity": "sha512-gDjLAFVavG/CMvj9leBfiwd7vrXqtdFXPIz1oXmghBMnje7nCTbodbNWFe4VDDWx7reDaZIN+6PxTSvrPcF//A==", "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.1", + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.13.3", "@lerna/prompt": "3.13.0", "@lerna/pulse-till-done": "3.13.0", "@lerna/validation-error": "3.13.0", @@ -1601,12 +1601,12 @@ } }, "@lerna/init": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.13.1.tgz", - "integrity": "sha512-M59WACqim8WkH5FQEGOCEZ89NDxCKBfFTx4ZD5ig3LkGyJ8RdcJq5KEfpW/aESuRE9JrZLzVr0IjKbZSxzwEMA==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.13.3.tgz", + "integrity": "sha512-bK/mp0sF6jT0N+c+xrbMCqN4xRoiZCXQzlYsyACxPK99KH/mpHv7hViZlTYUGlYcymtew6ZC770miv5A9wF9hA==", "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.1", + "@lerna/child-process": "3.13.3", + "@lerna/command": "3.13.3", "fs-extra": "^7.0.0", "p-map": "^1.2.0", "write-json-file": "^2.3.0" @@ -1625,11 +1625,11 @@ } }, "@lerna/link": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.13.1.tgz", - "integrity": "sha512-N3h3Fj1dcea+1RaAoAdy4g2m3fvU7m89HoUn5X/Zcw5n2kPoK8kTO+NfhNAatfRV8VtMXst8vbNrWQQtfm0FFw==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.13.3.tgz", + "integrity": "sha512-IHhtdhA0KlIdevCsq6WHkI2rF3lHWHziJs2mlrEWAKniVrFczbELON1KJAgdJS1k3kAP/WeWVqmIYZ2hJDxMvg==", "requires": { - "@lerna/command": "3.13.1", + "@lerna/command": "3.13.3", "@lerna/package-graph": "3.13.0", "@lerna/symlink-dependencies": "3.13.0", "p-map": "^1.2.0", @@ -1637,12 +1637,12 @@ } }, "@lerna/list": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.13.1.tgz", - "integrity": "sha512-635iRbdgd9gNvYLLIbYdQCQLr+HioM5FGJLFS0g3DPGygr6iDR8KS47hzCRGH91LU9NcM1mD1RoT/AChF+QbiA==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.13.3.tgz", + "integrity": "sha512-rLRDsBCkydMq2FL6WY1J/elvnXIjxxRtb72lfKHdvDEqVdquT5Qgt9ci42hwjmcocFwWcFJgF6BZozj5pbc13A==", "requires": { - "@lerna/command": "3.13.1", - "@lerna/filter-options": "3.13.0", + "@lerna/command": "3.13.3", + "@lerna/filter-options": "3.13.3", "@lerna/listable": "3.13.0", "@lerna/output": "3.13.0" } @@ -1696,11 +1696,11 @@ } }, "@lerna/npm-install": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.13.0.tgz", - "integrity": "sha512-qNyfts//isYQxore6fsPorNYJmPVKZ6tOThSH97tP0aV91zGMtrYRqlAoUnDwDdAjHPYEM16hNujg2wRmsqqIw==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.13.3.tgz", + "integrity": "sha512-7Jig9MLpwAfcsdQ5UeanAjndChUjiTjTp50zJ+UZz4CbIBIDhoBehvNMTCL2G6pOEC7sGEg6sAqJINAqred6Tg==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "@lerna/get-npm-exec-opts": "3.13.0", "fs-extra": "^7.0.0", "npm-package-arg": "^6.1.0", @@ -1754,11 +1754,11 @@ } }, "@lerna/npm-run-script": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.13.0.tgz", - "integrity": "sha512-hiL3/VeVp+NFatBjkGN8mUdX24EfZx9rQlSie0CMgtjc7iZrtd0jCguLomSCRHYjJuvqgbp+LLYo7nHVykfkaQ==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.13.3.tgz", + "integrity": "sha512-qR4o9BFt5hI8Od5/DqLalOJydnKpiQFEeN0h9xZi7MwzuX1Ukwh3X22vqsX4YRbipIelSFtrDzleNVUm5jj0ow==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "@lerna/get-npm-exec-opts": "3.13.0", "npmlog": "^4.1.2" } @@ -1886,16 +1886,16 @@ } }, "@lerna/publish": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.13.2.tgz", - "integrity": "sha512-L8iceC3Z2YJnlV3cGbfk47NSh1+iOo1tD65z+BU3IYLRpPnnSf8i6BORdKV8rECDj6kjLYvL7//2yxbHy7shhA==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.13.3.tgz", + "integrity": "sha512-Ni3pZKueIfgJJoL0OXfbAuWhGlJrDNwGx3CYWp2dbNqJmKD6uBZmsDtmeARKDp92oUK60W0drXCMydkIFFHMDQ==", "requires": { "@lerna/batch-packages": "3.13.0", - "@lerna/check-working-tree": "3.13.0", - "@lerna/child-process": "3.13.0", - "@lerna/collect-updates": "3.13.0", - "@lerna/command": "3.13.1", - "@lerna/describe-ref": "3.13.0", + "@lerna/check-working-tree": "3.13.3", + "@lerna/child-process": "3.13.3", + "@lerna/collect-updates": "3.13.3", + "@lerna/command": "3.13.3", + "@lerna/describe-ref": "3.13.3", "@lerna/log-packed": "3.13.0", "@lerna/npm-conf": "3.13.0", "@lerna/npm-dist-tag": "3.13.0", @@ -1907,7 +1907,7 @@ "@lerna/run-lifecycle": "3.13.0", "@lerna/run-parallel-batches": "3.13.0", "@lerna/validation-error": "3.13.0", - "@lerna/version": "3.13.2", + "@lerna/version": "3.13.3", "figgy-pudding": "^3.5.1", "fs-extra": "^7.0.0", "libnpmaccess": "^3.0.1", @@ -1965,25 +1965,25 @@ } }, "@lerna/rimraf-dir": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.13.0.tgz", - "integrity": "sha512-kte+pMemulre8cmPqljxIYjCmdLByz8DgHBHXB49kz2EiPf8JJ+hJFt0PzEubEyJZ2YE2EVAx5Tv5+NfGNUQyQ==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.13.3.tgz", + "integrity": "sha512-d0T1Hxwu3gpYVv73ytSL+/Oy8JitsmvOYUR5ouRSABsmqS7ZZCh5t6FgVDDGVXeuhbw82+vuny1Og6Q0k4ilqw==", "requires": { - "@lerna/child-process": "3.13.0", + "@lerna/child-process": "3.13.3", "npmlog": "^4.1.2", "path-exists": "^3.0.0", "rimraf": "^2.6.2" } }, "@lerna/run": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.13.1.tgz", - "integrity": "sha512-nv1oj7bsqppWm1M4ifN+/IIbVu9F4RixrbQD2okqDGYne4RQPAXyb5cEZuAzY/wyGTWWiVaZ1zpj5ogPWvH0bw==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.13.3.tgz", + "integrity": "sha512-ygnLIfIYS6YY1JHWOM4CsdZiY8kTYPsDFOLAwASlRnlAXF9HiMT08GFXLmMHIblZJ8yJhsM2+QgraCB0WdxzOQ==", "requires": { "@lerna/batch-packages": "3.13.0", - "@lerna/command": "3.13.1", - "@lerna/filter-options": "3.13.0", - "@lerna/npm-run-script": "3.13.0", + "@lerna/command": "3.13.3", + "@lerna/filter-options": "3.13.3", + "@lerna/npm-run-script": "3.13.3", "@lerna/output": "3.13.0", "@lerna/run-parallel-batches": "3.13.0", "@lerna/timer": "3.13.0", @@ -2074,17 +2074,17 @@ } }, "@lerna/version": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.13.2.tgz", - "integrity": "sha512-85AEn6Cx5p1VOejEd5fpTyeDCx6yejSJCgbILkx+gXhLhFg2XpFzLswMd+u71X7RAttWHvhzeKJAw4tWTXDvpQ==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.13.3.tgz", + "integrity": "sha512-o/yQGAwDHmyu17wTj4Kat1/uDhjYFMeG+H0Y0HC4zJ4a/T6rEiXx7jJrnucPTmTQTDcUBoH/It5LrPYGOPsExA==", "requires": { "@lerna/batch-packages": "3.13.0", - "@lerna/check-working-tree": "3.13.0", - "@lerna/child-process": "3.13.0", - "@lerna/collect-updates": "3.13.0", - "@lerna/command": "3.13.1", + "@lerna/check-working-tree": "3.13.3", + "@lerna/child-process": "3.13.3", + "@lerna/collect-updates": "3.13.3", + "@lerna/command": "3.13.3", "@lerna/conventional-commits": "3.13.0", - "@lerna/github-client": "3.13.1", + "@lerna/github-client": "3.13.3", "@lerna/output": "3.13.0", "@lerna/prompt": "3.13.0", "@lerna/run-lifecycle": "3.13.0", @@ -2112,9 +2112,9 @@ } }, "@microsoft/load-themed-styles": { - "version": "1.8.82", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.8.82.tgz", - "integrity": "sha512-GbyCM+IOLF314lGjNP79HStJbIEmJ/CmL7rjbtk9BQYc5u5oAkYocf0qII3dIHwq9qabtdYnzKDWEYrIow1uVQ==" + "version": "1.8.85", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.8.85.tgz", + "integrity": "sha512-U4X7d5uxfaFPNnn7sazISnGz0563echOO1EA3/DRc9fEQJqGecS7cJaFRpiq574vRgsCreZjvaGfJo6n1FzDUw==" }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", @@ -2160,9 +2160,9 @@ } }, "@octokit/rest": { - "version": "16.23.4", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.23.4.tgz", - "integrity": "sha512-fQuYQ0vgNLkzeN0KEsqN0aS6EPzcuaePT5M5cE5qnKayaxFwRIQOMhNR/rTmEqo/zDK/20ZAcHsgLKodSsJtww==", + "version": "16.24.3", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.24.3.tgz", + "integrity": "sha512-fBr2ziN4WT9G9sYTfnNVI/0wCb68ZI5isNU48lfWXQDyAy4ftlrh0SkIbhL7aigXUjcY0cX5J46ypyRPH0/U0g==", "requires": { "@octokit/request": "3.0.0", "atob-lite": "^2.0.0", @@ -2590,9 +2590,9 @@ } }, "@types/react-dom": { - "version": "16.8.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.3.tgz", - "integrity": "sha512-HF5hD5YR3z9Mn6kXcW1VKe4AQ04ZlZj1EdLBae61hzQ3eEWWxMgNLUbIxeZp40BnSxqY1eAYLsH9QopQcxzScA==", + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.4.tgz", + "integrity": "sha512-eIRpEW73DCzPIMaNBDP5pPIpK1KXyZwNgfxiVagb5iGiz6da+9A5hslSX6GAQKdO7SayVCS/Fr2kjqprgAvkfA==", "requires": { "@types/react": "*" } @@ -2674,9 +2674,9 @@ } }, "@uifabric/merge-styles": { - "version": "6.16.4", - "resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-6.16.4.tgz", - "integrity": "sha512-z69v0XjyHZmQOTC0fMmUUN8yPv2pWfV8ZsrJSbFazKqT/K0WBkZJPXRpCdM9wxYUcFyrKYfFzLNzmGwES1WXZQ==", + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-6.17.0.tgz", + "integrity": "sha512-yTIjOhskNzhstiqpMhM/HI5yUBCNbWOF/8+WDfGLIe4rusxxjVyC6lpBV+B2Iw20ridDFdIhs/YjKy19/ifTgQ==", "requires": { "@uifabric/set-version": "^1.1.3", "tslib": "^1.7.1" @@ -2959,9 +2959,9 @@ } }, "acorn-globals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", - "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.1.tgz", + "integrity": "sha512-gJSiKY8dBIjV/0jagZIFBdVMtfQyA5QHCvAT48H2q8REQoW8Fs5AOjqBql1LgSXgrMWdevcE+8cdZ33NtVbIBA==", "requires": { "acorn": "^6.0.1", "acorn-walk": "^6.0.1" @@ -3467,9 +3467,9 @@ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "async-each": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", - "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, "async-exit-hook": { "version": "2.0.1", @@ -5430,14 +5430,14 @@ } }, "caniuse-db": { - "version": "1.0.30000957", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000957.tgz", - "integrity": "sha512-13rVZZO/75kPKJhJsi86lPUme7zlvfGDnnvSYx3TA+kYQxLtGywth5+81pyVZDjUfYyzatwA/yjv6DNsh66gmQ==" + "version": "1.0.30000960", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000960.tgz", + "integrity": "sha512-lgvTGHSJcROw38PaUzjAA1M3VA9hBkGsrTfo+Uiq6jSqfQXRSflpcQsM3MbytlFwBhPH6VD0GwLPihJgjqWrew==" }, "caniuse-lite": { - "version": "1.0.30000957", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz", - "integrity": "sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ==" + "version": "1.0.30000960", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000960.tgz", + "integrity": "sha512-7nK5qs17icQaX6V3/RYrJkOsZyRNnroA4+ZwxaKJzIKy+crIy0Mz5CBlLySd2SNV+4nbUZeqeNfiaEieUBu3aA==" }, "capture-exit": { "version": "1.2.0", @@ -5858,12 +5858,12 @@ } }, "cli-usage": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/cli-usage/-/cli-usage-0.1.8.tgz", - "integrity": "sha512-EZJ+ty1TsqdnhZNt2QbI+ed3IUNHTH31blSOJLVph3oL4IExskPRyCDGJH7RuCBPy3QBmWgpbeUxXPhK0isXIw==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cli-usage/-/cli-usage-0.1.9.tgz", + "integrity": "sha512-MIJJnLu89KTRoGN1ix9dwvKYUPUP7tUL+YGKNH/7mFmy8n3aWNznQKK8FU7PsFVQxePW5rxBp0lupzeSjRiXTA==", "requires": { - "marked": "^0.5.0", - "marked-terminal": "^3.0.0" + "marked": "^0.6.2", + "marked-terminal": "^3.2.0" } }, "cli-width": { @@ -6154,9 +6154,9 @@ "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=" }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "compressible": { "version": "2.0.16", @@ -6439,9 +6439,9 @@ } }, "conventional-changelog-preset-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz", - "integrity": "sha512-pBY+qnUoJPXAXXqVGwQaVmcye05xi6z231QM98wHWamGAmu/ghkBprQAwmF5bdmyobdVxiLhPY3PrCfSeUNzRQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz", + "integrity": "sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA==" }, "conventional-changelog-writer": { "version": "4.0.3", @@ -6702,14 +6702,14 @@ } }, "conventional-recommended-bump": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", - "integrity": "sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.1.1.tgz", + "integrity": "sha512-JT2vKfSP9kR18RXXf55BRY1O3AHG8FPg5btP3l7LYfcWJsiXI6MCf30DepQ98E8Qhowvgv7a8iev0J1bEDkTFA==", "requires": { - "concat-stream": "^1.6.0", - "conventional-changelog-preset-loader": "^2.0.2", - "conventional-commits-filter": "^2.0.1", - "conventional-commits-parser": "^3.0.1", + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.1.1", + "conventional-commits-filter": "^2.0.2", + "conventional-commits-parser": "^3.0.2", "git-raw-commits": "2.0.0", "git-semver-tags": "^2.0.2", "meow": "^4.0.0", @@ -6731,6 +6731,40 @@ "quick-lru": "^1.0.0" } }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "conventional-commits-filter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", + "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", + "requires": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.2.tgz", + "integrity": "sha512-y5eqgaKR0F6xsBNVSQ/5cI5qIF3MojddSUi1vKIggRkqUTbkqFKH9P5YX/AT1BVZp9DtSzBTIkvjyVLotLsVog==", + "requires": { + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^3.0.0", + "trim-off-newlines": "^1.0.0" + } + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -6818,6 +6852,14 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "requires": { + "readable-stream": "2 || 3" + } + }, "trim-newlines": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", @@ -6965,14 +7007,14 @@ }, "dependencies": { "browserslist": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz", - "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.5.tgz", + "integrity": "sha512-0QFO1r/2c792Ohkit5XI8Cm8pDtZxgNl2H6HU4mHrpYz7314pEYcsAVVatM0l/YmxPnEzh9VygXouj4gkFUTKA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000955", - "electron-to-chromium": "^1.3.122", - "node-releases": "^1.1.13" + "caniuse-lite": "^1.0.30000960", + "electron-to-chromium": "^1.3.124", + "node-releases": "^1.1.14" } }, "core-js": { @@ -7429,9 +7471,9 @@ } }, "csstype": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.3.tgz", - "integrity": "sha512-rINUZXOkcBmoHWEyu7JdHu5JMzkGRoMX4ov9830WNgxf5UYxcBUO0QTKAqeJ5EZfSdlrcJYkC8WwfVW7JYi4yg==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz", + "integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==" }, "csv": { "version": "1.2.1", @@ -8577,24 +8619,6 @@ "lazy-val": "^1.0.3" } }, - "sumchecker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", - "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", - "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==", - "requires": { - "ms": "2.0.0" - } - } - } - }, "xmlbuilder": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", @@ -9079,9 +9103,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.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", + "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", "requires": { "debug": "^2.6.8", "pkg-dir": "^2.0.0" @@ -9149,20 +9173,21 @@ } }, "eslint-plugin-import": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz", - "integrity": "sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz", + "integrity": "sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g==", "requires": { + "array-includes": "^3.0.3", "contains-path": "^0.1.0", "debug": "^2.6.9", "doctrine": "1.5.0", "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.3.0", + "eslint-module-utils": "^2.4.0", "has": "^1.0.3", "lodash": "^4.17.11", "minimatch": "^3.0.4", "read-pkg-up": "^2.0.0", - "resolve": "^1.9.0" + "resolve": "^1.10.0" }, "dependencies": { "debug": { @@ -10269,13 +10294,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.8.tgz", + "integrity": "sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { @@ -10285,8 +10310,7 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "optional": true + "bundled": true }, "aproba": { "version": "1.2.0", @@ -10342,11 +10366,11 @@ "optional": true }, "debug": { - "version": "2.6.9", + "version": "4.1.1", "bundled": true, "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "deep-extend": { @@ -10497,22 +10521,22 @@ } }, "ms": { - "version": "2.0.0", + "version": "2.1.1", "bundled": true, "optional": true }, "needle": { - "version": "2.2.4", + "version": "2.3.0", "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", + "debug": "^4.1.0", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.10.3", + "version": "0.12.0", "bundled": true, "optional": true, "requires": { @@ -10538,12 +10562,12 @@ } }, "npm-bundled": { - "version": "1.0.5", + "version": "1.0.6", "bundled": true, "optional": true }, "npm-packlist": { - "version": "1.2.0", + "version": "1.4.1", "bundled": true, "optional": true, "requires": { @@ -10651,8 +10675,7 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "optional": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", @@ -10665,7 +10688,7 @@ "optional": true }, "semver": { - "version": "5.6.0", + "version": "5.7.0", "bundled": true, "optional": true }, @@ -10700,7 +10723,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -10739,13 +10761,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "yallist": { "version": "3.0.3", - "bundled": true, - "optional": true + "bundled": true } } }, @@ -11431,9 +11451,9 @@ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" }, "handlebars": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz", - "integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "requires": { "neo-async": "^2.6.0", "optimist": "^0.6.1", @@ -11983,6 +12003,11 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, "ignore-walk": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", @@ -12134,9 +12159,9 @@ } }, "inquirer": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", - "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", + "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -12149,7 +12174,7 @@ "run-async": "^2.2.0", "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { @@ -12191,13 +12216,6 @@ "requires": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - } } }, "interpret": { @@ -12238,9 +12256,9 @@ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, "is": { "version": "0.2.7", @@ -14881,6 +14899,11 @@ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=" + }, "lodash.isnumber": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", @@ -15323,9 +15346,9 @@ "integrity": "sha1-Q18jFvW15o4UUM+iJC8rjVmtx18=" }, "marked": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz", - "integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA==" + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", + "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==" }, "marked-terminal": { "version": "3.2.0", @@ -15606,16 +15629,16 @@ "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==" }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.39.0.tgz", + "integrity": "sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.23", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.23.tgz", + "integrity": "sha512-ROk/m+gMVSrRxTkMlaQOvFmFmYDc7sZgrjjM76abqmd2Cc5fCV7jAMA5XUccEtJ3cYiYdgixUVI+fApc2LkXlw==", "requires": { - "mime-db": "~1.38.0" + "mime-db": "~1.39.0" } }, "mimic-fn": { @@ -16184,9 +16207,9 @@ "integrity": "sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==" }, "node-releases": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.13.tgz", - "integrity": "sha512-fKZGviSXR6YvVPyc011NHuJDSD8gFQvLPmc2d2V3BS4gr52ycyQ1Xzs7a8B+Ax3Ni/W+5h1h4SqmzeoA8WZRmA==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.15.tgz", + "integrity": "sha512-cKV097BQaZr8LTSRUa2+oc/aX5L8UkZtPQrMSTgiJEeaW7ymTDCoRaGCoaTqk0lqnalcoSHu4wjSl0Cmj2+bMw==", "dev": true, "requires": { "semver": "^5.3.0" @@ -16357,6 +16380,23 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" }, + "nodemon": { + "version": "1.18.11", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.11.tgz", + "integrity": "sha512-KdN3tm1zkarlqNo4+W9raU3ihM4H15MVMSE/f9rYDZmFgDHAfAJsomYrHhApAkuUemYjFyEeXlpCOQ2v5gtBEw==", + "requires": { + "chokidar": "^2.1.5", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.6", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + } + }, "nomnom": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", @@ -17375,9 +17415,9 @@ } }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascal-case": { "version": "2.0.1", @@ -19265,9 +19305,9 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, "prettier": { - "version": "1.16.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", - "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", + "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==" }, "prettier-eslint": { "version": "8.8.2", @@ -20189,12 +20229,12 @@ } }, "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" + "ipaddr.js": "1.9.0" } }, "prr": { @@ -20212,6 +20252,11 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, + "pstree.remy": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.6.tgz", + "integrity": "sha512-NdF35+QsqD7EgNEI5mkI/X+UwaxVEbQaz9f4IooEmMUv6ZPmlTQYGjBPJGgrlzNdjSvIy4MWMg6Q6vCgBO2K+w==" + }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -20648,9 +20693,9 @@ } }, "react-hot-loader": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.8.3.tgz", - "integrity": "sha512-Is8bKbSxuDLTqsWu1yjr+o1yA6yGDGjEQ2i1E8t/Nj1xJYC6QBRbyoofTn1xkMoKpcgXHuTJTqBhK0RY6moFJA==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.8.4.tgz", + "integrity": "sha512-O98btZXcm24ZgP+aPBD0W9N+GEnkOg6vlLEy/IMZ53u3K/dGqO0I/RU4qrmQzE+wMDLpwNo5TwxaAjVw9Y+IBA==", "requires": { "fast-levenshtein": "^2.0.6", "global": "^4.3.0", @@ -21916,9 +21961,9 @@ } }, "serialize-javascript": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", - "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", + "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==" }, "serve-index": { "version": "1.9.1", @@ -23098,9 +23143,9 @@ } }, "tapable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", - "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, "tar": { "version": "2.2.1", @@ -23455,6 +23500,24 @@ "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", "dev": true }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + } + } + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -23673,21 +23736,15 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, "uglify-js": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.3.tgz", - "integrity": "sha512-rIQPT2UMDnk4jRX+w4WO84/pebU2jiLsjgIyrCktYgSvx28enOE3iYQMr+BD1rHiitWnDmpu0cY/LfIEpKcjcw==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.4.tgz", + "integrity": "sha512-GpKo28q/7Bm5BcX9vOu4S46FwisbPbAmkkqPnGIpKvKTM96I85N6XHQV+k4I6FA2wxgLhcsSyHoNhzucwCflvA==", "optional": true, "requires": { - "commander": "~2.19.0", + "commander": "~2.20.0", "source-map": "~0.6.1" }, "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "optional": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -23811,6 +23868,29 @@ "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "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==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "underscore": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", @@ -24113,9 +24193,9 @@ } }, "url-parse": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", - "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.6.tgz", + "integrity": "sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew==", "requires": { "querystringify": "^2.0.0", "requires-port": "^1.0.0" diff --git a/packages/app/client/src/data/sagas/azureAuthSaga.ts b/packages/app/client/src/data/sagas/azureAuthSaga.ts index 4455381c4..ecdc8fb13 100644 --- a/packages/app/client/src/data/sagas/azureAuthSaga.ts +++ b/packages/app/client/src/data/sagas/azureAuthSaga.ts @@ -31,6 +31,7 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // import { SharedConstants } from '@bfemulator/app-shared'; +import { call, ForkEffect, put, select, takeEvery } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { DialogService } from '../../ui/dialogs'; @@ -43,8 +44,6 @@ import { import { AzureAuthState } from '../reducer/azureAuthReducer'; import { RootState } from '../store'; -import { call, ForkEffect, put, select, takeEvery } from 'redux-saga/effects'; - const getArmTokenFromState = (state: RootState) => state.azureAuth; export function* getArmToken(action: AzureAuthAction): IterableIterator { diff --git a/packages/app/client/src/data/sagas/botSagas.spec.ts b/packages/app/client/src/data/sagas/botSagas.spec.ts index 640f1e345..838ad303f 100644 --- a/packages/app/client/src/data/sagas/botSagas.spec.ts +++ b/packages/app/client/src/data/sagas/botSagas.spec.ts @@ -33,6 +33,7 @@ import { newNotification, SharedConstants } from '@bfemulator/app-shared'; import { BotConfigWithPath, ConversationService } from '@bfemulator/sdk-shared'; +import { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { ActiveBotHelper } from '../../ui/helpers/activeBotHelper'; import { @@ -48,8 +49,6 @@ import { generateHash } from '../botHelpers'; import { botSagas, browseForBot, generateHashForActiveBot, openBotViaFilePath, openBotViaUrl } from './botSagas'; import { refreshConversationMenu } from './sharedSagas'; -import { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - jest.mock('../../ui/dialogs', () => ({})); jest.mock('../store', () => ({ diff --git a/packages/app/client/src/data/sagas/botSagas.ts b/packages/app/client/src/data/sagas/botSagas.ts index b7ca7eb0e..5924759e0 100644 --- a/packages/app/client/src/data/sagas/botSagas.ts +++ b/packages/app/client/src/data/sagas/botSagas.ts @@ -33,6 +33,7 @@ import { newNotification, UserSettings } from '@bfemulator/app-shared'; import { ConversationService, StartConversationParams } from '@bfemulator/sdk-shared'; +import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { ActiveBotHelper } from '../../ui/helpers/activeBotHelper'; import { BotAction, BotActionType, BotConfigWithPathPayload, botHashGenerated } from '../action/botActions'; @@ -42,8 +43,6 @@ import { RootState } from '../store'; import { refreshConversationMenu } from './sharedSagas'; -import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - /** Opens up native open file dialog to browse for a .bot file */ export function* browseForBot(): IterableIterator { yield call([ActiveBotHelper, ActiveBotHelper.confirmAndOpenBotFromFile]); diff --git a/packages/app/client/src/data/sagas/chatSagas.ts b/packages/app/client/src/data/sagas/chatSagas.ts index 05f4b8d48..382707359 100644 --- a/packages/app/client/src/data/sagas/chatSagas.ts +++ b/packages/app/client/src/data/sagas/chatSagas.ts @@ -39,6 +39,7 @@ import { diff } from 'deep-diff'; import { IEndpointService } from 'botframework-config/lib/schema'; import { createCognitiveServicesBingSpeechPonyfillFactory } from 'botframework-webchat'; import { createStore as createWebChatStore } from 'botframework-webchat-core'; +import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { ChatAction, @@ -56,8 +57,6 @@ import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { RootState } from '../store'; import { isSpeechEnabled } from '../../utils'; -import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - const getConversationIdFromDocumentId = (state: RootState, documentId: string) => { return (state.chat.chats[documentId] || {}).conversationId; }; diff --git a/packages/app/client/src/data/sagas/editorSagas.spec.ts b/packages/app/client/src/data/sagas/editorSagas.spec.ts index 19a980742..a2064823c 100644 --- a/packages/app/client/src/data/sagas/editorSagas.spec.ts +++ b/packages/app/client/src/data/sagas/editorSagas.spec.ts @@ -32,14 +32,13 @@ // import { SharedConstants } from '@bfemulator/app-shared'; +import { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { EditorActions, removeDocPendingChange } from '../action/editorActions'; import { checkActiveDocForPendingChanges, editorSagas, promptUserToReloadDocument } from './editorSagas'; import { refreshConversationMenu, editorSelector } from './sharedSagas'; -import { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - jest.mock('../store', () => ({ get store() { return {}; diff --git a/packages/app/client/src/data/sagas/editorSagas.ts b/packages/app/client/src/data/sagas/editorSagas.ts index 98ce1f089..adc4a1dc9 100644 --- a/packages/app/client/src/data/sagas/editorSagas.ts +++ b/packages/app/client/src/data/sagas/editorSagas.ts @@ -32,14 +32,13 @@ // import { isChatFile, isTranscriptFile, SharedConstants } from '@bfemulator/app-shared'; +import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { EditorActions, removeDocPendingChange } from '../action/editorActions'; import { editorSelector, refreshConversationMenu } from './sharedSagas'; -import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - export function* promptUserToReloadDocument(filename: string): IterableIterator { const { Commands } = SharedConstants; const options = { diff --git a/packages/app/client/src/data/sagas/endpointSagas.ts b/packages/app/client/src/data/sagas/endpointSagas.ts index d037b2fa2..ced3c7f5d 100644 --- a/packages/app/client/src/data/sagas/endpointSagas.ts +++ b/packages/app/client/src/data/sagas/endpointSagas.ts @@ -34,6 +34,7 @@ import { SharedConstants } from '@bfemulator/app-shared'; import { IBotService, IEndpointService, ServiceTypes } from 'botframework-config/lib/schema'; import { ComponentClass } from 'react'; +import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { DialogService } from '../../ui/dialogs/service'; @@ -48,8 +49,6 @@ import { } from '../action/endpointServiceActions'; import { RootState } from '../store'; -import { call, ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - const getConnectedAbs = (state: RootState, endpointAppId: string) => { return (state.bot.activeBot.services || []).find(service => { return service.type === ServiceTypes.Bot && (service as IBotService).appId === endpointAppId; diff --git a/packages/app/client/src/data/sagas/frameworkSettingsSagas.spec.ts b/packages/app/client/src/data/sagas/frameworkSettingsSagas.spec.ts index 796cf3d66..b86f6023a 100644 --- a/packages/app/client/src/data/sagas/frameworkSettingsSagas.spec.ts +++ b/packages/app/client/src/data/sagas/frameworkSettingsSagas.spec.ts @@ -33,6 +33,7 @@ import { SharedConstants, newNotification } from '@bfemulator/app-shared'; import { applyMiddleware, combineReducers, createStore } from 'redux'; import sagaMiddlewareFactory from 'redux-saga'; +import { call, put, takeEvery, select } from 'redux-saga/effects'; import { CONTENT_TYPE_APP_SETTINGS, DOCUMENT_ID_APP_SETTINGS } from '../../constants'; import * as EditorActions from '../action/editorActions'; @@ -58,8 +59,6 @@ import { saveFrameworkSettings, } from './frameworkSettingsSagas'; -import { call, put, takeEvery, select } from 'redux-saga/effects'; - jest.mock( '../../ui/dialogs/', () => diff --git a/packages/app/client/src/data/sagas/frameworkSettingsSagas.ts b/packages/app/client/src/data/sagas/frameworkSettingsSagas.ts index b72564133..a94f00aa2 100644 --- a/packages/app/client/src/data/sagas/frameworkSettingsSagas.ts +++ b/packages/app/client/src/data/sagas/frameworkSettingsSagas.ts @@ -31,6 +31,7 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // import { frameworkDefault, FrameworkSettings, newNotification, SharedConstants } from '@bfemulator/app-shared'; +import { call, ForkEffect, put, select, takeEvery } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import * as EditorActions from '../action/editorActions'; @@ -46,8 +47,6 @@ import { generateHash } from '../botHelpers'; import { Document } from '../reducer/editor'; import { RootState } from '../store'; -import { call, ForkEffect, put, select, takeEvery } from 'redux-saga/effects'; - export const normalizeSettingsData = async (settings: FrameworkSettings): Promise => { // trim keys that do not belong and generate a hash const keys = Object.keys(frameworkDefault).sort(); diff --git a/packages/app/client/src/data/sagas/navBarSagas.spec.ts b/packages/app/client/src/data/sagas/navBarSagas.spec.ts index 140a177c5..70872abf5 100644 --- a/packages/app/client/src/data/sagas/navBarSagas.spec.ts +++ b/packages/app/client/src/data/sagas/navBarSagas.spec.ts @@ -31,13 +31,14 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // +import { put } from 'redux-saga/effects'; + import { select } from '../action/navBarActions'; import * as Constants from '../../constants'; import { markAllAsRead } from '../action/notificationActions'; import { markNotificationsAsRead } from './navBarSagas'; -import { put } from 'redux-saga/effects'; jest.mock('../../ui/dialogs', () => ({ AzureLoginPromptDialogContainer: function mock() { return undefined; diff --git a/packages/app/client/src/data/sagas/navBarSagas.ts b/packages/app/client/src/data/sagas/navBarSagas.ts index 17d8f928c..fbf72ae74 100644 --- a/packages/app/client/src/data/sagas/navBarSagas.ts +++ b/packages/app/client/src/data/sagas/navBarSagas.ts @@ -31,12 +31,12 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // +import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; + import * as Constants from '../../constants'; import { NavBarActions, SelectNavBarAction } from '../action/navBarActions'; import { markAllAsRead } from '../action/notificationActions'; -import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; - /** Marks all notifications as read if the notifications pane is opened */ export function* markNotificationsAsRead(action: SelectNavBarAction): IterableIterator { const navBarSelection = action.payload.selection; diff --git a/packages/app/client/src/data/sagas/notificationSagas.spec.ts b/packages/app/client/src/data/sagas/notificationSagas.spec.ts index 075ca11cc..aaa7e7f5a 100644 --- a/packages/app/client/src/data/sagas/notificationSagas.spec.ts +++ b/packages/app/client/src/data/sagas/notificationSagas.spec.ts @@ -32,14 +32,13 @@ // import { newNotification, NotificationType } from '@bfemulator/app-shared'; +import { put } from 'redux-saga/effects'; import { NotificationManager } from '../../notificationManager'; import { beginAdd, finishAdd, finishClear, beginRemove, finishRemove } from '../action/notificationActions'; import { addNotification, clearNotifications, removeNotification, markAllAsRead } from './notificationSagas'; -import { put } from 'redux-saga/effects'; - describe('Notification sagas', () => { test('addNotification()', () => { const notification = newNotification('someMessage', NotificationType.Info); diff --git a/packages/app/client/src/data/sagas/notificationSagas.ts b/packages/app/client/src/data/sagas/notificationSagas.ts index 43d1e5bc1..6c80706bb 100644 --- a/packages/app/client/src/data/sagas/notificationSagas.ts +++ b/packages/app/client/src/data/sagas/notificationSagas.ts @@ -31,6 +31,8 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // +import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; + import { NotificationManager } from '../../notificationManager'; import { BeginAddNotificationAction, @@ -41,8 +43,6 @@ import { NotificationActions, } from '../action/notificationActions'; -import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; - /** Adds a notification to the notification manager then * adds it to the state store */ diff --git a/packages/app/client/src/data/sagas/resourcesSagas.ts b/packages/app/client/src/data/sagas/resourcesSagas.ts index 78542e64c..dfc258a2e 100644 --- a/packages/app/client/src/data/sagas/resourcesSagas.ts +++ b/packages/app/client/src/data/sagas/resourcesSagas.ts @@ -34,6 +34,7 @@ import { BotInfo, isChatFile, isTranscriptFile, NotificationType, SharedConstant import { newNotification } from '@bfemulator/app-shared/built'; import { IFileService } from 'botframework-config/lib/schema'; import { ComponentClass } from 'react'; +import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { DialogService } from '../../ui/dialogs/service'; @@ -47,8 +48,6 @@ import { ResourcesAction, } from '../action/resourcesAction'; -import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; - function* openContextMenuForResource(action: ResourcesAction): IterableIterator { const menuItems = [{ label: 'Open file location', id: 0 }, { label: 'Rename', id: 1 }, { label: 'Delete', id: 2 }]; diff --git a/packages/app/client/src/data/sagas/servicesExplorerSagas.ts b/packages/app/client/src/data/sagas/servicesExplorerSagas.ts index 33649077f..6551115d1 100644 --- a/packages/app/client/src/data/sagas/servicesExplorerSagas.ts +++ b/packages/app/client/src/data/sagas/servicesExplorerSagas.ts @@ -42,6 +42,7 @@ import { IQnAService, ServiceTypes, } from 'botframework-config/lib/schema'; +import { ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { DialogService } from '../../ui/dialogs/service'; @@ -64,8 +65,6 @@ import { RootState } from '../store'; import { getArmToken } from './azureAuthSaga'; -import { ForkEffect, put, select, takeEvery, takeLatest } from 'redux-saga/effects'; - declare interface ServicesPayload { services: IConnectedService[]; code: ServiceCodes; diff --git a/packages/app/client/src/data/sagas/sharedSagas.spec.ts b/packages/app/client/src/data/sagas/sharedSagas.spec.ts index ba61eef6f..aa1d20732 100644 --- a/packages/app/client/src/data/sagas/sharedSagas.spec.ts +++ b/packages/app/client/src/data/sagas/sharedSagas.spec.ts @@ -32,13 +32,12 @@ // import { SharedConstants } from '@bfemulator/app-shared'; +import { select } from 'redux-saga/effects'; import { RootState } from '../store'; import { editorSelector, refreshConversationMenu } from './sharedSagas'; -import { select } from 'redux-saga/effects'; - let mockRemoteCommandsCalled = []; jest.mock('../../platform/commands/commandServiceImpl', () => ({ CommandServiceImpl: { diff --git a/packages/app/client/src/data/sagas/sharedSagas.ts b/packages/app/client/src/data/sagas/sharedSagas.ts index 6902348df..fd6a790ea 100644 --- a/packages/app/client/src/data/sagas/sharedSagas.ts +++ b/packages/app/client/src/data/sagas/sharedSagas.ts @@ -32,12 +32,11 @@ // import { SharedConstants } from '@bfemulator/app-shared'; +import { select } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { RootState } from '../store'; -import { select } from 'redux-saga/effects'; - export function editorSelector(state: RootState) { return state.editor; } diff --git a/packages/app/client/src/data/sagas/welcomePageSagas.ts b/packages/app/client/src/data/sagas/welcomePageSagas.ts index 4356b5d08..14b715048 100644 --- a/packages/app/client/src/data/sagas/welcomePageSagas.ts +++ b/packages/app/client/src/data/sagas/welcomePageSagas.ts @@ -31,13 +31,12 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // import { BotInfo, newNotification, SharedConstants } from '@bfemulator/app-shared'; +import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; import { beginAdd } from '../action/notificationActions'; import { OPEN_CONTEXT_MENU_FOR_BOT, WelcomePageAction } from '../action/welcomePageActions'; -import { ForkEffect, put, takeEvery } from 'redux-saga/effects'; - function* openContextMenuForBot(action: WelcomePageAction): IterableIterator { const menuItems = [ { label: 'Move...', id: 0 }, diff --git a/packages/app/client/src/ui/helpers/activeBotHelper.ts b/packages/app/client/src/ui/helpers/activeBotHelper.ts index 6b1fe3ffb..4d79d35a5 100644 --- a/packages/app/client/src/ui/helpers/activeBotHelper.ts +++ b/packages/app/client/src/ui/helpers/activeBotHelper.ts @@ -49,7 +49,7 @@ import { CommandServiceImpl } from '../../platform/commands/commandServiceImpl'; const { Bot, Electron, Telemetry } = SharedConstants.Commands; -export const ActiveBotHelper = new class { +export const ActiveBotHelper = new (class { async confirmSwitchBot(): Promise { if (hasNonGlobalTabs()) { return await CommandServiceImpl.remoteCall(Electron.ShowMessageBox, true, { @@ -316,4 +316,4 @@ export const ActiveBotHelper = new class { throw new Error(errMsg); }); } -}(); +})(); diff --git a/packages/app/main/package.json b/packages/app/main/package.json index c3c60be29..9041f3c06 100644 --- a/packages/app/main/package.json +++ b/packages/app/main/package.json @@ -18,6 +18,7 @@ "start:electron": "./node_modules/.bin/electron --inspect=7777 --remote-debugging-port=7778 .", "start:electron:dev": "cross-env ELECTRON_TARGET_URL=http://localhost:3000/ npm run start:electron", "start:react-app": "cd ../client && npm start", + "start:watch": "nodemon", "test": "jest", "typecheck": "tsc --noEmit" }, @@ -35,6 +36,19 @@ "email": "example@example.com", "url": "https://github.com/Microsoft/BotFramework-Emulator" }, + "nodemonConfig": { + "exec": "npm run build && npm run start:electron:dev", + "ext": "ts, tsx", + "ignore": [ + "node_modules/**/*", + "main/app/**/*", + "main/dist/**/*" + ], + "watch": [ + "*" + ], + "verbose": true + }, "jest": { "rootDir": "./src", "setupTestFrameworkScriptFile": "../../../../testSetup.js", @@ -96,6 +110,7 @@ "jest": "^23.0.0", "license-list": "^0.1.3", "ncp": "2.0.0", + "nodemon": "1.18.11", "npm-run-all": "^4.1.5", "through2": "^2.0.3", "typescript": "3.1.1", @@ -261,7 +276,9 @@ "target": [ { "target": "AppImage", - "arch": ["x64"] + "arch": [ + "x64" + ] } ] }, diff --git a/packages/app/main/src/botHelpers.spec.ts b/packages/app/main/src/botHelpers.spec.ts index eb865259f..a457033f7 100644 --- a/packages/app/main/src/botHelpers.spec.ts +++ b/packages/app/main/src/botHelpers.spec.ts @@ -30,6 +30,9 @@ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // + +import { normalize } from 'path'; + import { BotConfigWithPathImpl } from '@bfemulator/sdk-shared'; import { SharedConstants } from '@bfemulator/app-shared'; import { BotConfigWithPath } from '@bfemulator/sdk-shared'; @@ -239,12 +242,12 @@ describe('The botHelpers', () => { describe('getTranscriptsPath()', async () => { it('should return a value directory path with an active bot', async () => { const result = getTranscriptsPath({ path: '/foo/bar' }, { mode: 'livechat' }); - expect(result).toBe('/foo/transcripts'); + expect(result).toBe(normalize('/foo/transcripts')); }); it('should return a value directory path with a bot opened via url', async () => { const result = getTranscriptsPath({ path: '/foo/bar' }, { mode: 'livechat-url' }); - expect(result).toBe('/downloads/transcripts'); + expect(result).toBe(normalize('/downloads/transcripts')); }); }); }); diff --git a/packages/app/main/src/commands/emulatorCommands.spec.ts b/packages/app/main/src/commands/emulatorCommands.spec.ts index 58699775c..9d9a4161d 100644 --- a/packages/app/main/src/commands/emulatorCommands.spec.ts +++ b/packages/app/main/src/commands/emulatorCommands.spec.ts @@ -33,7 +33,7 @@ /* eslint-disable typescript/no-use-before-define */ import '../fetchProxy'; -import * as path from 'path'; +import { normalize as mockNormalize } from 'path'; import { combineReducers, createStore } from 'redux'; import { BotConfigWithPathImpl, CommandRegistryImpl } from '@bfemulator/sdk-shared'; @@ -85,7 +85,7 @@ jest.mock('../botHelpers', () => ({ getBotInfoByPath: () => ({ secret: 'secret' }), loadBotWithRetry: () => mockBot, getActiveBot: () => mockBot, - getTranscriptsPath: () => 'Users/blerg/Documents/testbot/transcripts', + getTranscriptsPath: () => mockNormalize('Users/blerg/Documents/testbot/transcripts'), })); jest.mock('../utils', () => ({ @@ -171,10 +171,10 @@ const mockBot = BotConfigWithPathImpl.fromJSON({ const mockInfo = { secret: 'shhh!', - path: path.normalize('Users/blerg/Documents/testbot/contoso-cafe-bot.bot'), + path: mockNormalize('Users/blerg/Documents/testbot/contoso-cafe-bot.bot'), displayName: 'contoso-cafe-bot', - transcriptsPath: path.normalize('Users/blerg/Documents/testbot/transcripts'), - chatsPath: path.normalize('Users/blerg/Documents/testbot/dialogs'), + transcriptsPath: mockNormalize('Users/blerg/Documents/testbot/transcripts'), + chatsPath: mockNormalize('Users/blerg/Documents/testbot/dialogs'), }; const mockConversation = mockEmulator.framework.server.botEmulator.facilities.conversations.newConversation( @@ -436,13 +436,13 @@ describe('The emulatorCommands', () => { extensions: ['transcript'], }, ], - defaultPath: path.normalize('Users/blerg/Documents/testbot/transcripts'), + defaultPath: mockNormalize('Users/blerg/Documents/testbot/transcripts'), showsTagField: false, title: 'Save conversation transcript', buttonLabel: 'Save', } ); - const newPath = path.normalize('chosen/AuthBot.bot'); + const newPath = mockNormalize('chosen/AuthBot.bot'); expect(getBotInfoByPathSpy).toHaveBeenCalledWith('some/path'); expect(toSavableBotSpy).toHaveBeenCalledWith(mockBot, mockInfo.secret); expect(patchBotJsonSpy).toHaveBeenCalledWith(newPath, Object.assign({}, mockInfo, { path: newPath })); diff --git a/packages/app/main/src/protocolHandler.ts b/packages/app/main/src/protocolHandler.ts index 31a7d00c6..f3e96a0f4 100644 --- a/packages/app/main/src/protocolHandler.ts +++ b/packages/app/main/src/protocolHandler.ts @@ -91,7 +91,7 @@ export interface ProtocolHandler { performBotAction: (protocol: Protocol) => void; } -export const ProtocolHandler = new class ProtocolHandlerImpl implements ProtocolHandler { +export const ProtocolHandler = new (class ProtocolHandlerImpl implements ProtocolHandler { /** Extracts useful information out of a protocol URL */ public parseProtocolUrl(url: string): Protocol { const validProtocol = /^bfemulator:\/\//; @@ -359,7 +359,7 @@ export const ProtocolHandler = new class ProtocolHandlerImpl implements Protocol numOfServices, }); } -}(); +})(); /** * Takes the list of parsed protocol URI query params and constructs an endpoint service diff --git a/packages/app/main/src/settingsData/sagas/settingsSagas.ts b/packages/app/main/src/settingsData/sagas/settingsSagas.ts index 047d7ef08..c4f5233dc 100644 --- a/packages/app/main/src/settingsData/sagas/settingsSagas.ts +++ b/packages/app/main/src/settingsData/sagas/settingsSagas.ts @@ -33,6 +33,7 @@ import { DebugMode, FrameworkSettings, Settings, SharedConstants } from '@bfemulator/app-shared'; import { Users } from '@bfemulator/emulator-core'; import { ClientAwareSettings } from '@bfemulator/app-shared'; +import { call, ForkEffect, select, takeEvery } from 'redux-saga/effects'; import { Emulator } from '../../emulator'; import { mainWindow } from '../../main'; @@ -44,8 +45,6 @@ import { WindowStateAction, } from '../actions/windowStateActions'; -import { call, ForkEffect, select, takeEvery } from 'redux-saga/effects'; - const getAvailableThemes = (state: Settings) => state.windowState.availableThemes; const getCurrentTheme = (state: Settings) => state.windowState.theme; const getState = (state: Settings) => state;